Почему несрабатывают события ? В логах пуста.
import BigWorld
from debug_utils import *
from clientarena import ClientArena
def new_onBaseCaptured(self, argStr):
LOG_NOTE('BaseCaptured: onBaseCaptured !!!!!!')
ClientArena._ClientArena__onBaseCaptured = new_onBaseCaptured
def new_onBasePointsUpdate(self, argStr):
LOG_NOTE('BaseCaptured: onBasePointsUpdated !!!!!!')
ClientArena._ClientArena__onBasePointsUpdate = new_onBasePointsUpdate
clientarena.py
class
class ClientArena(object):
functions
def _ClientArena__onBasePointsUpdate(self, argStr):
(team, baseID, points, capturingStopped) = cPickle.loads(argStr)
self.onTeamBasePointsUpdate(team, baseID, points, capturingStopped)
def _ClientArena__onBaseCaptured(self, argStr):
(team, baseID) = cPickle.loads(argStr)
self.onTeamBaseCaptured(team, baseID)
v0.9.8.1
Нужно что бы во время захвата или как достигло 100% захвата, срабатывали события, но этого не происходит.
тут таже история
import BigWorld
from debug_utils import *
from gui.scaleform.battle import *
def new_y(self, team, baseID, points, capturingStopped):
LOG_NOTE('BaseCaptured: _TeamBasesPanel__onTeamBasePointsUpdate !!!!!!')
TeamBasesPanel._TeamBasesPanel__onTeamBasePointsUpdate = new_y
def new_x(self, team, baseID):
LOG_NOTE('BaseCaptured: _TeamBasesPanel__onTeamBaseCaptured !!!!!!')
TeamBasesPanel._TeamBasesPanel__onTeamBaseCaptured = new_x
battle.py
class
class TeamBasesPanel(object):
functions
def _TeamBasesPanel__onTeamBasePointsUpdate(self, team, baseID, points, capturingStopped):
if team not in (1, 2):
return None
id = None._getID(team, baseID)
if points or id in self._TeamBasesPanel__baseIds:
self._TeamBasesPanel__clearUpdateCallback(id)
self._TeamBasesPanel__baseIds.remove(id)
self._TeamBasesPanel__callFlash('remove', [
id])
if not self._hasBaseId(team) or team ^ BigWorld.player().team:
self._TeamBasesPanel__stopCaptureSound(team)
if id in self._TeamBasesPanel__baseIds:
self._TeamBasesPanel__capturePoints[id] = points
if capturingStopped:
self._TeamBasesPanel__callFlash('stop', [
id,
points]) else:
self._TeamBasesPanel__baseIds.add(id)
key = team ^ BigWorld.player().team
if isControlPointExists(BigWorld.player().arenaTypeID):
settings = self._TeamBasesPanel__settings.get('controlPoint', { })
color = settings.get('color', { }).get(key, 'green')
weight = settings.get('weight', { }).get(key, 0)
else:
settings = self._TeamBasesPanel__settings.get(key, { })
color = settings.get('color', 'green')
weight = settings.get('weight', 0)
capturingString = settings.get('capturing', '') % getBattleSubTypeBaseNumder(BigWorld.player().arenaTypeID, team, baseID)
rate = 1
replayCtrl = BattleReplay.g_replayCtrl
if replayCtrl.isPlaying and replayCtrl.playbackSpeed is not None:
rate = replayCtrl.playbackSpeed
self._TeamBasesPanel__callFlash('add', [
id,
weight,
color,
capturingString,
points,
rate])
if capturingStopped:
self._TeamBasesPanel__callFlash('stop', [
id,
points])
self._TeamBasesPanel__capturePoints[id] = points
self._TeamBasesPanel__loadUpdateCallback(id)
if not capturingStopped:
self._TeamBasesPanel__playCaptureSound(team)
elif not self._hasBaseId(team, exclude = id) or team ^ BigWorld.player().team:
self._TeamBasesPanel__stopCaptureSound(team)
def _TeamBasesPanel__onTeamBaseCaptured(self, team, baseID):
if team not in (1, 2):
return None
id = None._getID(team, baseID)
if isControlPointExists(BigWorld.player().arenaTypeID):
settings = self._TeamBasesPanel__settings.get('controlPoint', { })
color = settings.get('color', { }).get(team ^ BigWorld.player().team, 'green')
else:
settings = self._TeamBasesPanel__settings.get(team ^ BigWorld.player().team, { })
color = settings.get('color', 'green')
if id in self._TeamBasesPanel__baseIds:
self._TeamBasesPanel__callFlash('setCaptured', [
id,
settings.get('captured', '') % getBattleSubTypeBaseNumder(BigWorld.player().arenaTypeID, team, baseID)])
else:
self._TeamBasesPanel__baseIds.add(id)
self._TeamBasesPanel__callFlash('add', [
id,
color,
settings.get('weight', 0),
settings.get('captured', '') % getBattleSubTypeBaseNumder(BigWorld.player().arenaTypeID, team, baseID),
100])
self._TeamBasesPanel__stopCaptureSound(team)