Jump to content
Korean Random

Kradar

User
  • Posts

    30
  • Joined

  • Last visited

Everything posted by Kradar

  1. На всякий случай отмечу, что game.fini() не подходит т.к. вызывается по факту выхода из игры, который не произойдет, пока сокеты открыты. Поэтому я и хочу отловить ПОПЫТКУ выхода, а не факт выхода.
  2. В итоге, я заменил простенький загрузчик - res_mods\0.9.3\scripts\client\gui\Scaleform\locale\__init__.py на тот, что тут советовали - res_mods\0.9.3\scripts\client\CameraNode.py. Теперь g_windowsManager импортируется без проблем. Всем огромное спасибо! Однако, было бы здорово, если бы кто-то смог логично объяснить, в чем была причина всего этого безобразия.
  3. А что это за файл? Он тоже нужен? Зачем такие огороды нагорожены?
  4. Э... Какой загрузчик? Кроме файла res_mods\0.9.3\scripts\client\mods\SampleMod.pyc должно быть еще что-то?
  5. А мой вариант у вас какой результат давал? Ваш вариант у меня выдал такое: /------------------------------------------------------------------------------------------------------------------------\ BigWorld Release Client (compiled at 15:29:52 Sep 3 2014) starting on Wed Oct 08 00:58:05 2014 Content Type: content Checking ./res_mods/0.9.3: mods found [NOTE] (scripts/common/fortified_regions.py, 188): fortified_regions.init() [WARNING] (scripts/common/DestructiblesCache.py, 478): Failed to read fractureEffect name in content/Environment/env414_Pole/normal/lod0/env414_Pole.model [WARNING] (scripts/common/DestructiblesCache.py, 478): Failed to read touchdownEffect name in content/Environment/env414_Pole/normal/lod0/env414_Pole.model [WARNING] (scripts/common/DestructiblesCache.py, 478): Failed to read fractureEffect name in content/Environment/env414_Pole/normal/lod0/env414_Pole10.model [WARNING] (scripts/common/DestructiblesCache.py, 478): Failed to read touchdownEffect name in content/Environment/env414_Pole/normal/lod0/env414_Pole10.model [NOTE] (scripts/client/post_processing/__init__.py, 267): The quality = 2 was selected. [NOTE] (scripts/client/post_processing/__init__.py, 267): The quality = 3 was selected. PostProcessing.Phases.fini() \------------------------------------------------------------------------------------------------------------------------/ Т.е. нету строчки: Почему?
  6. Это я ради эксперимента упростил мод до одного файла, содержащего одну строчку. А изначально эта проблема была обнаружена вовсе не в__init__.py. А вообще - почему нет? Результат-то везде одинаков.
  7. А вот не знаю. Провел эксперимент: Удалил все моды. Создал файл res_mods\0.9.3\scripts\client\gui\Scaleform\locale\__init__.py с единственной строчкой: from gui.WindowsManager import g_windowsManager Скомпилировал этот файл и запустил WoT. Картина та же. Сами попробуйте.
  8. Товарищи, а что не так с g_windowsManager? Как его правильно импортировать? Я пытаюсь так: from gui.WindowsManager import g_windowsManager Но мне говорят: Traceback (most recent call last): File "scripts/client/Account.py", line 10, in <module> File "scripts/client/ConnectionManager.py", line 9, in <module> File "scripts/client/predefined_hosts.py", line 13, in <module> File "scripts/client/gui/shared/__init__.py", line 3, in <module> File "scripts/client/gui/shared/server_events/EventsCache.py", line 17, in <module> File "scripts/client/gui/shared/server_events/modifiers.py", line 15, in <module> File "scripts/client/gui/shared/server_events/formatters.py", line 14, in <module> File "C:\Path\To\Project\Core\src\Scaleform\locale\__init__.py", line 6, in <module> import gui.qwerty File "C:\Path\To\Project\Core\src\qwerty\__init__.py", line 7, in <module> from gui.WindowsManager import g_windowsManager File "scripts/client/gui/WindowsManager.py", line 5, in <module> File "scripts/client/BattleReplay.py", line 21, in <module> ImportError: cannot import name connectionManager Кто нибудь с таким сталкивался? Как решали?
  9. Товарищи, я тут уже писал, что если мод открывает сокеты, но не закрывает их, то при попытке пользователя закрыть клиент (в бою или в ангаре, через меню или по Alt-F4 - не важно) он повиснет в процессах. Вопрос: по какому событию можно отследить попытку пользователя закрыть клиент, чтобы вовремя закрыть сокет?
  10. Ничего там трудного, кроме вашей жажды добраться до исходников. По порядку: Это вызвано тем, что мод не закрывал сокет. При попытке закрыть игру, клиент какое-то время ждет закрытия всех соединений. В Python-коде было много неиспользуемых импортов т.е. код, который их использовал, давно закомментирован или удален, а импорты остались. Импорты в Python -штука опасная тем, что в импортируемых файлах может быть код прямого исполнения. Забудете почистить импорты - будете долго гадать о причинах всяких странностей. Эта странность пропала сама и я не нашел ей объяснения.
  11. Да я понял уже. Он сегодня доступ к исходникам у меня выпытывал. :) У меня, скорее всего, открытый сокет мешается. Позже расскажу.
  12. Кстати... Если в этот момент посмотреть на процесс игры через анализ цепочки ожидания в мониторе ресурсов, то там можно увидеть, что... А через какое-то время в логе появится строчка: ...и процесс завершит работу. Что бы это могло значить?
  13. Это ваш логгер или есть что-то стандартное? А, эти... Этим просто лень снисходить и кому-то что-то объяснять.
  14. Пробовал. Не ловится туда ничего. Да и по логам было бы видно, если бы были какие-то необработанные исключения. А тут по логам видно только то, что... И вот это волнует меня больше всего. Я решительно не понимаю как и почему это происходит. Думаю, дело в том, что мало у кого она есть. Чем делиться, когда сам толком нифига не понимаешь? Нет, это вполне логичное предположение. Но как его проверить?
  15. Товарищи, мне на доработку дали один препаршиво написанный мод. Мод весьма сложен - GUI в ангаре и в бою, Python, взаимодействие с серверной частью... т.е. переписать с нуля - не вариант. Нужно было просто пофиксить болячки. Часть я пофиксил, но я решительно не понимаю, что делать с основной проблемой - общей нестабильностью мода. Проявляется она в следующем: После выхода из игры WoT частенько подвисает в процессах, не оставляя в логе ничего подозрительного. Иногда, WoT падает, опять же не оставляя в логе ничего подозрительного. Обычно, это происходит при выходе из боя в ангар. Временами, когда Python вызывает какую-то Flash-функцию в GUI ангара, эта функция вызывается дважды. По крайней мере, я делаю такой вывод из лога, в котором вижу повторяющиеся записи. Как правило, это приводит к вылету из WoT, но иногда игра может выдержать 2-3 таких дублирующихся вызова. Вы стакивались с подобным? Как решали? Известны ли какие-то типовые причины возникновения таких ситуаций или типовые решения?
  16. У-у-у... ептить! Сколько там всего интересного открывается. Спасибо! Только "тотал коммандером" - не айс. Рекомендую IntelliJ IDEA.
  17. Т.е. вы хотите сказать, что при разработке XVM не используются других методов отладки - только логи, только хардкор? Что используют раздаботчики WG - никто не знает и не интересуется? Ребят, кто-то из вас занимался проф. разработкой приложений на базе Flash/Flex/AIR или Python? Вас не напрягает такой скудный инструментарий отладки?
  18. Почему? Все именно так плохо. Можно что-то принтить в лог. И все. Как узнать, например, что у тебя необработанный эксепшен в AS3? Никак.
  19. М-да... Грустно. Как-то даже не верится, что с таким инструментарием можно отлаживать что-то серьезное, наподобие XVM.
  20. Товарищи, подскажите наиболее эффективные методы отладки модов. Разработку модов для WoT я изучаю совсем недавно и для меня ситуация с отладкой выглядит совсем печально. Сами судите: Python: Как подключить к нему отладчик, я не знаю. Это возможно? Эксепшенов нигде не видно. Можно принтить что-то в python.log. AS3/2: Как подключить к нему отладчик, я не знаю. Сомневаюсь, что есть способ, но таки спрошу. Это возможно? Эксепшенов нигде не видно. Трейсы не работают. Или работают? Я их не нашел. Где они? Можно связаться с питоном, чтобы он напринтил что-то в python.log. Ко всему этому, еще и после каждой правки нужно перезапускать клиент WoT. Финиш! Что, все и правда так печально? Или есть возможность организовать процесс отладки более удобным образом?
  21. Это я уже смотрел. Там доступность результата боя проверяется отдельным потоком в бесконечном цикле. Это несколько расходится с моими представлениями о хорошем программировании. Т.ч. я теперь сомневаюсь - автор сделал это по некомпетентности или по-другому это сделать просто невозможно. Этим и вызван мой вопрос.
  22. А вот если вышел из боя (или даже ушел в другой бой), из какого события достать его результаты?
  23. Я видел код, но не понял до конца и не думал, что оно тупо с маркеров. М-да... :) Ну, ладно. А по этому вопросу... ...что-то сказать можете? Просто хочется получить достоверный исходящий урон для каждого участника боя (или хотя бы свой), не заставляя игрока сидеть в бою до его окончания. Это вообще возможно?
×
×
  • Create New...