Перейти к содержимому

the_IIpeIIog

Игроки
  • Публикации

    7
  • Зарегистрирован

  • Посещение

  • Бои

    2930
  • Клан

    [GLOW] GLOW

О the_IIpeIIog

  • День рождения 04.05.2000

Посетители профиля

77 просмотров профиля
  • K0T_BY

Портал игры

Достижения пользователя the_IIpeIIog

Рядовой

Рядовой (2/14)

1

Оценка

  1. Здравствуйте! Существует ли (или планируется) в Lesta Public API метод для получения таблицы рейтинга Натиска, то, что в клиенте отображается на странице «Рейтинг» внутри раздела Натиск? Интересуют как минимум: Список игроков в ранге «Легенда» (или произвольный top-N) с полями: позиция, ник, клан-тег, количество боёв, количество очков натиска. Актуальный порог («последний рангом легенда» - position и rating), общее число участников в Легенде. Данные игрока по account_id (текущий ранг, позиция, очки, боёв за сезон). В wot/stats/accountinfo/ у аккаунта возвращается statistics.fort_sorties - это помогает для истории по Укрепрайону, но по Натиску мы ни в одном из опубликованных методов (account/*, clans/*, tanks/stats/*, globalmap/*, stronghold/*, ratings/*) рейтинговых данных не нашли. Как мы "добываем" эти данные сейчас P.S. крайне неудобно, костыльно Поскольку публичного endpoint'а мы не видим, у нас запущен следующий workflow: Клиентский мод патчит frameworks.wulf.windows_system.window.Window.__init__ и перехватывает создание LeaderboardPage (gui.impl.lobby.comp7.meta_view.pages.leaderboard_page). На экземпляре LeaderboardPage.viewModel (класс LeaderboardModel) мы вешаем read-only observer на setItems() - каждый раз, когда клиент получает от сервера Lesta очередную страницу рейтинга, мы читаем getItems() и сохраняем поля UserName / BattlesCount / Score / ClanTag / ClanTagColor / Position. Чтобы обойти UI (а не вручную прокручивать 3000+ строк таблицы), мы вызываем приватный метод LeaderboardPage._LeaderboardPage__requestRecords(offset, 50, ...) с шагом 50 от offset=0 до last_best_user_position, инициируя серверные запросы за каждую страницу. Между вызовами - пауза 1.5 с, чтобы не нагружать сервер Lesta. Аккумулятор дедуплицирует строки по Position и сохраняет финальный JSON. Дальше JSON вручную загружается на наш backend, который пишет снапшот в Postgres и показывает на сайте историю/дельты по дням. Проблемы этого подхода: Опирается на приватные имена (_LeaderboardPage__requestRecords, внутренние ViewModel-поля) - ломается на каждом обновлении клиента. Требует от нас запустить клиент, открыть экран рейтинга и держать окно открытым ~2–3 минуты. Нет account_id - в ViewModel клиент кладёт только никнейм + клан-тег, а никнеймы в рейтинге не уникальны (подтверждённый кейс: Ganski из кланов FAKED и P_BY — два разных аккаунта), из-за чего сопоставление с wot/account/list/ неоднозначно. Ссылка на кейс По сути мы эмулируем запросы, которые клиент и так делает к серверу Lesta - хотелось бы делать их напрямую через официальный API с application_id, а не через реверс ViewModel'ей. Если такой метод есть - подскажите, пожалуйста, его название и документацию. Если нет — рассматривается ли его добавление? Готовы поучаствовать в закрытом бета-тесте.
  2. Существует ли (или планируется) в Lesta Public API метод для получения таблицы рейтинга Натиска — то, что в клиенте отображается на странице «Рейтинг» внутри раздела Натиск? Интересуют как минимум: - Список игроков в ранге «Легенда» (или произвольный top-N) с полями: позиция, ник, клан-тег, количество боёв, количество очков натиска. - Актуальный порог («последний легендарный» — position и rating), общее число участников в Легенде. - Персональные данные игрока по account_id (текущий ранг, позиция, очки, боёв за сезон). В wot/stats/accountinfo/ у аккаунта возвращается statistics.fort_sorties — это помогает для истории по Укрепрайону, но по Натиску мы ни в одном из опубликованных методов (account/*, clans/*, tanks/stats/*, globalmap/*, stronghold/*, ratings/*) рейтинговых данных не нашли. Добывать эти данные сейчас крайне неудобно: Поскольку публичного endpoint'а мы не видим, у нас запущен следующий workflow: - Клиентский мод патчит frameworks.wulf.windows_system.window.Window.__init__ и перехватывает создание LeaderboardPage (gui.impl.lobby.comp7.meta_view.pages.leaderboard_page). - На экземпляре LeaderboardPage.viewModel (класс LeaderboardModel) мы вешаем read-only observer на setItems() — каждый раз, когда клиент получает от сервера Lesta очередную страницу рейтинга, мы читаем getItems() и сохраняем поля UserName / BattlesCount / Score / ClanTag / ClanTagColor / Position. - Чтобы обойти UI (игроку пришлось бы вручную прокручивать 3000+ строк таблицы), мы вызываем приватный метод LeaderboardPage._LeaderboardPage__requestRecords(offset, 50, ...) с шагом 50 от offset=0 до last_best_user_position, инициируя серверные запросы за каждую страницу. Между вызовами — пауза 1.5 с, чтобы не нагружать сервер Lesta. - Аккумулятор дедуплицирует строки по Position, и сохраняет финальный JSON. - Дальше мы вручную (через наш collector-мод) загружаем этот JSON на наш backend, который пишет снапшот в Postgres и показывает на сайте историю/дельты по дням. Проблемы этого подхода: - Опирается на приватные имена (_LeaderboardPage__requestRecords, внутренние ViewModel-поля) — ломается на каждом обновлении клиента. - Требует от игрока запустить клиент, открыть экран рейтинга и держать окно открытым ~2–3 минуты. - Нет account_id — в ViewModel клиент кладёт только никнейм + клан-тег, а никнеймы в рейтинге не уникальны (подтверждённый кейс: Ganski из кланов FAKED и P_BY — два разных аккаунта), из-за чего сопоставление с wot/account/list/ неоднозначно. По сути мы эмулируем запросы, которые ваш клиент и так делает к вашему серверу — хотелось бы делать их напрямую через официальный API с application_id, а не через реверс ViewModel'ей. Если такой метод есть — подскажите, пожалуйста, его название и документацию. Если нет — рассматривается ли его добавление? Готовы поучаствовать в закрытом бета-тесте. Используем эту информацию для вывода вот такой таблицы https://xday.su/natisk/grozovoy-tigr Спасибо!
  3. Здравствуйте. Игрок с ником Ganski перешёл из клана FAKED в клан P_BY, но в рейтинге Легенд Натиска он присутствует одновременно двумя записями, со старым клан-тэгом и с новым. У обеих записей разное число боёв и разный счёт, и они занимают разные позиции в топе. Воспроизводится стабильно три дня подряд (17–19 апреля 2026). Данные из рейтинга: Дата Позиция Клан Ник Бои Очки 19.04 816 [FAKED] Ganski 447 4808 19.04 1019 [P_BY] Ganski 766 4743 18.04 909 [P_BY] Ganski 766 4743 18.04 2206 [FAKED] Ganski 424 4528 17.04 807 (нет) Ganski 766 4743 17.04 1685 [FAKED] Ganski 413 4561 Видно, что одна из записей «заморожена» (стабильно 766 боёв / 4743 очка во все дни, только клан-тэг подтягивается), а вторая продолжает расти по боям и очкам. Похоже, что при переходе клана в Натиске не объединились записи одного и того же аккаунта. В клиентских данных рейтинга нет account-id, поэтому со стороны пользователя невозможно определить, какая запись актуальная, игрок дважды учитывается в топе Легенд. Прошу проверить: 1. Почему после смены клана аккаунт висит в рейтинге Натиска двумя записями, а не одной? 2. Рассматривается ли добавление account-id в объект записи рейтинга, чтобы пользователи могли корректно идентифицировать игрока даже в такой ситуации? Спасибо.
  4. Подскажите, каким образом можно автоматизировать процесс выгрузки информации о привезенных промресурсах бойцами клана в вылазках, в период за 7 дней. Чтобы не наводить на каждого, а выгружать эту информацию в excel таблицу. Если есть какие либо идеи буду рад если поделитесь, если кто то готов разработать бота с таким функционалом, дайте знать
×
×
  • Создать...