Jump to content
Korean Random

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


Recommended Posts

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

 

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

Link to comment
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)
Link to comment
Short link
Share on other sites

  • 2 weeks later...

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

 

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

g_playerEvents.onBattleResultsReceived

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

Link to comment
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/

Link to comment
Short link
Share on other sites

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

 

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

 

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

Edited by Topsy-Turvy
Link to comment
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...