Example #1
0
    def __init__(self):
        userPrefs = Settings.g_instance.userPrefs
        if not userPrefs.has_key(Settings.KEY_REPLAY_PREFERENCES):
            userPrefs.write(Settings.KEY_REPLAY_PREFERENCES, '')
        self.__settings = userPrefs[Settings.KEY_REPLAY_PREFERENCES]
        self.__fileName = None
        self.__replayCtrl = BigWorld.WGReplayController()
        self.__replayCtrl.replayFinishedCallback = self.onReplayFinished
        self.__replayCtrl.controlModeChangedCallback = self.onControlModeChanged
        self.__replayCtrl.ammoButtonPressedCallback = self.__onAmmoButtonPressed
        self.__replayCtrl.playerVehicleIDChangedCallback = self.onPlayerVehicleIDChanged
        self.__replayCtrl.clientVersionDiffersCallback = self.onClientVersionDiffers
        self.__replayCtrl.battleChatMessageCallback = self.onBattleChatMessage
        self.__replayCtrl.lockTargetCallback = self.onLockTarget
        self.__replayCtrl.cruiseModeCallback = self.onSetCruiseMode
        self.__replayCtrl.equipmentIdCallback = self.onSetEquipmentId
        self.__isAutoRecordingEnabled = False
        self.__quitAfterStop = False
        self.__isPlayingPlayList = False
        self.__playList = []
        self.__isFinished = False
        self.__isMenuShowed = False
        self.__updateGunOnTimeWarp = False
        self.__isBattleSimulation = False
        battleSimulationSection = userPrefs[_BATTLE_SIMULATION_KEY_PATH]
        if battleSimulationSection is not None:
            self.__isBattleSimulation = battleSimulationSection.asBool
        self.__playerDatabaseID = 0
        self.__serverSettings = dict()
        if isPlayerAccount():
            self.__playerDatabaseID = BigWorld.player().databaseID
        self.__playbackSpeedModifiers = (0.0, 0.0625, 0.125, 0.25, 0.5, 1.0, 2.0, 4.0, 8.0, 16.0)
        self.__playbackSpeedModifiersStr = ('0', '1/16', '1/8', '1/4', '1/2', '1', '2', '4', '8', '16')
        self.__playbackSpeedIdx = self.__playbackSpeedModifiers.index(1.0)
        self.__savedPlaybackSpeedIdx = self.__playbackSpeedIdx
        self.__gunWasLockedBeforePause = False
        self.__wasVideoBeforeRewind = False
        self.__videoCameraMatrix = Math.Matrix()
        self.__replayDir = './replays'
        self.__replayCtrl.clientVersion = BigWorld.wg_getProductVersion()
        self.__timeWarpCleanupCb = None
        self.__enableTimeWarp = False
        self.__isChatPlaybackEnabled = True
        self.__warpTime = -1.0
        self.__skipMessage = False
        self.__equipmentId = None
        self.__rewind = False
        self.replayTimeout = 0
        self.__arenaPeriod = -1
        self.enableAutoRecordingBattles(True)
        self.onCommandReceived = Event.Event()
        self.onAmmoSettingChanged = Event.Event()
        self.onStopped = Event.Event()
        if IS_DEVELOPMENT:
            try:
                import development.replay_override
            except:
                pass

        return
