BaHbka_35 Опубликовано: понедельник в 16:07 Игроки 16 публикаций 10 437 боёв Жалоба Поделиться Опубликовано: понедельник в 16:07 (изменено) Решил сделать не большой мод. В логах вижу запись, что мод загрузился, но не вижу логов, которые есть в самом моде и функционал не работает.Скажите, что делаю не так ? Интересует больше вопрос загрузки мода и чтоб игра хотя бы выполнила запись в лог из кодаСтруктура:./res/scripts/client/mods/mod_altzoom/*Файлы: __init__.py и mod_altzoom.py. А __init__.py просто импорт всего из mod_altzoom.pyКод: (почему-то проставились какие-то смайлики)```pythonimport loggingimport Keysimport AvatarInputHandlerimport gamelogger = logging.getLogger("alt_zoom"logger.info("ALT ZOOM MOD LOADED"isAltPressed = Falseold_handleKeyEvent = AvatarInputHandler.AvatarInputHandler.handleKeyEventdef hooked_handleKeyEvent(self, event): global isAltPressed isDown, key, mods, isRepeat = game.convertKeyEvent(event) if not isRepeat and key == Keys.KEY_LALT: isAltPressed = isDown logger.info("Alt: {isAltPressed}" return old_handleKeyEvent(self, event)AvatarInputHandler.AvatarInputHandler.handleKeyEvent = hooked_handleKeyEventfrom AvatarInputHandler import camerasSniperCamera = cameras.SniperCameraold_getZooms = SniperCamera._SniperCamera.__getZoomsdef hooked_getZooms(self): self._cfg['increasedZoom'] = isAltPressed return old_getZooms(self)SniperCamera._SniperCamera.__getZooms = hooked_getZooms```Дальше я пробовал и компилировать и просто .py файлы добавлять в архив. Архив называл alt_zooms.mtmodАрхив делал без сжатия. Расширение .mtmod (.zip нету если что).В логах есть запись "[PY_DEBUG] Mod package 'd:/tanki/mods/1.41.0.0/alt_zooms.mtmod' loaded"Но в логах нет записи "ALT ZOOM MOD LOADED" которую я пытаюсь сделать из кода Изменено понедельник в 16:10 пользователем BaHbka_35 Ссылка на комментарий Поделиться на других сайтах Другие способы поделиться...
Kapitan_Kolbackin Опубликовано: понедельник в 16:16 Игроки 2 652 публикации 57 196 боёв Жалоба Поделиться Опубликовано: понедельник в 16:16 НереальноВсё нормально Ссылка на комментарий Поделиться на других сайтах Другие способы поделиться...
_KOMUCAP Опубликовано: понедельник в 17:21 Игроки 3 191 публикация 80 865 боёв Жалоба Поделиться Опубликовано: понедельник в 17:21 Ты занимаешься,тем,в чём не разбираешься,вот,что ты делаешь не так! Ссылка на комментарий Поделиться на других сайтах Другие способы поделиться...
uFlexx Опубликовано: понедельник в 17:24 Игроки 1 704 публикации 63 002 боя Жалоба Поделиться Опубликовано: понедельник в 17:24 (изменено) хз)) может быть вот это?В logger = logging.getLogger("alt_zoom&" и logger.info("ALT ZOOM MOD LOADED" использованы HTML‑энтити (" вместо кавычек — синтаксически это строковые литералы испорчены; интерпретатор может выбрасывать исключение на импорте или строка неполна. Исправь на обычные кавычки: "alt_zoom" и "ALT ZOOM MOD LOADED".Исключения при импортеЕсли в процессе импорта мода возникает исключение, мод считается загруженным пакетно, но код init прерывается и последующие инструкции не выполняются. Проверь наличие ошибок в логах Python/консоли сразу после строки о загрузке пакета.Неправильный логгер / уровень логированияУбедись, что конфигурация логирования игры выводит INFO для твоего логгера. Для теста используй logger.error(...) или временно выставь root logger level в коде: logging.getLogger().setLevel(logging.DEBUG).Неверные имена/пространстваlogger = logging.getLogger("alt_zoom&" создаст логер с именем; проверь в игровых логах фильтры по имени. Можно использовать logging.getLogger() для root‑логирования временно.Код может не выполняться из‑за путей/архиваУбедись, что init.py действительно импортируется при загрузке пакета (в нём должно быть явно from .mod_altzoom import * или корректный путь). Сейчас ты сказал init.py «просто импорт всего», но проверь синтаксис и отсутствие ошибок в нём. В zip/mtmod структура должна сохранять относительные пути (папка mods/mod_altzoom/…"Ошибки в переопределениях методовДоступ к SniperCamera._SniperCamera.__getZooms и к AvatarInputHandler.AvatarInputHandler.handleKeyEvent может быть неверным: проверь реальные имена классов/методов в текущей версии клиента (двойное подчеркивание/приватные имена меняются). Если атрибут не найден — при импорте будет исключение.Как быстро диагностировать (шаги)Исправь кавычки.В начале init.py добавь простую запись в лог через logging.getLogger().error("start mod&"— ERROR точно выводится.Оберни импорт и ключевые участки в try/except и в except делай logger.exception("import failed&" — это покажет трейсбек.Проверь игровые логи сразу после загрузки пакета на Python‑исключения.Локально запусти интерпретатор с тем же Python/модулями (если возможно) и импортируй модуль для воспроизведения ошибки.Вывод (одно предложение)Исправь кавычки и оберни импорт в try/except с выводом exception — скорее всего импорт падает (из‑за синтаксиса или неверных атрибутов), поэтому твой logger.info не выполняется.___ Изменено понедельник в 17:37 пользователем uFlexx Ссылка на комментарий Поделиться на других сайтах Другие способы поделиться...
BaHbka_35 Опубликовано: понедельник в 17:33 Игроки 16 публикаций 10 437 боёв Автор Жалоба Поделиться Опубликовано: понедельник в 17:33 30 мар 2026 - 20:24 пользователь uFlexx сказал:хз)) может быть вот это? В logger = logging.getLogger("alt_zoom" и logger.info("ALT ZOOM MOD LOADED" использованы HTML‑энтити (" вместо кавычек — синтаксически это строковые литералы испорчены; интерпретатор может выбрасывать исключение на импорте или строка неполна. Исправь на обычные кавычки: "alt_zoom" и "ALT ZOOM MOD LOADED".Исключения при импортеЕсли в процессе импорта мода возникает исключение, мод считается загруженным пакетно, но код init прерывается и последующие инструкции не выполняются. Проверь наличие ошибок в логах Python/консоли сразу после строки о загрузке пакета.Неправильный логгер / уровень логированияУбедись, что конфигурация логирования игры выводит INFO для твоего логгера. Для теста используй logger.error(...) или временно выставь root logger level в коде: logging.getLogger().setLevel(logging.DEBUG).Неверные имена/пространстваlogger = logging.getLogger("alt_zoom" создаст логер с именем; проверь в игровых логах фильтры по имени. Можно использовать logging.getLogger() для root‑логирования временно.Код может не выполняться из‑за путей/архиваУбедись, что init.py действительно импортируется при загрузке пакета (в нём должно быть явно from .mod_altzoom import * или корректный путь). Сейчас ты сказал init.py «просто импорт всего», но проверь синтаксис и отсутствие ошибок в нём. В zip/mtmod структура должна сохранять относительные пути (папка mods/mod_altzoom/….Ошибки в переопределениях методовДоступ к SniperCamera._SniperCamera.__getZooms и к AvatarInputHandler.AvatarInputHandler.handleKeyEvent может быть неверным: проверь реальные имена классов/методов в текущей версии клиента (двойное подчеркивание/приватные имена меняются). Если атрибут не найден — при импорте будет исключение.Как быстро диагностировать (шаги)Исправь кавычки.В начале init.py добавь простую запись в лог через logging.getLogger().error("start mod" — ERROR точно выводится.Оберни импорт и ключевые участки в try/except и в except делай logger.exception("import failed" — это покажет трейсбек.Проверь игровые логи сразу после загрузки пакета на Python‑исключения.Локально запусти интерпретатор с тем же Python/модулями (если возможно) и импортируй модуль для воспроизведения ошибки.Вывод (одно предложение)Исправь кавычки и оберни импорт в try/except с выводом exception — скорее всего импорт падает (из‑за синтаксиса или неверных атрибутов), поэтому твой logger.info не выполняется.___ По поводу кавычек, то это редактор форума так сделал. В коде просто двойные кавычки. Остальное попробую. Спасибо Ссылка на комментарий Поделиться на других сайтах Другие способы поделиться...
BaHbka_35 Опубликовано: понедельник в 17:34 Игроки 16 публикаций 10 437 боёв Автор Жалоба Поделиться Опубликовано: понедельник в 17:34 30 мар 2026 - 20:21 пользователь _KOMUCAP сказал:Ты занимаешься,тем,в чём не разбираешься,вот,что ты делаешь не так!Если что, все когда-то в чем-то не разбирались Ссылка на комментарий Поделиться на других сайтах Другие способы поделиться...
uFlexx Опубликовано: понедельник в 17:38 Игроки 1 704 публикации 63 002 боя Жалоба Поделиться Опубликовано: понедельник в 17:38 (изменено) 30 мар 2026 - 20:33 пользователь BaHbka_35 сказал:По поводу кавычек, то это редактор форума так сделал. В коде просто двойные кавычки. Остальное попробую. Спасибо" ) вместо смайлика!!! только знаки вплотную должны быть. но если их сейчас рядом нарисовать то на форуме смайлик вылазит Изменено понедельник в 17:39 пользователем uFlexx Ссылка на комментарий Поделиться на других сайтах Другие способы поделиться...
BaHbka_35 Опубликовано: понедельник в 17:41 Игроки 16 публикаций 10 437 боёв Автор Жалоба Поделиться Опубликовано: понедельник в 17:41 30 мар 2026 - 20:38 пользователь uFlexx сказал:" ) вместо смайлика!!! только знаки вплотную должны быть. но если их сейчас рядом нарисовать то на форуме смайлик вылазитДа) я понимаю ))) В коде все норм. Нет смайликов. Я сам программист, просто делал набросок кода, чтоб хоть что-то заработало для начала ) Ссылка на комментарий Поделиться на других сайтах Другие способы поделиться...
irlandsky_dr Опубликовано: вторник в 01:52 Игроки 2 306 публикаций 3 737 боёв Жалоба Поделиться Опубликовано: вторник в 01:52 Абракадабра какая то...хорошо что я не понимаю ничего, а то бы голову ломал, "" А что не так?"".......... Ссылка на комментарий Поделиться на других сайтах Другие способы поделиться...
3HO Опубликовано: вторник в 07:57 Игроки 6 публикаций 8 925 боёв Жалоба Поделиться Опубликовано: вторник в 07:57 14 часа назад пользователь BaHbka_35 сказал: Я сам программист Но не в курсе, что код буквально на всех форумах пишут в отдельном блоке, чтобы его не искажала обработка текстовых полей? Даже здесь есть кнопка "<>" - при наведении на которую появляется подсказка: "код" и вставляется такой-вот блок, для того чтобы код - отображался как код Ссылка на комментарий Поделиться на других сайтах Другие способы поделиться...
BaHbka_35 Опубликовано: вторник в 10:49 Игроки 16 публикаций 10 437 боёв Автор Жалоба Поделиться Опубликовано: вторник в 10:49 2 часа назад пользователь 3HO сказал: Но не в курсе, что код буквально на всех форумах пишут в отдельном блоке, чтобы его не искажала обработка текстовых полей? Даже здесь есть кнопка "<>" - при наведении на которую появляется подсказка: "код" и вставляется такой-вот блок, для того чтобы код - отображался как код Если что, код я обернул в '''ординарные кавычки''' и указал язык, как это делается везде (стандартная md разметка) Ссылка на комментарий Поделиться на других сайтах Другие способы поделиться...
3HO Опубликовано: вторник в 13:15 Игроки 6 публикаций 8 925 боёв Жалоба Поделиться Опубликовано: вторник в 13:15 2 часа назад пользователь BaHbka_35 сказал: как это делается везде Как это делается исключительно там, где включен markdown впринципе. На большинстве форумов - вместо md используются обычные теги. Ссылка на комментарий Поделиться на других сайтах Другие способы поделиться...
Рекомендованные публикации
В целях безопасности не указывайте здесь личную информацию о себе или о ком-либо другом, так как мы не сможем защитить её в соответствии с Политикой конфиденциальности Леста Игры.
Пожалуйста, войдите для комментирования
Вы сможете оставить комментарий после входа
Войти сейчас