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

n3vVv1n

Пользователь
  • Публикации

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

  • Посещение

Репутация

0 Нуп

О n3vVv1n

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

Основная информация

  • Пол
    Мужчина

Контакты

  • Ник
    n3vVv1n
  • Сервер WoT
    RU / CIS
  1. Время последнего боя

    На код: import BigWorld from gui.shared import g_itemsCache import datetime from PlayerEvents import g_playerEvents from messenger.storage import storage_getter def log(s): logfile = open('n3vVv1n.log', 'a') try: logfile.write('%s: %s\n' % (datetime.datetime.now().strftime('%Y.%m.%d %H:%M:%S'), s)) except: print 'Exception' logfile.close() return None def init(): test = n3vVv1n_mod() class n3vVv1n_mod(): logfile = open('n3vVv1n.log', 'w') logfile.close() def usersStorage(self): return None usersStorage = storage_getter('users')(usersStorage) def playerCtx(self): return None playerCtx = storage_getter('playerCtx')(playerCtx) def __init__(self): g_playerEvents.onAccountShowGUI += self.onAccountShowGUI g_playerEvents.onAccountBecomePlayer += self.onAccountBecomePlayer def onAccountBecomePlayer(self): self.playerCtx.onClanInfoChanged += self.onClanInfoChanged_new def callback(self, *args): lastBattleTime = args[0]['total']['lastBattleTime'] log('Последняя битва: ' + str(lastBattleTime)) def onAccountShowGUI(self, ctx): playerID = BigWorld.player().databaseID log('myID: ' + str(playerID)) def onClanInfoChanged_new(self): clanAbbrev = self.playerCtx.getClanAbbrev() log('Клан: ' + clanAbbrev) members = self.usersStorage.getClanMembersIterator() for memb in members: log(memb.getID()) req = g_itemsCache.items.dossiers.getUserDossierRequester(memb.getID()) req.getAccountDossier()(self.callback) В логах ошибка по каждому игроку клана вида: 2017-01-20 00:09:20.986: ERROR: [ERROR] (scripts/client/gui/shared/utils/requesters/DossierRequester.py, 235): Error while server request (code=-5): Identical requests cooldown 2017-01-20 00:09:20.986: ERROR: Traceback (most recent call last): 2017-01-20 00:09:20.986: ERROR: File "scripts/client/Account.py", line 325, in onCmdResponse 2017-01-20 00:09:20.986: ERROR: File "scripts/client/Account.py", line 985, in <lambda> 2017-01-20 00:09:20.986: ERROR: File "scripts/client/gui/shared/utils/requesters/DossierRequester.py", line 144, in <lambda> 2017-01-20 00:09:20.986: ERROR: File "scripts/client/gui/shared/utils/requesters/DossierRequester.py", line 241, in __processValueResponse 2017-01-20 00:09:20.986: ERROR: File "scripts/client/gui/shared/utils/requesters/DossierRequester.py", line 135, in proxyCallback 2017-01-20 00:09:20.987: ERROR: File "mod_n3vVv1n_small", line 44, in callback 2017-01-20 00:09:20.987: ERROR: TypeError: 'NoneType' object has no attribute '__getitem__' Похоже, что нужна задержка между вызовами. Помогайте .
  2. Время последнего боя

    Спасибо, двигаюсь дальше.
  3. Время последнего боя

    На: import BigWorld from gui.shared import g_itemsCache from datetime import datetime from PlayerEvents import g_playerEvents def init(): test = TestEvents() print '* Main. Init' print '* Tестовый мод загружен' class TestEvents(): def __init__(self): g_playerEvents.onAccountShowGUI += self.onAccountShowGUI g_playerEvents.onAccountBecomePlayer += self.onAccountBecomePlayer print '* TestEvents. Init' def onAccountBecomePlayer(self): print '* TestEvents. Подготовка ко входу в ангар' def callback(*args): lastBattleTime = args[0]['total']['lastBattleTime'] print datetime.fromtimestamp(lastBattleTime) print args def onAccountShowGUI(self, ctx): print '* TestEvents. Игрок в ангаре' playerID = BigWorld.player().databaseID print playerID req = g_itemsCache.items.dossiers.getUserDossierRequester(playerID) req.getAccountDossier()(self.callback) Ответ: 2017-01-10 21:25:42.750: INFO: * TestEvents. Игрок в ангаре 2017-01-10 21:25:42.751: INFO: 20214289 2017-01-10 21:25:42.959: ERROR: Traceback (most recent call last): 2017-01-10 21:25:42.959: ERROR: File "scripts/client/Account.py", line 341, in onCmdResponseExt 2017-01-10 21:25:42.959: ERROR: File "scripts/client/Account.py", line 985, in <lambda> 2017-01-10 21:25:42.959: ERROR: File "scripts/client/gui/shared/utils/requesters/DossierRequester.py", line 144, in <lambda> 2017-01-10 21:25:42.959: ERROR: File "scripts/client/gui/shared/utils/requesters/DossierRequester.py", line 244, in __processValueResponse 2017-01-10 21:25:42.960: ERROR: File "scripts/client/gui/shared/utils/requesters/DossierRequester.py", line 135, in proxyCallback 2017-01-10 21:25:42.960: ERROR: File "mod_n3vVv1n_small", line 22, in callback 2017-01-10 21:25:42.960: ERROR: AttributeError: TestEvents instance has no attribute '__getitem__'
  4. Время последнего боя

    Написал такое: import BigWorld from gui.shared import g_itemsCache from datetime import datetime from PlayerEvents import g_playerEvents def log(s): logfile = open('n3vVv1n.log', 'a') try: logfile.write('%s: %s\n' % (datetime.datetime.now().strftime('%Y.%m.%d %H:%M:%S'), s)) except: print 'Exception' logfile.close() return None logfile = open('n3vVv1n.log', 'w') logfile.close() def callback(*args): lastBattleTime = args[0]['total']['lastBattleTime'] log(datetime.fromtimestamp(lastBattleTime)) def func_onAccountBecomePlayer(): log(BigWorld.player().name) log(BigWorld.player().databaseID) req = g_itemsCache.items.dossiers.getUserDossierRequester(BigWorld.player().databaseID) req.getAccountDossier()(callback) g_playerEvents.onAccountBecomePlayer += func_onAccountBecomePlayer в python.log ошибка: 2017-01-09 01:47:55.588: ERROR: [EXCEPTION] (scripts/common/Event.py, 46): Traceback (most recent call last): File "scripts/common/Event.py", line 44, in __call__ File "mod_n3vVv1n_small", line 27, in func_onAccountBecomePlayer File "scripts/client/gui/shared/utils/requesters/DossierRequester.py", line 401, in getUserDossierRequester TypeError: int() argument must be a string or a number, not 'NoneType' А в какой момент вообще можно получать BigWorld.player().databaseID?
  5. Время последнего боя

    Это просто время записи в лог.
  6. Время последнего боя

    Сделал примерно так: BigWorld.player().requestPlayerInfo(self.playerID, self.mycallback) в лог записало кучу инфы вида: но я не увидел явно нужной информации...
  7. Здравствуйте. Извините, я весьма далёк от данной темы, но некое поверхностное представление получил. Хотелось бы получить любую помощь в таком вопросе: как извлечь информацию из профиля любого игрока (вообще нужен клановый) из поля "Последний раз был в бою: ...", т.к. она там всегда актуальна, а в WGAPI обновляется только после завершения игровой сессии. Спасибо.
×