Example #2
0
 def onClientReady(self):
     if not (self.isPlaying or self.isRecording):
         return
     elif self.isRecording and BigWorld.player().arena.guiType == constants.ARENA_GUI_TYPE.TUTORIAL:
         self.stop(None, True)
         return
     else:
         self.__replayCtrl.playerVehicleID = BigWorld.player().playerVehicleID
         self.__replayCtrl.onClientReady()
         if self.isPlaying:
             AreaDestructibles.g_destructiblesManager.onAfterReplayTimeWarp()
             if isPlayerAvatar():
                 BigWorld.player().onVehicleEnterWorld += self.__onVehicleEnterWorld
         if self.isRecording:
             player = BigWorld.player()
             arena = player.arena
             arenaName = arena.arenaType.geometry
             i = arenaName.find('/')
             if i != -1:
                 arenaName = arenaName[i + 1:]
             now = datetime.datetime.now()
             now = '%02d.%02d.%04d %02d:%02d:%02d' % (now.day,
              now.month,
              now.year,
              now.hour,
              now.minute,
              now.second)
             vehicleName = BigWorld.entities[player.playerVehicleID].typeDescriptor.name
             vehicleName = vehicleName.replace(':', '-')
             vehicles = self.__getArenaVehiclesInfo()
             gameplayID = player.arenaTypeID >> 16
             clientVersionFromXml = getFullClientVersion()
             clientVersionFromExe = BigWorld.wg_getProductVersion()
             arenaInfo = {'dateTime': now,
              'playerName': player.name,
              'playerID': self.__playerDatabaseID,
              'playerVehicle': vehicleName,
              'mapName': arenaName,
              'mapDisplayName': arena.arenaType.name,
              'gameplayID': ArenaType.getGameplayName(gameplayID) or gameplayID,
              'vehicles': vehicles,
              'battleType': arena.bonusType,
              'clientVersionFromExe': clientVersionFromExe,
              'clientVersionFromXml': clientVersionFromXml,
              'serverName': connectionManager.serverUserName,
              'regionCode': constants.AUTH_REALM,
              'serverSettings': self.__serverSettings,
              'hasMods': self.__replayCtrl.hasMods}
             self.__replayCtrl.recMapName = arenaName
             self.__replayCtrl.recPlayerVehicleName = vehicleName
             self.__replayCtrl.setArenaInfoStr(json.dumps(arenaInfo))
         else:
             self.__showInfoMessage('replayControlsHelp1')
             self.__showInfoMessage('replayControlsHelp2')
             self.__showInfoMessage('replayControlsHelp3')
             if self.replayTimeout > 0:
                 LOG_DEBUG('replayTimeout set for %.2f' % float(self.replayTimeout))
                 BigWorld.callback(float(self.replayTimeout), BigWorld.quit)
         return
Example #3
0
 def onClientReady(self):
     if not (self.isPlaying or self.isRecording):
         return
     elif self.isRecording and BigWorld.player().arena.guiType == constants.ARENA_GUI_TYPE.TUTORIAL:
         self.stop(None, True)
         return
     else:
         self.__replayCtrl.playerVehicleID = BigWorld.player().playerVehicleID
         self.__replayCtrl.onClientReady()
         if self.isPlaying:
             AreaDestructibles.g_destructiblesManager.onAfterReplayTimeWarp()
             if isPlayerAvatar():
                 BigWorld.player().onVehicleEnterWorld += self.__onVehicleEnterWorld
         if self.isRecording:
             player = BigWorld.player()
             arena = player.arena
             arenaName = arena.arenaType.geometry
             i = arenaName.find('/')
             if i != -1:
                 arenaName = arenaName[i + 1:]
             now = datetime.datetime.now()
             now = '%02d.%02d.%04d %02d:%02d:%02d' % (now.day,
              now.month,
              now.year,
              now.hour,
              now.minute,
              now.second)
             vehicleName = BigWorld.entities[player.playerVehicleID].typeDescriptor.name
             vehicleName = vehicleName.replace(':', '-')
             vehicles = self.__getArenaVehiclesInfo()
             gameplayID = player.arenaTypeID >> 16
             clientVersionFromXml = getFullClientVersion()
             clientVersionFromExe = BigWorld.wg_getProductVersion()
             arenaInfo = {'dateTime': now,
              'playerName': player.name,
              'playerID': self.__playerDatabaseID,
              'playerVehicle': vehicleName,
              'mapName': arenaName,
              'mapDisplayName': arena.arenaType.name,
              'gameplayID': ArenaType.getGameplayName(gameplayID) or gameplayID,
              'vehicles': vehicles,
              'battleType': arena.bonusType,
              'clientVersionFromExe': clientVersionFromExe,
              'clientVersionFromXml': clientVersionFromXml,
              'serverName': connectionManager.serverUserName,
              'regionCode': constants.AUTH_REALM,
              'serverSettings': self.__serverSettings}
             self.__replayCtrl.recMapName = arenaName
             self.__replayCtrl.recPlayerVehicleName = vehicleName
             self.__replayCtrl.setArenaInfoStr(json.dumps(arenaInfo))
         else:
             self.__showInfoMessage('replayControlsHelp1')
             self.__showInfoMessage('replayControlsHelp2')
             self.__showInfoMessage('replayControlsHelp3')
             if self.replayTimeout > 0:
                 LOG_DEBUG('replayTimeout set for %.2f' % float(self.replayTimeout))
                 BigWorld.callback(float(self.replayTimeout), BigWorld.quit)
         return
