Jump to content
Korean Random

Leaderboard


Popular Content

Showing content with the highest reputation on 11/22/2018 in Posts

  1. 2 points
    Исправил, обновил скрипт assistLog.py
  2. 1 point
    Вообщем остановились на вот таком варианте расчета. 1. Находим сначала процент уникальности игрока на каждом танке, путем преобразования XTE в SUP UNP = 100 - xteTosup(XTE) 2. Находим средние проценты уникальности игрока на J-ом уровне (1, 2, ... 10) для каждого М-го типа техники (LT, MT, HT, AT, SPG) UNP_J = (BAT_1 + BAT_2 + ... + BAT_K) / (BAT_1/UNP_1 + BAT_2/UNP_2 + ... + BAT_K/UNP_K), где BAT_K и UNP_K - число боев и процент уникальности игрока для K-го танка J-го уровня M-го типа техники 3. Рассчитываем усредненные процент уникальности для каждого М-го типа техники UNP_M = (LEVEL_1 + LEVEL_2 + ...) / (LEVEL_1/UNP_1 + LEVEL_2/UNP_2 + ...), где LEVEL_1 = 1, LEVEL_2 = 2 и так до 10 уровня. Если на каком уровне танков нет, то в формуле исключаем его и из знаменателя и из числителя 4. Находим средний процент уникальности для всего аккаунта, как среднегармоническое значение UNP = COUNT_TYPE / (1/UNP_LT + 1/UNP_MT + 1/UNP_HT +1/UNP_AT +1/UNP_SPG), где COUNT_TYPE - число слагаемых в знаменателе, если игрок играл на всех типах техники будет 5 5. Пересчитываем итоговый UNP в XTE XTE = supToxte(100 - UNP) Ниже исходник расчета из NetStatisticsModules(NSM), в коде используются точные расчеты, т.е. XTE дробный и преобразование рейтингов делается без округления дробной части: Примеры циферок не округленных XTE для разных акков: *** StranikS_Scan *** 66.5583795534 *** MoDoDeJl *** 64.9704614437 *** X0TABbICH *** 66.4041503497 *** aBaPu9l_Mo3ra *** 88.4731847901 *** Straik *** 99.4067306403 *** Andre_V *** 33.4512309594 *** NooBool *** 52.2176230329
  3. 1 point
    @Scharfhobel ,Не много. Зимой окупаемость была 6 мес, сейчас 2 года...
  4. 1 point
    Откатывай драйвер / снижай настройки графики. Это баг комбинации WoT 1.2 и NVIDIA 390+ У меня вообще D3D на NVidia отваливается до перезагрузки.
  5. 1 point
    Decided to give it a test run and i noticed for some reason doesn't register every hit. Don't know if i messed up something with config, i watched same replay twice and same result. assistLog.xc battleLabelsTemplates.xc random 2 replays i used for testing: 15404136734602_france_F88_AMX_13_105_prohorovka.wotreplay 15416262142737_usa_A37_M40M43_steppes.wotreplay also every time i get any assistance ingame this is usually printed inside logs. 2018-11-21 19:58:18.627: INFO: ============================= 2018-11-21 19:58:50.694: INFO: ============================= 2018-11-21 19:58:50.694: INFO: 2018-11-21 19:58:50: [ERROR] mods/xfw/python/xfw/events.pyc 2018-11-21 19:58:50.694: ERROR: Traceback (most recent call last): 2018-11-21 19:58:50.694: ERROR: File "mods/xfw/python/xfw/events.py", line 57, in __event_handler 2018-11-21 19:58:50.695: ERROR: File "mods/xfw/python/xfw/events.py", line 24, in fire 2018-11-21 19:58:50.695: ERROR: File "res_mods/configs/xvm/py_macro\xvm\assistLog.py", line 636, in BattleRibbonsPanel__onRibbonUpdated 2018-11-21 19:58:50.695: ERROR: _data.ribbonUpdated(ribbon) 2018-11-21 19:58:50.695: ERROR: File "res_mods/configs/xvm/py_macro\xvm\assistLog.py", line 420, in ribbonUpdated 2018-11-21 19:58:50.695: ERROR: self.updateData() 2018-11-21 19:58:50.695: ERROR: File "res_mods/configs/xvm/py_macro\xvm\assistLog.py", line 393, in updateData 2018-11-21 19:58:50.695: ERROR: self.updateLabels() 2018-11-21 19:58:50.695: ERROR: File "res_mods/configs/xvm/py_macro\xvm\assistLog.py", line 245, in updateLabels 2018-11-21 19:58:50.695: ERROR: _altLog.output() 2018-11-21 19:58:50.695: ERROR: File "res_mods/configs/xvm/py_macro\xvm\assistLog.py", line 605, in output 2018-11-21 19:58:50.695: ERROR: self.groupHitsPlayer() 2018-11-21 19:58:50.695: ERROR: File "res_mods/configs/xvm/py_macro\xvm\assistLog.py", line 580, in groupHitsPlayer 2018-11-21 19:58:50.695: ERROR: self.updatePlayers(vehID) 2018-11-21 19:58:50.695: ERROR: File "res_mods/configs/xvm/py_macro\xvm\assistLog.py", line 534, in updatePlayers 2018-11-21 19:58:50.695: ERROR: self.updateList(pl, CHANGE) 2018-11-21 19:58:50.695: ERROR: NameError: global name 'pl' is not defined 2018-11-21 19:58:50.695: INFO: ============================= 2018-11-21 19:58:55.726: INFO: ============================= 2018-11-21 19:58:55.726: INFO: 2018-11-21 19:58:55: [ERROR] mods/xfw/python/xfw/events.pyc 2018-11-21 19:58:55.726: ERROR: Traceback (most recent call last): 2018-11-21 19:58:55.726: ERROR: File "mods/xfw/python/xfw/events.py", line 57, in __event_handler 2018-11-21 19:58:55.727: ERROR: File "mods/xfw/python/xfw/events.py", line 24, in fire 2018-11-21 19:58:55.727: ERROR: File "res_mods/configs/xvm/py_macro\xvm\assistLog.py", line 648, in BattleRibbonsPanel__onRibbonAdded 2018-11-21 19:58:55.727: ERROR: _data.ribbonAdded(ribbon) 2018-11-21 19:58:55.727: ERROR: File "res_mods/configs/xvm/py_macro\xvm\assistLog.py", line 447, in ribbonAdded 2018-11-21 19:58:55.727: ERROR: self.updateData() 2018-11-21 19:58:55.727: ERROR: File "res_mods/configs/xvm/py_macro\xvm\assistLog.py", line 393, in updateData 2018-11-21 19:58:55.727: ERROR: self.updateLabels() 2018-11-21 19:58:55.727: ERROR: File "res_mods/configs/xvm/py_macro\xvm\assistLog.py", line 245, in updateLabels 2018-11-21 19:58:55.727: ERROR: _altLog.output() 2018-11-21 19:58:55.727: ERROR: File "res_mods/configs/xvm/py_macro\xvm\assistLog.py", line 605, in output 2018-11-21 19:58:55.727: ERROR: self.groupHitsPlayer() 2018-11-21 19:58:55.727: ERROR: File "res_mods/configs/xvm/py_macro\xvm\assistLog.py", line 580, in groupHitsPlayer 2018-11-21 19:58:55.727: ERROR: self.updatePlayers(vehID) 2018-11-21 19:58:55.727: ERROR: File "res_mods/configs/xvm/py_macro\xvm\assistLog.py", line 534, in updatePlayers 2018-11-21 19:58:55.727: ERROR: self.updateList(pl, CHANGE) 2018-11-21 19:58:55.727: ERROR: NameError: global name 'pl' is not defined 2018-11-21 19:58:55.727: INFO: ============================= 2018-11-21 19:59:15.701: INFO: =============================
  6. 1 point
    Ну в чем-то я с этим согласен... я действительно уже несколько устал отвечать на одни и те же вопросы с одним и тем же смыслом, но из разных углов и в разных вариациях. Потому периодически нервничаю и временами генерирую пусть и не очень понятную простому пользователю, но достаточно исчерпывающую документацию по тому или иному часто задаваемому вопросу. К сожалению, по некоторым вопросам (в особенности связанным с общей логикой работы модификации) нарисовать наглядную картинку попросту невозможно, или она так же будет наполовину состоять из текста, да и с рисованием на компьютере, собственно как и на бумаге, у меня не очень. Начертить сложную деталь не проблема, а вот рисовать и вообще в графический дизайн не умею от слова совсем.
  7. 1 point
    Соответствующая логика работы обработчика событий клавиатуры прописана здесь. В переводе на понятный русский это означает: модуль AvatarInputHandler клиента игры (он отвечает за прицеливание в игре) запущен, курсор не откреплен (курсор в нормальном состоянии прикреплен к прицелу, то есть при перемещении мыши перемещается и прицел, при зажатии Ctrl он открепляется, прицел больше не реагирует на мышь, появляется значок курсора на экране, и можно взаимодействовать с элементами пользовательского интерфейса; именно поэтому для некоторых [завязанных на AvatarInputHandler] функций и не работают сочетания содержащие Ctrl), режим прицеливания поддерживается (в данном случае сочетание будет работать только если игрок находится в снайперском или аркадном режиме прицеливания), событие (сочетание клавиш) не было обработано (не используется) клиентом игры. Комментарий: для базовых "переключателей" модуля AvatarInputHandler. Причина последнего: выполнение привязанного к событию клавиатуры на уровне модификации действия изменяет состояние модуля AvatarInputHandler (переключает режим прицеливания), выполнение "параллельно" другого действия (например, сброса автоприцела, но это всего лишь частный случай), но уже по инициативе обработчика клавиатуры на стороне клиента игры (внутри самого AvatarInputHandler) может повлечь за собой "параллельный" (в пределах одного интервала обновления) доступ к общим параметрам и тем самым спровоцировать непредсказуемое некорректное поведение (глюк/исключение/вылет с непредсказуемыми характеристиками). Такое явление достаточно вероятно, поскольку часть внутренних параметров AvatarInputHandler обновляется в отложенном режиме с определенными интервалами времени (интервал обновления/пересчета прицела), а базовая обработка событий клавиатуры происходит по факту их возникновения (сразу); таким образом существует крайне высокая вероятность того, что обе команды (команда клиента и команда модификации, в рассматриваемом случае это отключение автоприцела и переключение режима прицеливания) будут выполнены модулем AvatarInputHandler в один и тот же интервал между обновлениями прицела, а если учитывать то, как написан код этого модуля, то вероятность возникновения конфликтной ситуации, с учетом многочисленности и разнообразности привязанных к клавиатуре действий на стороне клиента игры, стоит оценивать как достаточно высокую. Причем в данной ситуации речь идет о глобальном поведении обработчика событий клавиатуры внутри модификации (игнорирование уже обработанных клиентом игры событий), а не о частных случаях вроде назначения отключения автоприцела и переключения режима прицеливания на одно сочетание (событие). Тут стоит принимать во внимание тот факт, что отсутствие конфликта между двумя конкретными действиями в рамках управления модулем AvatarInputHandler не означает отсутствия конфликта между любыми двумя действиями, также необходимо учитывать, что внесение любых изменений со стороны картошки, в том числе и не затрагивающих прямо обработку одной из команд, может повлечь за собой возникновение конфликта там, где его раньше не было (на ровном месте), и при этом сам факт появления такого конфликта будет абсолютно не очевиден при анализе изменений в клиенте игры (применение аналитического подхода к исправлению ошибок будет проблематичным). К тому же, как показывает практика, подобные ситуации крайне сложно отлаживать, потому как при возникновении исключения при отложенной обработке данных в трассировках ошибки почти никогда не содержится информации о том, что стало источником некорректного набора исходных данных (некорректного состояния). В общем, если коротко, в целях предотвращения возникновения проблем по принципу WTF у пользователей, возникающих из-за "с виду правильной, но не очень удачной" конфигурации модификации, а также вопросов в том же самом стиле у меня (и других мододелов, кстати, тоже), на стадии анализа логов питона с целью выяснения причины возникновения исключения (неведомой ошибки, сопровождающейся той самой трассировкой в логах), во всех ситуациях, где модификация меняет состояние AvatarInputHandler тем или иным образом, использование любых обрабатываемых клиентом игры и имеющих отношение к командам для AvatarInputHandler биндов (так называемых "двойных биндов") заблокировано на уровне модификации в рамках глобальной политики обработки событий клавиатуры. Если еще короче, то на всех функциях, которые пинают AvatarInputHandler "на запись" при использовании "двойных биндов" событие клавиатуры обрабатываться со стороны модификации не будет. На текущий момент такими функциями являются Advanced Arty, SPG Sniper Mode, TargetScanner - AutoScan, TargetScanner - ManualOverride, AimCorrection - Target Mode. И собственно, ответ на вполне логичный вопрос, зачем вообще весь этот огромный пост нужен. Затем, чтобы желающие подрубить [себе] возможность использования "двойных биндов" таки имели представление о причинах, по которым данная возможность изначально была заблокирована.
  8. 1 point
    1.2.0.1 синие сведения для арты + индикатор пробития синие сведения.rar
  9. 1 point
    инфу в результате боя вынес в отдельный мод https://ekspoint-mods.ru/1049
  10. 1 point
    Уважаемые разработчики,вы хоть на праздники не выкатывайте обнову,мододелам тоже хочется отдохнуть
×
×
  • Create New...