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

Подскажите, что не так при создании мода.


BaHbka_35

Рекомендованные публикации

Игроки
16 публикаций
10 437 боёв

Решил сделать не большой мод. 

В логах вижу запись, что мод загрузился, но не вижу логов, которые есть в самом моде и функционал не работает.

Скажите, что делаю не так ? Интересует больше вопрос загрузки мода и чтоб игра хотя бы выполнила запись в лог из кода


Структура:
./res/scripts/client/mods/mod_altzoom/*

Файлы: __init__.py и mod_altzoom.py. А __init__.py просто импорт всего из mod_altzoom.py

Код: (почему-то проставились какие-то смайлики)
```python

import logging
import Keys
import AvatarInputHandler
import game

logger = logging.getLogger("alt_zoom")
logger.info("ALT ZOOM MOD LOADED")

isAltPressed = False

old_handleKeyEvent = AvatarInputHandler.AvatarInputHandler.handleKeyEvent

def 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_handleKeyEvent


from AvatarInputHandler import cameras

SniperCamera = cameras.SniperCamera
old_getZooms = SniperCamera._SniperCamera.__getZooms

def 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" которую я пытаюсь сделать из кода

Изменено пользователем BaHbka_35
Ссылка на комментарий
Поделиться на других сайтах

Игроки
2 652 публикации
57 196 боёв

Нереально

Всё нормально

Ссылка на комментарий
Поделиться на других сайтах

Игроки
3 191 публикация
80 865 боёв
Ты занимаешься,тем,в чём не разбираешься,вот,что ты делаешь не так!
Ссылка на комментарий
Поделиться на других сайтах

Игроки
1 704 публикации
63 002 боя
хз)) может быть вот это?

В 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 не выполняется.___

 

 

Изменено пользователем uFlexx
Ссылка на комментарий
Поделиться на других сайтах

Игроки
16 публикаций
10 437 боёв
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 не выполняется.___

 

 

По поводу кавычек, то это редактор форума так сделал. В коде просто двойные кавычки. Остальное попробую. Спасибо

Ссылка на комментарий
Поделиться на других сайтах

Игроки
16 публикаций
10 437 боёв
30 мар 2026 - 20:21 пользователь _KOMUCAP сказал:

Ты занимаешься,тем,в чём не разбираешься,вот,что ты делаешь не так!

Если что, все когда-то в чем-то не разбирались 

Ссылка на комментарий
Поделиться на других сайтах

Игроки
1 704 публикации
63 002 боя
30 мар 2026 - 20:33 пользователь BaHbka_35 сказал:

По поводу кавычек, то это редактор форума так сделал. В коде просто двойные кавычки. Остальное попробую. Спасибо

" ) вместо смайлика!!! только знаки вплотную должны быть. но если их сейчас рядом нарисовать то на форуме смайлик вылазит

Изменено пользователем uFlexx
Ссылка на комментарий
Поделиться на других сайтах

Игроки
16 публикаций
10 437 боёв
30 мар 2026 - 20:38 пользователь uFlexx сказал:

" ) вместо смайлика!!! только знаки вплотную должны быть. но если их сейчас рядом нарисовать то на форуме смайлик вылазит

Да) я понимаю ))) В коде все норм. Нет смайликов. Я сам программист, просто делал набросок кода, чтоб хоть что-то заработало для начала )

Ссылка на комментарий
Поделиться на других сайтах

Игроки
2 306 публикаций
3 737 боёв
Абракадабра  какая то...хорошо что я не понимаю ничего, а то бы голову ломал, "" А что не так?""..........:honoring::trollface:
Ссылка на комментарий
Поделиться на других сайтах

Игроки
6 публикаций
8 925 боёв
14 часа назад пользователь BaHbka_35 сказал:

Я сам программист

Но не в курсе, что код буквально на всех форумах пишут в отдельном блоке, чтобы его не искажала обработка текстовых полей? 

Даже здесь есть кнопка "<>" - при наведении на которую появляется подсказка: "код"

и вставляется такой-вот блок, для того чтобы код - отображался как код

 

ЗНО - Запрос На Обслуживание
Ссылка на комментарий
Поделиться на других сайтах

Игроки
16 публикаций
10 437 боёв
2 часа назад пользователь 3HO сказал:

Но не в курсе, что код буквально на всех форумах пишут в отдельном блоке, чтобы его не искажала обработка текстовых полей? 

Даже здесь есть кнопка "<>" - при наведении на которую появляется подсказка: "код"

и вставляется такой-вот блок, для того чтобы код - отображался как код

 

Если что, код я обернул в '''ординарные кавычки''' и указал язык, как это делается везде (стандартная md разметка)

Ссылка на комментарий
Поделиться на других сайтах

Игроки
6 публикаций
8 925 боёв
2 часа назад пользователь BaHbka_35 сказал:

как это делается везде

Как это делается исключительно там, где включен markdown впринципе. На большинстве форумов - вместо md используются обычные теги. 

ЗНО - Запрос На Обслуживание
Ссылка на комментарий
Поделиться на других сайтах

В целях безопасности не указывайте здесь личную информацию о себе или о ком-либо другом, так как мы не сможем защитить её в соответствии с Политикой конфиденциальности Леста Игры.

Пожалуйста, войдите для комментирования

Вы сможете оставить комментарий после входа



Войти сейчас
  • Сейчас на странице   0 пользователей

    • Эту страницу никто не просматривает.
×
×
  • Создать...