Example #4
0
 def __init__(self):
     userPrefs = Settings.g_instance.userPrefs
     if not userPrefs.has_key(Settings.KEY_REPLAY_PREFERENCES):
         userPrefs.write(Settings.KEY_REPLAY_PREFERENCES, '')
     self.__settings = userPrefs[Settings.KEY_REPLAY_PREFERENCES]
     self.__fileName = None
     self.__replayCtrl = BigWorld.WGReplayController()
     self.__replayCtrl.replayFinishedCallback = self.onReplayFinished
     self.__replayCtrl.controlModeChangedCallback = self.onControlModeChanged
     self.__replayCtrl.ammoButtonPressedCallback = self.__onAmmoButtonPressed
     self.__replayCtrl.playerVehicleIDChangedCallback = self.onPlayerVehicleIDChanged
     self.__replayCtrl.clientVersionDiffersCallback = self.onClientVersionDiffers
     self.__replayCtrl.battleChatMessageCallback = self.onBattleChatMessage
     self.__replayCtrl.lockTargetCallback = self.onLockTarget
     self.__replayCtrl.cruiseModeCallback = self.onSetCruiseMode
     self.__replayCtrl.equipmentIdCallback = self.onSetEquipmentId
     self.__isAutoRecordingEnabled = False
     self.__quitAfterStop = False
     self.__isPlayingPlayList = False
     self.__playList = []
     self.__isFinished = False
     self.__isMenuShowed = False
     self.__updateGunOnTimeWarp = False
     g_playerEvents.onBattleResultsReceived += self.__onBattleResultsReceived
     g_playerEvents.onAccountBecomePlayer += self.__onAccountBecomePlayer
     g_playerEvents.onArenaPeriodChange += self.__onArenaPeriodChange
     from account_helpers.settings_core.SettingsCore import g_settingsCore
     g_settingsCore.onSettingsChanged += self.__onSettingsChanging
     self.__playerDatabaseID = 0
     self.__serverSettings = dict()
     if isPlayerAccount():
         self.__playerDatabaseID = BigWorld.player().databaseID
     self.__playbackSpeedModifiers = (0.0, 0.0625, 0.125, 0.25, 0.5, 1.0,
                                      2.0, 4.0, 8.0, 16.0)
     self.__playbackSpeedModifiersStr = ('0', '1/16', '1/8', '1/4', '1/2',
                                         '1', '2', '4', '8', '16')
     self.__playbackSpeedIdx = self.__playbackSpeedModifiers.index(1.0)
     self.__savedPlaybackSpeedIdx = self.__playbackSpeedIdx
     self.__gunWasLockedBeforePause = False
     self.__wasVideoBeforeRewind = False
     self.__videoCameraMatrix = Math.Matrix()
     self.__replayDir = './replays'
     self.__replayCtrl.clientVersion = BigWorld.wg_getProductVersion()
     self.__timeWarpCleanupCb = None
     self.__enableTimeWarp = False
     self.__isChatPlaybackEnabled = True
     self.__warpTime = -1.0
     self.__skipMessage = False
     self.__equipmentId = None
     self.__rewind = False
     self.replayTimeout = 0
     self.__arenaPeriod = -1
     self.enableAutoRecordingBattles(True)
     gui.Scaleform.CursorDelegator.g_cursorDelegator.detachCursor()
     self.onCommandReceived = Event.Event()
     self.onAmmoSettingChanged = Event.Event()
     self.onStopped = Event.Event()
     return
