Перейти к публикации
View in the app

A better way to browse. Learn more.

VimeWorld - Форум

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

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

Featured Replies

Опубликовано:

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

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

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

Решение от JustQuas

Опубликовано:

Вопрос мой касается ивентов или же событий, которые возвращает 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

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

Account

Navigation

Поиск

Поиск

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.