-
Content Count
11 -
Joined
-
Last visited
Everything posted by n3vVv1n
-
Вообще-то я писал конкретно про арту, потому что геймплей на ней серьёзно поменялся после ребаланса. Разница между играющими на ней и не играющими стала расти по WN8 не в пользу играющих. Можно, конечно, каким-то образом считать равным нулю WN8 на арте для не играющих на ней после ребаланса, но этот вариант мне кажется более неподходящим.
-
Не встречал подобную тему, направьте, если есть. Итак, формула расчёта WN8 никак не учитывает ассист на танках, в том числе, новое оглушение на арте. На данный момент урон на арте стал наноситься меньше, чем до ребаланса, поэтому у тех, кто играет сейчас, WN8 на артах и по аккаунту падает или ниже, чем у других. Например, игрок1 и игрок2 до ребаланса держали 3к дамага на арте, но после него игрок1 перестал играть конкретно на арте, а игрок2 продолжил, но дамаг у него стал проседать до 2к. Получается, что WN8 у первого будет выше, хотя он не имеет никакого отношения к реальному положению дел, т.е. для WN8 выгоднее было перестать играть на арте после ребаланса... Видел акки, на которых сыграли несколько боёв на арте после ребаланса и "испугались" продолжать, боясь за статку. Сейчас можно высчитывать средний урон по оглушённым вами целям, API это позволяет. Предлагаю следующий вариант, который мне кажется более адекватным под сложившуюся ситуацию: для расчёте коэффициентов по арте учитывать сумму нанесённого урона и урона по оглушению, а не только нанесённый урон. Тогда показатели до ребаланса арты и после станут более-менее равными. Опыт и достаточное умение игры на арте позволяют мне делать подобные суждения. Хотелось бы увидеть обсуждение или обоснованный отказ от этого (не уверен, что расчёты станут гораздо дольше от этого). Спасибо.
-
WN8 формула и параметры (помогите посчитать)
n3vVv1n replied to Never_Say_Never's topic in Modding General Discussion
Сумма произведений уровней танков на кол-во боёв на них, делённая на общее кол-во боёв. -
Генеральные не идут же в общую статистику.
-
На код: 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__' Похоже, что нужна задержка между вызовами. Помогайте .
-
Спасибо, двигаюсь дальше.
-
На: 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__'
-
Написал такое: 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?
-
Это просто время записи в лог.
-
Сделал примерно так: BigWorld.player().requestPlayerInfo(self.playerID, self.mycallback) в лог записало кучу инфы вида: но я не увидел явно нужной информации...
-
Здравствуйте. Извините, я весьма далёк от данной темы, но некое поверхностное представление получил. Хотелось бы получить любую помощь в таком вопросе: как извлечь информацию из профиля любого игрока (вообще нужен клановый) из поля "Последний раз был в бою: ...", т.к. она там всегда актуальна, а в WGAPI обновляется только после завершения игровой сессии. Спасибо.