Example #5
0
 def __init__(self):
     userPrefs = Settings.g_instance.userPrefs
     if not userPrefs.has_key(Settings.KEY_REPLAY_PREFERENCES):
         userPrefs.write(Settings.KEY_REPLAY_PREFERENCES, '')
     self.__settings = userPrefs[Settings.KEY_REPLAY_PREFERENCES]
     self.__fileName = None
     self.__replayCtrl = BigWorld.WGReplayController()
     self.__replayCtrl.replayFinishedCallback = self.onReplayFinished
     self.__replayCtrl.controlModeChangedCallback = self.onControlModeChanged
     self.__replayCtrl.ammoButtonPressedCallback = self.__onAmmoButtonPressed
     self.__replayCtrl.playerVehicleIDChangedCallback = self.onPlayerVehicleIDChanged
     self.__replayCtrl.clientVersionDiffersCallback = self.onClientVersionDiffers
     self.__replayCtrl.battleChatMessageCallback = self.onBattleChatMessage
     self.__replayCtrl.lockTargetCallback = self.onLockTarget
     self.__replayCtrl.cruiseModeCallback = self.onSetCruiseMode
     self.__replayCtrl.equipmentIdCallback = self.onSetEquipmentId
     self.__isAutoRecordingEnabled = False
     self.__quitAfterStop = False
     self.__isPlayingPlayList = False
     self.__playList = []
     self.__isFinished = False
     self.__isMenuShowed = False
     self.__updateGunOnTimeWarp = False
     g_playerEvents.onBattleResultsReceived += self.__onBattleResultsReceived
     g_playerEvents.onAccountBecomePlayer += self.__onAccountBecomePlayer
     g_playerEvents.onArenaPeriodChange += self.__onArenaPeriodChange
     from account_helpers.settings_core.SettingsCore import g_settingsCore
     g_settingsCore.onSettingsChanged += self.__onSettingsChanging
     self.__playerDatabaseID = 0
     self.__serverSettings = dict()
     if isPlayerAccount():
         self.__playerDatabaseID = BigWorld.player().databaseID
     self.__playbackSpeedModifiers = (0.0, 0.0625, 0.125, 0.25, 0.5, 1.0, 2.0, 4.0, 8.0, 16.0)
     self.__playbackSpeedModifiersStr = ('0', '1/16', '1/8', '1/4', '1/2', '1', '2', '4', '8', '16')
     self.__playbackSpeedIdx = self.__playbackSpeedModifiers.index(1.0)
     self.__savedPlaybackSpeedIdx = self.__playbackSpeedIdx
     self.__gunWasLockedBeforePause = False
     self.__wasVideoBeforeRewind = False
     self.__videoCameraMatrix = Math.Matrix()
     self.__replayDir = './replays'
     self.__replayCtrl.clientVersion = BigWorld.wg_getProductVersion()
     self.__timeWarpCleanupCb = None
     self.__enableTimeWarp = False
     self.__isChatPlaybackEnabled = True
     self.__warpTime = -1.0
     self.__skipMessage = False
     self.__equipmentId = None
     self.__rewind = False
     self.replayTimeout = 0
     self.__arenaPeriod = -1
     self.enableAutoRecordingBattles(True)
     gui.Scaleform.CursorDelegator.g_cursorDelegator.detachCursor()
     self.onCommandReceived = Event.Event()
     self.onAmmoSettingChanged = Event.Event()
     self.onStopped = Event.Event()
     return
 def onClientReady(self):
     if not (self.isPlaying or self.isRecording):
         return
     if self.isRecording and BigWorld.player().arena.guiType == constants.ARENA_GUI_TYPE.TUTORIAL:
         self.stop()
         return
     self.__replayCtrl.playerVehicleID = BigWorld.player().playerVehicleID
     self.__replayCtrl.onClientReady()
     if self.isRecording:
         player = BigWorld.player()
         arena = player.arena
         arenaName = arena.arenaType.geometry
         i = arenaName.find('/')
         if i != -1:
             arenaName = arenaName[i + 1:]
         now = datetime.datetime.now()
         now = '%02d.%02d.%04d %02d:%02d:%02d' % (now.day,
          now.month,
          now.year,
          now.hour,
          now.minute,
          now.second)
         vehicleName = BigWorld.entities[player.playerVehicleID].typeDescriptor.name
         vehicleName = vehicleName.replace(':', '-')
         vehicles = self.__getArenaVehiclesInfo()
         gameplayID = player.arenaTypeID >> 16
         sec = ResMgr.openSection(VERSION_FILE_PATH)
         clientVersionFromXml = i18n.makeString(sec.readString('appname')) + ' ' + sec.readString('version')
         clientVersionFromExe = BigWorld.wg_getProductVersion()
         arenaInfo = {'dateTime': now,
          'playerName': player.name,
          'playerID': self.__playerDatabaseID,
          'playerVehicle': vehicleName,
          'mapName': arenaName,
          'mapDisplayName': arena.arenaType.name,
          'gameplayID': ArenaType.getGameplayName(gameplayID) or gameplayID,
          'vehicles': vehicles,
          'battleType': arena.bonusType,
          'clientVersionFromExe': clientVersionFromExe,
          'clientVersionFromXml': clientVersionFromXml,
          'serverName': connectionManager.serverUserName,
          'regionCode': constants.AUTH_REALM,
          'roamingSettings': self.__roamingSettings}
         self.__replayCtrl.recMapName = arenaName
         self.__replayCtrl.recPlayerVehicleName = vehicleName
         self.__replayCtrl.setArenaInfoStr(json.dumps(arenaInfo))
     else:
         self.isPlaying = True
         self.__enableTimeWarp = True
         currReplayTime = self.__replayCtrl.getTimeMark(REPLAY_TIME_MARK_CURRENT_TIME)
         self.__timeWarp(currReplayTime + 30.0)
         self.triggerRecord()
         self.__disableSidePanelContextMenu()
