the1mason Опубликовано: 10 февраля 2021 Поделиться Опубликовано: 10 февраля 2021 Вопрос мой касается ивентов или же событий, которые возвращает https://vimeworld.github.io/api-docs/#apimatch_getЭтих ивентов много, они сильно отличаются между режимами и редко случается так, что за матч будут вызваны все существующие ивенты ( о том же "kick" узнал только сегодня).Я был бы бесконечно (бесконечно!) рад, если бы был где-нибудь этот списочек ивентов... или информацию о том, где и как его можно достать.Не обязательно отсортированный по ивентам, не обязательно оформленный... Главное - максимально полный)Мини-игр много, ивентов - еще больше, а я такой один)Боюсь, на перебор случайных матчей уйдет слишком много времени, чтобы считать этот метод оправданным.Спасибо за ответ! Ссылка на комментарий
Гость Опубликовано: 10 февраля 2021 Поделиться Опубликовано: 10 февраля 2021 (изменено) Вопрос мой касается ивентов или же событий, которые возвращает https://vimeworld.github.io/api-docs/#apimatch_getЭтих ивентов много, они сильно отличаются между режимами и редко случается так, что за матч будут вызваны все существующие ивенты ( о том же "kick" узнал только сегодня). Я был бы бесконечно (бесконечно!) рад, если бы был где-нибудь этот списочек ивентов... или информацию о том, где и как его можно достать.Не обязательно отсортированный по ивентам, не обязательно оформленный... Главное - максимально полный) Мини-игр много, ивентов - еще больше, а я такой один)Боюсь, на перебор случайных матчей уйдет слишком много времени, чтобы считать этот метод оправданным.Спасибо за ответ!Я сам думал для чего это нужно и пришел к выводу, что это событие было сделано как дополнение к apimatch_latest_get, чтобы можно было получать матчи после исчезновения из этого ивента.UPD: пролистнул чуть ниже и обнаружил как это все генерируется. ID матча (64 бита) состоит из:42 бита - время в миллисекундах, начиная от 01.01.2019 (1546300800 unix timestamp).10 бит - внутренний ID генератора, не используется в данный момент.12 бит - счетчик, сбрасывающийся каждую миллисекунду.Таким образом, если нужно узнать самый первый матч 29.05.2019, то запрос будет следующим:var vime_epoch = 1546300800; // 01.01.2019 в unix timestamp var timestamp = 1559088000; // 29.05.2019 в unix timestamp var id = ((timestamp - vime_epoch) * 1000) << 22 // 1000 - делаем миллисекунды из секунд = 53633404108800000; var url = "https://api.vimeworld.ru/match/list?count=1&after=" + id; Изменено 10 февраля 2021 пользователем ZrangoYT Ссылка на комментарий
Решение JustQuas Опубликовано: 11 февраля 2021 Решение Поделиться Опубликовано: 11 февраля 2021 Я сам думал для чего это нужно и пришел к выводу, что это событие было сделано как дополнение к apimatch_latest_get, чтобы можно было получать матчи после исчезновения из этого ивента.UPD: пролистнул чуть ниже и обнаружил как это все генерируется.Его вопрос не был на счёт генерации id матча или зачем это нужно.Вопрос был в том, чтоб увидеть слисок типов событий. Может быть я и смогу достать, но не факт... Ссылка на комментарий
JustQuas Опубликовано: 11 февраля 2021 Поделиться Опубликовано: 11 февраля 2021 (изменено) На скорую руку накидал на питоне, лень чет было надумыватьМожешь ещё сам поискатьfrom requests import get links = [ 'https://api.vimeworld.ru/match/latest?count=100&token=', 'https://api.vimeworld.ru/match/' ] token = 'YOUR_DEVTOKEN' events = [] while True: games = get(f"{links[0]}{token}").json() for game in games: new = False match = get(f"{links[1]}{game['id']}?token={token}").json() for event in match["events"]: if event["type"] not in events: new = True events.append(event["type"]) if new: print(f"На данный момент найдены типы событий: {events}")Что я сейчас нашёл из событий: ['kill', 'death', 'leave', 'bedBreak', 'mysticalChestOpen', 'mysticalChestClose', 'dropBow', 'pickupBow', 'goal_done', 'level_done', 'reconnect', 'gotToPortal', 'join', 'kick'] Изменено 11 февраля 2021 пользователем JustQuas the1mason 1 Ссылка на комментарий
the1mason Опубликовано: 11 февраля 2021 Автор Поделиться Опубликовано: 11 февраля 2021 На скорую руку накидал на питоне, лень чет было надумыватьМожешь ещё сам поискатьfrom requests import get links = [ 'https://api.vimeworld.ru/match/latest?count=100&token=', 'https://api.vimeworld.ru/match/' ] token = 'YOUR_DEVTOKEN' events = [] while True: games = get(f"{links[0]}{token}").json() for game in games: new = False match = get(f"{links[1]}{game['id']}?token={token}").json() for event in match["events"]: if event["type"] not in events: new = True events.append(event["type"]) if new: print(f"На данный момент найдены типы событий: {events}")Что я сейчас нашёл из событий: ['kill', 'death', 'leave', 'bedBreak', 'mysticalChestOpen', 'mysticalChestClose', 'dropBow', 'pickupBow', 'goal_done', 'level_done', 'reconnect', 'gotToPortal', 'join'] Попробую запустить (ну или переписать все на c# и запустить, тут как пойдет)Спасибо огромное Ссылка на комментарий
Рекомендованные сообщения
Создайте аккаунт или войдите в него для комментирования
Вы должны быть пользователем, чтобы оставить комментарий
Создать аккаунт
Зарегистрируйтесь для получения аккаунта. Это просто!
Зарегистрировать аккаунтВойти
Уже зарегистрированы? Войдите здесь.
Войти сейчас