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

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 пользователей

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