Example #7
0
 def onClientReady(self):
     if not self.isPlaying:
         if not self.isRecording:
             return
         if self.isRecording and BigWorld.player(
         ).arena.guiType == constants.ARENA_GUI_TYPE.TUTORIAL:
             self.stop()
             return
         self.__replayCtrl.playerVehicleID = BigWorld.player(
         ).playerVehicleID
         self.__replayCtrl.onClientReady()
         if self.isRecording:
             player = BigWorld.player()
             arena = player.arena
             arenaName = arena.arenaType.geometry
             i = arenaName.find('/')
             arenaName = i != -1 and arenaName[i + 1:]
         now = datetime.datetime.now()
         now = '%02d.%02d.%04d %02d:%02d:%02d' % (
             now.day, now.month, now.year, now.hour, now.minute, now.second)
         vehicleName = BigWorld.entities[
             player.playerVehicleID].typeDescriptor.name
         vehicleName = vehicleName.replace(':', '-')
         vehicles = self.__getArenaVehiclesInfo()
         gameplayID = player.arenaTypeID >> 16
         sec = ResMgr.openSection(VERSION_FILE_PATH)
         clientVersionFromXml = i18n.makeString(
             sec.readString('appname')) + ' ' + sec.readString('version')
         clientVersionFromExe = BigWorld.wg_getProductVersion()
         arenaInfo = {
             'dateTime': now,
             'playerName': player.name,
             'playerID': self.__playerDatabaseID,
             'playerVehicle': vehicleName,
             'mapName': arenaName,
             'mapDisplayName': arena.arenaType.name,
             'gameplayID': ArenaType.getGameplayName(gameplayID)
             or gameplayID,
             'vehicles': vehicles,
             'battleType': arena.bonusType,
             'clientVersionFromExe': clientVersionFromExe,
             'clientVersionFromXml': clientVersionFromXml
         }
         self.__replayCtrl.recMapName = arenaName
         self.__replayCtrl.recPlayerVehicleName = vehicleName
         self.__replayCtrl.setArenaInfoStr(json.dumps(arenaInfo))
     else:
         self.__showInfoMessage('replayControlsHelp1')
         self.__showInfoMessage('replayControlsHelp2')
         self.__showInfoMessage('replayControlsHelp3')
         self.__disableSidePanelContextMenu()
