Jump to content
Korean Random
Topsy-Turvy

Обработать результаты боя

Recommended Posts

Здравствуйте,

 

Хочу сделать мод считающий доходность танка. Питон знаю. Подскажите, с чего начать? Пока не понимаю нужно ли мне декомпилировать скрипт и вставить в него свой код? Или я могу подложить свой скрипт, в нем подписаться на событие об окончании боя и получить результаты в ивенте?

Share this post


Link to post

Short link
Share on other sites

Парни, я кажется разобрался :) Скопипастил чуть меньше чем все из XVM, но что куда стало понятнее.

import BigWorld
from debug_utils import LOG_ERROR, LOG_DEBUG

from gui.Scaleform.daapi.view.BattleResultsWindow import BattleResultsWindow
 
def BattleResultsWindow_as_setDataS(base, self, data):

    LOG_DEBUG('It works!')

    LOG_DEBUG('%s' % (data))

    return base(self, data)
 
def _OverrideMethod(cls, method, handler):

    orig = getattr(cls, method)

    newm = lambda *a, **k: handler(orig, *a, **k)

    if type(orig) is not property:

        setattr(cls, method, newm)

    else:

        setattr(cls, method, property(newm))



def _RegisterEvents():

    _OverrideMethod(BattleResultsWindow, 'as_setDataS', BattleResultsWindow_as_setDataS)
 
BigWorld.callback(0, _RegisterEvents)

Share this post


Link to post

Short link
Share on other sites

а статистика в чат системных сообщений отправляется? И будет работать после боя?

Share this post


Link to post

Short link
Share on other sites

В общем мой пример неправильный. Он перехватывает вызов окна с результатами боя. Пользователь может не открыть это окно. Или открыть его несколько раз.

 

Я нашел другой способ:

g_playerEvents.onBattleResultsReceived

позволяет подписаться на получение результатов боя. Этот способ работает гораздо лучше. Однако по какой-то причине это событие происходит не всегда. В некоторых случаях я вижу, что в чате появилось уведомление об окончании боя, но результатов не пришло. Я пока не нашел закономерность. Есть подозрение, что если вышел из боя до его окончания, то результат придется запросить явно. Буду признателен, если кто-то прояснит.

Share this post


Link to post

Short link
Share on other sites

Хочу сделать мод считающий доходность танка.

Моды сессионной статистики показывают доходность. А этот вариант и потанковую стату выводит: http://www.koreanrandom.com/forum/topic/12373-09-wn8-%D1%81%D1%82%D0%B0%D1%82%D0%B8%D1%81%D1%82%D0%B8%D0%BA%D0%B0-%D0%B7%D0%B0-%D1%81%D0%B5%D1%81%D1%81%D0%B8%D1%8E/

Share this post


Link to post

Short link
Share on other sites

Спасибо большое. То что нужно.

 

В общем необходимо подписаться на сообщение battleResults в системном чате. Достать из сообщения id боя. Через data provider запросить результаты этого боя.

 

Видимо Chunor на это и намекал говоря о системном чате, но я его не понял.

Edited by Topsy-Turvy

Share this post


Link to post

Short link
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...