Главная Новости Услуги Форум | База знаний

Вверх

Меню
Пользователей онлайн
Онлайн игроков: 60

FAQ: частые ошибки при создании плагинов CS 1.6

FAQ: частые ошибки при создании плагинов CS 1.6

Собрали типичные проблемы, с которыми сталкиваются новички при разработке плагинов AMX Mod X и Metamod для Counter-Strike 1.6. Если ваша ошибка не здесь — создайте тему на нашем форуме.

1. Плагин не появляется в amxx plugins

Причина: не добавили строку в plugins.ini ИЛИ скомпилировали с неправильной версией AMXX (новая на старом сервере).

Решение:

  • Проверьте, что plugin_hello.amxx лежит в cstrike/addons/amxmodx/plugins/
  • Откройте cstrike/addons/amxmodx/configs/plugins.ini и добавьте plugin_hello.amxx
  • Выполните amxx reload или перезапустите сервер
  • Введите amxx plugins — статус должен быть running

2. plugin_init не вызывается

Причина: забыли public перед plugin_init, или функция названа с опечаткой.

Решение: должно быть ровно public plugin_init(). AMXX ищет функцию по этому имени.

3. Команда say не перехватывается

Причина: забыли return PLUGIN_HANDLED в обработчике. Без этого движок продолжает обрабатывать команду как обычный чат.

public cmd_hello(id)
{
    client_print(id, print_chat, "Hello!");
    return PLUGIN_HANDLED;  // <- обязательно!
}

4. "index out of bounds" в логах

Причина: обращаетесь к массиву за пределами. Например: name[40] при размере 32. Или индекс игрока > 32.

Решение: проверьте размеры массивов и используйте clamp(value, min, max).

5. "Native is not loaded" — функция не найдена

Причина: вызывается функция из модуля, который не загружен (например, cs_set_user_money из cstrike, а модуль cstrike_amxx отключён).

Решение: проверьте cstrike/addons/amxmodx/configs/modules.ini — раскомментируйте нужный модуль, выполните amxx modules для проверки.

6. Metamod-плагин не загружается (meta list пусто)

Причины:

  • Не та разрядность: сервер 32-бит, а плагин 64-бит. Собирайте через gcc -m32.
  • Не найдены зависимости: проверьте ldd myplugin_mm_i386.so — все ли библиотеки разрешены.
  • Символы не экспортированы: проверьте nm -D plugin.so | grep Meta_Attach. Должны видеть Meta_Attach (или с ABI-тегом).
  • Путь в plugins.ini указан относительно cstrike/, не от корня сервера. Например: linux addons/myplugin/myplugin.so
  • На rehlds-сборках Metamod-r читает cstrike/plugins.ini на верхнем уровне (а не cstrike/addons/metamod/plugins.ini) — это особенность liblist.gam.

7. Плагин крашит сервер

Решение: включите amxx_debug 1 и смотрите addons/amxmodx/logs/error_*.log. Для Metamod — meta_debug 3 в консоли. Краши часто связаны с неверным индексом игрока (0 вместо 1..32) или доступом к несуществующему entity.

8. Плагин виден, но не реагирует на say

Решение: возможно, у вас включён amx_mapfrost или другой плагин перехватывает чат раньше. Проверьте порядок плагинов в plugins.ini — кто выше, тот и обрабатывает первым.

9. Не работает форматирование client_print

Решение: форматы: %s — строка, %d или %i — целое, %f — float, %.2f — float с 2 знаками. Все аргументы должны идти после строки в том же порядке.

10. Как добавить HUD-сообщение?

set_hudmessage(255, 0, 0, -1.0, 0.30, 0, 6.0, 12.0, 0.1, 0.2, -1);
show_hudmessage(id, "Привет, %s!", name);

Где: 255,0,0 — RGB красный; -1.0 — центр по X; 0.30 — позиция по Y; 6.0/12.0 — hold time; -1 — channel (auto).

Подробные инструкции и обсуждения ждём вас на нашем форуме — в разделе CS 1.6. Если ваша ошибка не описана здесь — создайте тему с логом, кодом и описанием, и сообщество поможет.
Назад