Перейти к публикации

VimeWorld API - Ивенты. Много ивентов.


the1mason
Перейти к решению Решение от JustQuas,

Рекомендованные сообщения

Вопрос мой касается ивентов или же событий, которые возвращает https://vimeworld.github.io/api-docs/#apimatch_get
Этих ивентов много, они сильно отличаются между режимами и редко случается так, что за матч будут вызваны все существующие ивенты ( о том же "kick" узнал только сегодня).

Я был бы бесконечно (бесконечно!) рад, если бы был где-нибудь этот списочек ивентов... 
или информацию о том, где и как его можно достать.
Не обязательно отсортированный по ивентам, не обязательно оформленный... Главное - максимально полный)

Мини-игр много, ивентов - еще больше, а я такой один)
Боюсь, на перебор случайных матчей уйдет слишком много времени, чтобы считать этот метод оправданным.
Спасибо за ответ!

Ссылка на комментарий

Вопрос мой касается ивентов или же событий, которые возвращает 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;
Изменено пользователем ZrangoYT
Ссылка на комментарий
  • Решение

Я сам думал для чего это нужно и пришел к выводу, что это событие было сделано как дополнение к apimatch_latest_get, чтобы можно было получать матчи после исчезновения из этого ивента.

UPD: пролистнул чуть ниже и обнаружил как это все генерируется.

Его вопрос не был на счёт генерации id матча или зачем это нужно.

Вопрос был в том, чтоб увидеть слисок типов событий.

 

Может быть я и смогу достать, но не факт...

Ссылка на комментарий

На скорую руку накидал на питоне, лень чет было надумывать
Можешь ещё сам поискать

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']

Изменено пользователем JustQuas
Ссылка на комментарий

На скорую руку накидал на питоне, лень чет было надумывать

Можешь ещё сам поискать

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# и запустить, тут как пойдет)

Спасибо огромное

Ссылка на комментарий

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас
  • Сейчас на странице   0 пользователей

    • Нет пользователей, просматривающих эту страницу.
×
×
  • Создать...