Example #8
0
 def onClientReady(self):
     if not self.isPlaying:
         if not self.isRecording:
             return
         if self.isRecording and BigWorld.player().arena.guiType == constants.ARENA_GUI_TYPE.TUTORIAL:
             self.stop()
             return
         self.__replayCtrl.playerVehicleID = BigWorld.player().playerVehicleID
         self.__replayCtrl.onClientReady()
         if self.isRecording:
             player = BigWorld.player()
             arena = player.arena
             arenaName = arena.arenaType.geometry
             i = arenaName.find('/')
             arenaName = i != -1 and arenaName[i + 1:]
         now = datetime.datetime.now()
         now = '%02d.%02d.%04d %02d:%02d:%02d' % (now.day,
          now.month,
          now.year,
          now.hour,
          now.minute,
          now.second)
         vehicleName = BigWorld.entities[player.playerVehicleID].typeDescriptor.name
         vehicleName = vehicleName.replace(':', '-')
         vehicles = self.__getArenaVehiclesInfo()
         gameplayID = player.arenaTypeID >> 16
         sec = ResMgr.openSection(VERSION_FILE_PATH)
         clientVersionFromXml = i18n.makeString(sec.readString('appname')) + ' ' + sec.readString('version')
         clientVersionFromExe = BigWorld.wg_getProductVersion()
         arenaInfo = {'dateTime': now,
          'playerName': player.name,
          'playerID': self.__playerDatabaseID,
          'playerVehicle': vehicleName,
          'mapName': arenaName,
          'mapDisplayName': arena.arenaType.name,
          'gameplayID': ArenaType.getGameplayName(gameplayID) or gameplayID,
          'vehicles': vehicles,
          'battleType': arena.bonusType,
          'clientVersionFromExe': clientVersionFromExe,
          'clientVersionFromXml': clientVersionFromXml}
         self.__replayCtrl.recMapName = arenaName
         self.__replayCtrl.recPlayerVehicleName = vehicleName
         self.__replayCtrl.setArenaInfoStr(json.dumps(arenaInfo))
     else:
         self.__showInfoMessage('replayControlsHelp1')
         self.__showInfoMessage('replayControlsHelp2')
         self.__showInfoMessage('replayControlsHelp3')
         self.__disableSidePanelContextMenu()
 def __init__(self):
     userPrefs = Settings.g_instance.userPrefs
     if not userPrefs.has_key(Settings.KEY_REPLAY_PREFERENCES):
         userPrefs.write(Settings.KEY_REPLAY_PREFERENCES, '')
     self.__settings = userPrefs[Settings.KEY_REPLAY_PREFERENCES]
     self.__fileName = None
     self.__replayCtrl = BigWorld.WGReplayController()
     self.__replayCtrl.replayFinishedCallback = self.onReplayFinished
     self.__replayCtrl.controlModeChangedCallback = self.onControlModeChanged
     self.__replayCtrl.ammoButtonPressedCallback = self.onAmmoButtonPressed
     self.__replayCtrl.minimapCellClickedCallback = self.onMinimapCellClicked
     self.__replayCtrl.playerVehicleIDChangedCallback = self.onPlayerVehicleIDChanged
     self.__replayCtrl.clientVersionDiffersCallback = self.onClientVersionDiffers
     self.__replayCtrl.battleChatMessageCallback = self.onBattleChatMessage
     self.__replayCtrl.lockTargetCallback = self.onLockTarget
     self.__replayCtrl.cruiseModeCallback = self.onSetCruiseMode
     self.__isAutoRecordingEnabled = False
     self.__quitAfterStop = False
     self.__isPlayingPlayList = False
     self.__playList = []
     self.__isFinished = False
     g_playerEvents.onBattleResultsReceived += self.__onBattleResultsReceived
     g_playerEvents.onAccountBecomePlayer += self.__onAccountBecomePlayer
     from account_helpers.SettingsCore import g_settingsCore
     g_settingsCore.onSettingsChanged += self.__onSettingsChanging
     self.__playerDatabaseID = 0
     self.__roamingSettings = None
     if isPlayerAccount():
         self.__playerDatabaseID = BigWorld.player().databaseID
     self.__playbackSpeedModifiers = (0.0, 0.0625, 0.125, 0.25, 0.5, 1.0, 2.0, 4.0, 8.0, 16.0)
     self.__playbackSpeedModifiersStr = ('0', '1/16', '1/8', '1/4', '1/2', '1', '2', '4', '8', '16')
     self.__playbackSpeedIdx = self.__playbackSpeedModifiers.index(1.0)
     self.__savedPlaybackSpeedIdx = self.__playbackSpeedIdx
     self.__gunWasLockedBeforePause = False
     self.__replayDir = './replays'
     self.__replayCtrl.clientVersion = BigWorld.wg_getProductVersion()
     self.__timeWarpCleanupCb = None
     self.__enableTimeWarp = False
     self.__disableSidePanelContextMenuCb = None
     self.__isChatPlaybackEnabled = True
     self.enableAutoRecordingBattles(True)
     gui.Scaleform.CursorDelegator.g_cursorDelegator.detachCursor()
