Перейти к содержанию

Диагностики amxpyc#

Компилятор проверяет плагин по исходному коду, ничего не запуская. Ошибки останавливают сборку, предупреждения — нет (кроме amxpy build --werror). Те же коды показывает VS Code при сохранении файла — через Flake8 с плагином amxpy.

Таблица собрана из кода компилятора; … — подставляемая часть сообщения.

Плагин и его метаданные#

Код Уровень Сообщения
AMX001 ошибка синтаксическая ошибка: …
AMX002 ошибка в плагине нет Plugin(...): создайте его, например plugin = Plugin("Имя")
AMX003 ошибка укажите название: Plugin("Имя", version="1.0.0")
… должно быть строкой-литералом
AMX004 ошибка Plugin(...) создаётся больше одного раза
AMX005 ошибка в папке плагина нет __init__.py
ожидается файл .py или папка с __init__.py
AMX006 ошибка имя плагина … должно быть идентификатором Python

События#

Код Уровень Сообщения
AMX100 ошибка укажите событие: @plugin.on(events.Имя)
ожидается класс события из amxpy.events
неизвестное событие …
AMX101 ошибка у … нет поля …
AMX102 ошибка обработчик события принимает один аргумент — событие
AMX103 предупреждение …() блокирует кадр сервера; используйте …
AMX104 предупреждение событие используется после await, когда оно уже недействительно — скопируйте нужные поля до первого await
AMX105 предупреждение в post-обработчике отменять поздно
в post-обработчике изменение события ни на что не влияет
AMX106 ошибка … не возвращает результата
… нельзя отменить
….… только для чтения
AMX107 ошибка у события … нет …-фазы
AMX108 ошибка post должен быть True или False
у … нет поля … для фильтра…

Нативы и форварды#

Код Уровень Сообщения
AMX201 ошибка у натива только позиционные параметры
параметр …: укажите тип (int, float, bool, str или Player)
тип … не переводится в Pawn
тип … не переводится в Pawn (int, float, bool, str, Player)
AMX202 ошибка натив … объявлен дважды
форвард … объявлен дважды
AMX203 ошибка натив не может быть async: Pawn ждёт ответ сразу
AMX204 ошибка недопустимое имя натива …
AMX205 предупреждение натив …: укажите тип результата (-> int, -> None ...)
AMX206 ошибка имя форварда должно быть строкой-литералом из латиницы

Импорт модуля#

Код Уровень Сообщения
AMX301 предупреждение …() выполняется при импорте модуля; перенесите в обработчик events.Init — иначе это мешает горячей перезагрузке

Команды и cvar'ы#

Код Уровень Сообщения
AMX401 ошибка укажите имя команды: @plugin.command("/hp")
имя серверной команды должно быть строкой-литералом из латиницы
имя команды должно быть строкой-литералом
недопустимое имя команды …
AMX402 ошибка первый параметр обработчика команды — игрок, который её вызвал
AMX403 ошибка команда … объявлена дважды
AMX404 ошибка тип cvar'а: bool, int, float или str
prefix должен быть строкой-литералом
AMX405 ошибка значение по умолчанию должно быть литералом
значение … не подходит под тип …
AMX406 ошибка недопустимое имя cvar'а …
cvar … объявлен дважды