Компиляция плагина AMX Mod X — compile .sma в .amxx
Компиляция плагина AMX Mod X — из .sma в .amxx
После того как вы написали исходник плагина (файл .sma), его нужно скомпилировать — превратить в байт-код .amxx, который понимает сервер. Компилятор называется amxxpc и поставляется вместе с AMX Mod X.
Способ 1. Локальная компиляция (Windows/Linux)
Где взять компилятор?
Скачайте AMX Mod X с официального сайта: amxmodx.org или используйте готовый пакет из нашей сборки rehlds. В папке addons/amxmodx/scripting/ лежит amxxpc.exe (Windows) или amxxpc (Linux) и все инклуды *.inc.
Шаг 1. Положите ваш .sma рядом с компилятором
addons/amxmodx/scripting/plugin_hello.sma
Шаг 2. Запустите компилятор
Windows (двойной клик или через cmd):
cd addons\amxmodx\scripting\
amxxpc.exe plugin_hello.sma
Linux (через терминал):
cd addons/amxmodx/scripting/
chmod +x amxxpc
./amxxpc plugin_hello.sma
Шаг 3. Результат
Готовый плагин появится в подпапке compiled/ или рядом — plugin_hello.amxx. Это и есть скомпилированный плагин.
Шаг 4. Установка на сервер
- Скопируйте
plugin_hello.amxxвcstrike/addons/amxmodx/plugins/на сервере. - Откройте
cstrike/addons/amxmodx/configs/plugins.iniи добавьте строку:plugin_hello.amxx - Перезапустите сервер или выполните
amxx_reloadв консоли. - Проверьте:
amxx plugins— должно показать ваш плагин со статусом "running".
Способ 2. Онлайн-компилятор (быстро для новичков)
Существуют веб-компиляторы AMXX — вставляете код в форму, нажимаете "Compile", получаете .amxx. Удобно для тестов, но не подходит для плагинов с кастомными инклудами.
Частые ошибки компиляции
cannot read from file: "amxmodx.inc"— компилятор не видит инклуды. Проверьте, что.smaлежит в папкеscripting/рядом сinclude/.undefined symbol "get_user_health"— забыт#include <fun>.argument type mismatch— передаёте строку там, где функция ждёт число (или наоборот).symbol already defined— дважды объявили одну переменную.warning: symbol is assigned a value that is never used— переменная создана, но не используется. Не критично, но лучше убрать.
Совет
Включайте дебаг-режим в core.ini или через квар amxx_debug 1 — при ошибках плагина в логе будет полный стек вызовов, что упростит поиск проблемы.