Example #10
0
 def __init__(self):
     userPrefs = Settings.g_instance.userPrefs
     if not userPrefs.has_key(Settings.KEY_REPLAY_PREFERENCES):
         userPrefs.write(Settings.KEY_REPLAY_PREFERENCES, '')
     self.__settings = userPrefs[Settings.KEY_REPLAY_PREFERENCES]
     self.__fileName = None
     self.__replayCtrl = BigWorld.WGReplayController()
     self.__replayCtrl.replayFinishedCallback = self.onReplayFinished
     self.__replayCtrl.controlModeChangedCallback = self.onControlModeChanged
     self.__replayCtrl.ammoButtonPressedCallback = self.onAmmoButtonPressed
     self.__replayCtrl.minimapCellClickedCallback = self.onMinimapCellClicked
     self.__replayCtrl.playerVehicleIDChangedCallback = self.onPlayerVehicleIDChanged
     self.__replayCtrl.clientVersionDiffersCallback = self.onClientVersionDiffers
     self.__replayCtrl.battleChatMessageCallback = self.onBattleChatMessage
     self.__isAutoRecordingEnabled = False
     self.__quitAfterStop = False
     self.__isPlayingPlayList = False
     self.__playList = []
     g_playerEvents.onBattleResultsReceived += self.__onBattleResultsReceived
     g_playerEvents.onAccountBecomePlayer += self.__onAccountBecomePlayer
     from account_helpers.SettingsCore import g_settingsCore
     g_settingsCore.onSettingsChanged += self.__onSettingsChanging
     self.__playerDatabaseID = 0
     if isPlayerAccount():
         self.__playerDatabaseID = BigWorld.player().databaseID
     self.__playbackSpeedModifiers = (0.0, 0.0625, 0.125, 0.25, 0.5, 1.0,
                                      2.0, 4.0, 8.0, 16.0)
     self.__playbackSpeedModifiersStr = ('0', '1/16', '1/8', '1/4', '1/2',
                                         '1', '2', '4', '8', '16')
     self.__playbackSpeedIdx = self.__playbackSpeedModifiers.index(1.0)
     self.__gunWasLockedBeforePause = False
     self.__replayDir = './replays'
     self.__replayCtrl.clientVersion = BigWorld.wg_getProductVersion()
     self.__timeWarpCleanupCb = None
     self.__enableTimeWarp = False
     self.__disableSidePanelContextMenuCb = None
     self.enableAutoRecordingBattles(True)
     return
Example #11
0
 def onClientReady(self):
     if not (self.isPlaying or self.isRecording):
         return
     elif self.isRecording and BigWorld.player(
     ).arena.guiType == constants.ARENA_GUI_TYPE.TUTORIAL:
         self.stop(None, True)
         return
     else:
         self.__replayCtrl.playerVehicleID = BigWorld.player(
         ).playerVehicleID
         self.__replayCtrl.onClientReady()
         if self.isPlaying:
             AreaDestructibles.g_destructiblesManager.onAfterReplayTimeWarp(
             )
             if isPlayerAvatar():
                 BigWorld.player(
                 ).onVehicleEnterWorld += self.__onVehicleEnterWorld
             from gui.app_loader import settings
             self.appLoader.attachCursor(
                 settings.APP_NAME_SPACE.SF_BATTLE,
                 flags=GUI_CTRL_MODE_FLAG.CURSOR_ATTACHED)
         if self.isRecording:
             player = BigWorld.player()
             arena = player.arena
             arenaName = arena.arenaType.geometry
             i = arenaName.find('/')
             if i != -1:
                 arenaName = arenaName[i + 1:]
             now = datetime.datetime.now()
             now = '%02d.%02d.%04d %02d:%02d:%02d' % (
                 now.day, now.month, now.year, now.hour, now.minute,
                 now.second)
             vehicleName = BigWorld.entities[
                 player.playerVehicleID].typeDescriptor.name
             vehicleName = vehicleName.replace(':', '-')
             vehicles = self.__getArenaVehiclesInfo()
             gameplayID = player.arenaTypeID >> 16
             clientVersionFromXml = getFullClientVersion()
             clientVersionFromExe = BigWorld.wg_getProductVersion()
             arenaInfo = {
                 'dateTime': now,
                 'playerName': player.name,
                 'playerID': self.__playerDatabaseID,
                 'playerVehicle': vehicleName,
                 'mapName': arenaName,
                 'mapDisplayName': arena.arenaType.name,
                 'gameplayID': ArenaType.getGameplayName(gameplayID)
                 or gameplayID,
                 'vehicles': vehicles,
                 'battleType': arena.bonusType,
                 'clientVersionFromExe': clientVersionFromExe,
                 'clientVersionFromXml': clientVersionFromXml,
                 'serverName': self.connectionMgr.serverUserName,
                 'regionCode': constants.AUTH_REALM,
                 'serverSettings': self.__serverSettings,
                 'hasMods': self.__replayCtrl.hasMods
             }
             if BigWorld.player(
             ).arena.guiType == constants.ARENA_GUI_TYPE.BOOTCAMP:
                 from bootcamp.Bootcamp import g_bootcamp
                 arenaInfo['lessonId'] = g_bootcamp.getLessonNum()
                 arenaInfo['bootcampCtx'] = g_bootcamp.serializeContext()
             self.__replayCtrl.recMapName = arenaName
             self.__replayCtrl.recPlayerVehicleName = vehicleName
             self.__replayCtrl.setArenaInfoStr(
                 json.dumps(_JSON_Encode(arenaInfo)))
         else:
             self.__showInfoMessages()
             if self.replayTimeout > 0:
                 LOG_DEBUG('replayTimeout set for %.2f' %
                           float(self.replayTimeout))
                 BigWorld.callback(float(self.replayTimeout), BigWorld.quit)
         return