Miami RP Project СЕРВЕР MTA:SA ONLINE СЕРВЕР GTA 5 RAGE MP В РАЗРАБОТКЕ ЗАПУСК MTA RAGE MP: в разработке

Плагины CRMP — установка, настройка server.cfg и ошибки

Сегодня Обновлено: Сегодня 0.0 (0)
Плагины CRMP — установка, настройка server.cfg и ошибки
Категория Установка и настройка плагинов сервера CRMP Опубликовано Сегодня Обновлено Сегодня Просмотров 3

Плагины расширяют возможности сервера CRMP и добавляют функции, которых нет в стандартном серверном ядре. Через них игровой мод может подключаться к MySQL, создавать большое количество динамических объектов, обрабатывать команды, выполнять регулярные выражения и получать расширенную информацию об ошибках Pawn-кода.

Для правильной установки недостаточно скопировать файл в папку plugins. Необходимо выбрать версию для своей операционной системы, проверить разрядность, установить системные зависимости, подключить плагин в server.cfg и убедиться, что используемый AMX совместим с его API.

В руководстве рассмотрена установка серверных плагинов CRMP на Windows и Linux, настройка строки plugins, проверка include-файлов, совместимость версий и исправление распространённых ошибок загрузки.

Подробная настройка главной конфигурации сервера:

Настройка файла server.cfg для CRMP

Установка основного игрового режима:

Установка игрового мода на сервер CRMP

Что такое серверный плагин CRMP

Серверный плагин — нативная библиотека, которую серверное ядро загружает при запуске. На Windows такие файлы имеют расширение .dll, а на Linux — .so.

Плагин может добавлять

  • подключение к MySQL;
  • динамическую загрузку объектов;
  • обработку команд и параметров;
  • регулярные выражения;
  • работу с сетевыми запросами;
  • расширенное журналирование;
  • диагностику ошибок Pawn;
  • криптографические функции;
  • взаимодействие с внешними сервисами;
  • специальные возможности конкретной сборки.

Пример каталога Windows

plugins/
├── crashdetect.dll
├── streamer.dll
├── sscanf.dll
└── mysql.dll

Пример каталога Linux

plugins/
├── crashdetect.so
├── streamer.so
├── sscanf.so
└── mysql.so

Игровой мод вызывает функции плагина через Pawn-native. Если обязательная библиотека отсутствует или имеет несовместимую версию, AMX может не запуститься.

Разница между плагином и include-файлом

При установке часто путают нативный плагин и include-файл. Они выполняют разные задачи.

Компонент Пример Назначение
Windows-плагин streamer.dll Загружается сервером во время работы.
Linux-плагин streamer.so Загружается Linux-сервером.
Include streamer.inc Используется Pawn-компилятором.
Исходник roleplay.pwn Содержит код игрового мода.
Скомпилированный мод roleplay.amx Выполняется серверным ядром.

Include помещается в

pawno/include/

Нативная библиотека помещается в

plugins/

Пример полного комплекта Streamer

plugins/streamer.dll
pawno/include/streamer.inc

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

Наличие только DLL или SO позволяет загрузить библиотеку, но без include будет сложно правильно скомпилировать изменённый PWN.

Из чего состоит комплект серверного плагина

Архив может содержать несколько вариантов одного расширения.

Типичная структура

plugin-package/
├── plugins/
│ ├── plugin.dll
│ └── plugin.so
├── pawno/
│ └── include/
│ └── plugin.inc
├── examples/
├── README.md
├── LICENSE
└── CHANGELOG.md

Перед установкой найдите

  • DLL для Windows;
  • SO для Linux;
  • include-файл;
  • список системных требований;
  • поддерживаемую разрядность;
  • номер версии;
  • инструкцию обновления;
  • список изменений API;
  • дополнительные библиотеки;
  • пример подключения.

Не копируйте без разбора

  • все варианты для разных систем;
  • отладочные сборки;
  • файлы другой архитектуры;
  • старые и новые версии одновременно;
  • исходники вместо готовой библиотеки;
  • файлы из каталога примеров.

Проверка совместимости версий

Совместимость зависит не только от названия плагина. Значение имеют версия API, include-файл, AMX, операционная система и архитектура.

Необходимо согласовать

  • версию DLL или SO;
  • версию соответствующего include;
  • версию AMX игрового мода;
  • архитектуру серверного ядра;
  • операционную систему;
  • дополнительные зависимости;
  • используемую версию CRMP.

Опасная комбинация

Новый include
Старый плагин
AMX от другой сборки

Наиболее надёжная комбинация

plugin.dll или plugin.so одной версии
plugin.inc той же версии
AMX, скомпилированный с этим include

Признаки несовместимости

  • Run time error 19;
  • список отсутствующих native-функций;
  • аварийное завершение при запуске;
  • ошибки после вызова конкретной функции;
  • неправильные значения из плагина;
  • предупреждения о несовместимом API;
  • мод запускается, но часть систем не работает.

Резервная копия перед установкой плагина

Перед заменой нативного файла сохраните рабочую версию сервера.

Скопируйте

  • текущую DLL или SO;
  • соответствующий include;
  • рабочий AMX;
  • исходный PWN;
  • server.cfg;
  • дополнительные библиотеки;
  • server_log.txt;
  • базу данных, если меняется MySQL.

Пример каталога копии

backups/
└── plugins-before-update/
 ├── server.cfg
 ├── roleplay.amx
 ├── roleplay.pwn
 ├── mysql.dll
 └── a_mysql.inc

Архив на Linux

cd /home/crmp

tar -czf \
plugins-before-update-$(date +%F).tar.gz \
server/plugins \
server/pawno/include \
server/gamemodes \
server/server.cfg

Проверка безопасности плагина

Перед загрузкой проверьте

  • официальный источник или репозиторий;
  • имя автора;
  • историю выпусков;
  • контрольную сумму, если она опубликована;
  • результат антивирусной проверки;
  • наличие исходного кода;
  • список сетевых функций;
  • разрешения и назначение плагина.

Повышенного внимания требуют

*.dll
*.so
*.exe
*.bat
*.cmd
*.sh

Красные флаги

  • плагин распространяется только через неизвестный архив;
  • нет информации об авторе и версии;
  • архив защищён странным паролем;
  • внутри находится лишний EXE;
  • плагин подключается к неизвестному адресу;
  • файл требует запуска с правами администратора;
  • антивирусы показывают несколько серьёзных срабатываний;
  • автор запрещает проверять или анализировать файл.

Проверяйте неизвестные библиотеки на отдельной тестовой машине без рабочих паролей и баз данных.

Установка серверного плагина на Windows

1. Остановите CRMP Server

Нативные библиотеки загружаются при запуске процесса. Не заменяйте DLL во время работы сервера.

2. Скопируйте файл в папку plugins

CRMP-Server/
└── plugins/
 └── streamer.dll

3. Установите include для компиляции

CRMP-Server/
└── pawno/
 └── include/
 └── streamer.inc

4. Подключите плагин в server.cfg

plugins streamer

5. Проверьте дополнительные DLL

Некоторые расширения содержат системные или вспомогательные библиотеки. Их расположение должно соответствовать инструкции конкретной версии.

6. Запустите сервер через консоль

cd C:\CRMP-Server
samp-server-cr.exe

Название EXE зависит от используемой адаптации CRMP.

7. Проверьте журнал

server_log.txt

Установка серверного плагина на Linux

1. Остановите серверный процесс

При использовании screen сначала подключитесь к консоли и корректно завершите сервер.

screen -ls
screen -r crmp

2. Скопируйте SO в папку plugins

/home/crmp/server/
└── plugins/
 └── streamer.so

3. Подключите расширение в server.cfg

plugins streamer.so

4. Проверьте архитектуру

file plugins/streamer.so

5. Проверьте зависимости

ldd plugins/streamer.so

6. Настройте владельца и права

sudo chown crmp:crmp \
plugins/streamer.so

chmod 755 \
plugins/streamer.so

7. Запустите сервер

cd /home/crmp/server
sudo -u crmp ./samp03svr-cr

Используйте фактическое имя исполняемого файла своей адаптации.

Проверка архитектуры плагина на Linux

Старые серверные ядра и многие CRMP-плагины используют 32-битную архитектуру.

Проверка серверного файла

file ./samp03svr-cr

Проверка плагина

file plugins/mysql.so

Совместимые варианты должны иметь одинаковую архитектуру

ELF 32-bit
ELF 32-bit

Несовместимая комбинация

Сервер: ELF 32-bit
Плагин: ELF 64-bit

Дополнительная проверка заголовка ELF

readelf -h \
plugins/mysql.so

Обращайте внимание на

  • Class;
  • Machine;
  • операционную систему ABI;
  • тип динамической библиотеки.

Изменить архитектуру готового SO-файла настройкой прав невозможно. Необходимо скачать или собрать подходящую версию.

Проверка зависимостей Linux-плагина

Основная команда

ldd plugins/mysql.so

Нормальный результат

libstdc++.so.6 => /lib/i386-linux-gnu/libstdc++.so.6
libm.so.6 => /lib/i386-linux-gnu/libm.so.6
libc.so.6 => /lib/i386-linux-gnu/libc.so.6

Отсутствующая зависимость

libexample.so.1 => not found

Плагин не сможет нормально загрузиться, пока библиотека отсутствует.

Базовые 32-битные пакеты Debian и Ubuntu

sudo dpkg --add-architecture i386
sudo apt update

sudo apt install \
libc6:i386 \
libstdc++6:i386 \
libatomic1:i386 \
-y

Поиск пакета с нужной библиотекой

apt-file search \
libexample.so.1

Для использования apt-file может потребоваться установить пакет и обновить его индекс.

Настройка владельца и прав на Linux

Проверка текущих прав

ls -la plugins/

Назначение владельца

sudo chown -R \
crmp:crmp \
/home/crmp/server/plugins

Права каталогов и файлов

find /home/crmp/server/plugins \
-type d \
-exec chmod 755 {} \;

find /home/crmp/server/plugins \
-type f \
-exec chmod 644 {} \;

Для обычной динамической библиотеки права чтения обычно достаточны. Значение 755 также часто используется для упрощения настройки серверной папки.

Не используйте без необходимости

chmod -R 777 /home/crmp/server

Полный доступ всем пользователям не исправляет несовместимость и ухудшает безопасность сервера.

Подключение плагинов в server.cfg

Все серверные расширения указываются в строке plugins.

Общий формат

plugins название1 название2 название3

Названия разделяются пробелами

Правильно:

plugins crashdetect streamer sscanf mysql

Неправильно:

plugins crashdetect,streamer,sscanf,mysql

Неправильно:

plugins crashdetect; streamer; sscanf; mysql

Не указывайте путь к папке

Правильно:

plugins streamer

Нежелательно:

plugins plugins/streamer.dll

После редактирования

  1. Сохраните server.cfg.
  2. Полностью остановите сервер.
  3. Запустите серверный процесс заново.
  4. Проверьте каждую строку загрузки.

Замена строки plugins обычно требует полного перезапуска, поскольку библиотеки загружаются при старте процесса.

Строка plugins для Windows

Стандартный вариант

plugins crashdetect streamer sscanf mysql

Соответствующие файлы

plugins/
├── crashdetect.dll
├── streamer.dll
├── sscanf.dll
└── mysql.dll

Расширение .dll обычно можно не указывать.

Вариант с расширениями

plugins crashdetect.dll streamer.dll sscanf.dll mysql.dll

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

Если один плагин не используется

Удалите его из строки:

plugins crashdetect streamer sscanf

Оставлять название отсутствующего файла не следует: сервер будет сообщать об ошибке при каждом запуске.

Строка plugins для Linux

Правильный вариант

plugins crashdetect.so streamer.so sscanf.so mysql.so

Соответствующие файлы

plugins/
├── crashdetect.so
├── streamer.so
├── sscanf.so
└── mysql.so

Неправильный вариант Linux

plugins crashdetect streamer sscanf mysql

Также неправильно

plugins crashdetect.dll streamer.dll mysql.dll

Linux не загружает Windows DLL в качестве серверных плагинов.

Проверка регистра

Streamer.so
streamer.so

Для Linux это разные имена. Название в конфигурации должно совпадать с реальным файлом.

Порядок загрузки серверных плагинов

Для многих независимых расширений порядок не имеет значения, однако некоторые сборки и диагностические плагины могут предъявлять собственные требования.

Практический пример

plugins crashdetect streamer sscanf mysql pawncmd

CrashDetect часто размещают первым

Это позволяет получить диагностическую информацию при последующей загрузке и выполнении игрового мода, если версия CrashDetect совместима с остальными компонентами.

Сохраняйте порядок разработчика, если

  • мод распространяется с готовым server.cfg;
  • в инструкции указан обязательный порядок;
  • один плагин зависит от другого;
  • используется старая CRMP-сборка;
  • после изменения появляются новые ошибки.

Первый запуск после установки плагинов

Запуск Windows

cd C:\CRMP-Server
samp-server-cr.exe

Запуск Linux

cd /home/crmp/server
sudo -u crmp ./samp03svr-cr

Не запускайте первый тест в фоне

Оставьте консоль открытой, чтобы увидеть ошибки загрузки и момент аварийного завершения.

Проверьте файлы

server_log.txt
crashinfo.txt

На Linux наблюдайте за журналом

tail -f server_log.txt

При первом тесте

  • подключайте плагины по одному;
  • записывайте их версии;
  • не заменяйте одновременно AMX и все библиотеки;
  • сохраняйте предыдущий рабочий комплект;
  • проверяйте консоль после каждого изменения.

Проверка успешной загрузки плагинов

Нормальный результат

Loading plugin: crashdetect
Loaded.

Loading plugin: streamer
Loaded.

Loading plugin: sscanf
Loaded.

Loading plugin: mysql
Loaded.

Loaded 4 plugins.

Что означает Loaded

Сервер нашёл файл и смог загрузить его как динамическую библиотеку.

Loaded не гарантирует

  • полную совместимость с AMX;
  • правильную версию include;
  • корректную настройку MySQL;
  • отсутствие ошибок при вызове функций;
  • совместимость всех плагинов между собой.

После загрузки проверьте

  • запуск игрового мода;
  • отсутствие Runtime Error 19;
  • работу функций плагина;
  • отсутствие аварийного завершения;
  • правильное сохранение данных;
  • нагрузку на процессор и память.

Ошибка загрузки Plugin Failed

Пример

Loading plugin: streamer
Failed.

Основные причины

  • файл отсутствует;
  • неверно указано имя;
  • используется неправильное расширение;
  • не совпадает регистр букв;
  • не совпадает архитектура;
  • отсутствует системная зависимость;
  • DLL заблокирована Windows;
  • плагин повреждён;
  • файл собран для другой операционной системы.

Порядок проверки

  1. Проверьте строку plugins.
  2. Убедитесь в наличии файла.
  3. Проверьте Windows или Linux-версию.
  4. Проверьте разрядность.
  5. Проверьте системные библиотеки.
  6. Верните оригинальный файл из сборки.
  7. Запустите сервер через консоль.

Ошибка Run time error 19

Run time error 19:
"File or function is not found"

Игровой мод вызывает Pawn-native, которую не предоставило загруженное окружение.

Возможные причины

  • обязательный плагин отсутствует;
  • плагин имеет статус Failed;
  • установлена другая версия API;
  • AMX скомпилирован с несовместимым include;
  • в новом плагине функция переименована или удалена;
  • на сервер загружен старый AMX;
  • часть строки plugins удалена.

Порядок исправления

  1. Найдите отсутствующие функции в журнале.
  2. Определите, какому расширению они принадлежат.
  3. Проверьте загрузку этого плагина.
  4. Верните версию из исходной сборки.
  5. Сопоставьте DLL или SO с include.
  6. Повторно скомпилируйте PWN.
  7. Убедитесь, что AMX обновился.

Ошибка MSVCR, MSVCP или VCRUNTIME DLL

Примеры сообщений

MSVCR100.dll was not found
MSVCP120.dll was not found
VCRUNTIME140.dll was not found

Плагин был собран с использованием среды Microsoft Visual C++, которой нет в системе.

Что необходимо сделать

  • определить требуемую версию Visual C++;
  • установить официальный Redistributable;
  • для старого 32-битного ядра установить вариант x86;
  • перезапустить сервер;
  • повторно проверить консоль.

Не скачивайте отдельную DLL с неизвестного сайта

Отдельный файл может иметь неправильную версию, содержать вредоносный код или вызвать следующую ошибку зависимости.

Также проверьте

  • дополнительные библиотеки из архива плагина;
  • разрядность DLL;
  • блокировку файла;
  • соответствие версии Windows;
  • наличие всех файлов комплекта.

Ошибка Wrong ELF Class

Пример

wrong ELF class:
ELFCLASS64

32-битный сервер пытается загрузить 64-битную библиотеку или наоборот.

Проверьте

file ./samp03svr-cr
file plugins/plugin.so

Исправление

Установите SO-файл той же архитектуры, что и серверное ядро.

Нельзя исправить командами

chmod
chown
ldconfig

Эти команды не преобразуют 64-битную библиотеку в 32-битную.

Ошибка Cannot open shared object file

Пример

error while loading shared libraries:
libexample.so:
cannot open shared object file

Причины

  • системная библиотека не установлена;
  • файл находится вне путей загрузчика;
  • не установлена 32-битная версия;
  • повреждена символическая ссылка;
  • плагин собран для другого дистрибутива;
  • неправильно распакован архив.

Проверьте зависимости

ldd plugins/plugin.so

Обновите кэш загрузчика после системной установки

sudo ldconfig

Не добавляйте произвольные каталоги в системный путь без понимания назначения библиотеки.

Ошибка Symbol lookup error

Пример

symbol lookup error:
undefined symbol

Библиотека была найдена, но ожидаемый символ отсутствует в ней или одной из зависимостей.

Возможные причины

  • установлена несовместимая версия зависимости;
  • смешаны файлы нескольких выпусков;
  • плагин собран для другой версии библиотеки;
  • обновлён только один файл из комплекта;
  • в системе загружается другая копия SO;
  • плагин несовместим с серверным ядром.

Проверка зависимостей

ldd plugins/plugin.so

Поиск символа

nm -D plugins/plugin.so \
| grep SYMBOL_NAME

Самый надёжный способ исправления — вернуть полный совместимый комплект одной версии.

Segmentation fault после установки плагина

Segmentation fault
Segmentation fault (core dumped)

Возможные причины

  • ошибка внутри нативного плагина;
  • несовместимая версия API;
  • неправильный вызов функции из Pawn;
  • конфликт двух расширений;
  • повреждение памяти;
  • неподходящая системная библиотека;
  • использование старого плагина на новой системе.

Первичная диагностика

  1. Отключите недавно добавленный плагин.
  2. Верните предыдущий AMX.
  3. Запустите сервер без filterscripts.
  4. Подключайте компоненты по одному.
  5. Установите совместимый CrashDetect.
  6. Проверьте последние строки журнала.

Проверка системного журнала

dmesg \
| tail -n 50

При наличии core-файла

Для глубокой диагностики может использоваться отладчик, но для готовой сборки сначала целесообразно вернуть рабочую версию плагина.

Плагин загружен, но игровой мод не работает

Статус Loaded означает только успешную загрузку динамической библиотеки.

Проверьте дальше

  • совпадает ли версия API;
  • каким include компилировался AMX;
  • присутствуют ли все native-функции;
  • правильно ли настроен сам плагин;
  • есть ли дополнительные файлы;
  • правильно ли указан путь к конфигурации;
  • нет ли ошибки при первом вызове функции.

Пример с MySQL

Плагин может иметь статус Loaded, но подключение к базе не произойдёт из-за неправильного логина, пароля или адреса.

Пример со Streamer

Плагин может загрузиться, но объекты не появятся, если мод не вызывает функции создания или использует несовместимый AMX.

Пример с командным процессором

Библиотека может быть загружена, но команды не зарегистрируются из-за ошибок исходного кода.

Правильное обновление версии плагина

Не заменяйте только DLL или SO

Новый выпуск может требовать обновления include и повторной компиляции игрового мода.

Безопасный порядок обновления

  1. Создайте резервную копию.
  2. Прочитайте список изменений.
  3. Проверьте удалённые и переименованные функции.
  4. Замените нативный файл на тестовом сервере.
  5. Обновите include.
  6. Скомпилируйте PWN.
  7. Исправьте предупреждения и ошибки.
  8. Загрузите новый AMX.
  9. Проверьте все связанные системы.
  10. Только после теста обновите рабочий сервер.

Записывайте версии

MySQL: версия сборки
Streamer: версия сборки
sscanf: версия сборки
CrashDetect: версия сборки
Pawn.CMD: версия сборки

Не обновляйте всё одновременно

Последовательное обновление позволяет определить компонент, после которого появилась ошибка.

Особенности установки MySQL-плагина

MySQL-плагин особенно чувствителен к несовместимости API. Между старыми и новыми поколениями отличаются функции подключения, запросов и обработки кэша.

Необходимые компоненты

plugins/mysql.dll
plugins/mysql.so
pawno/include/a_mysql.inc

Windows

plugins mysql

Linux

plugins mysql.so

Признаки несовместимости

  • Runtime Error 19;
  • отсутствуют функции mysql_tquery или cache_*;
  • мод закрывается при подключении;
  • запросы не выполняются;
  • не загружаются аккаунты;
  • ошибки появляются после замены include.

Подключение базы данных MySQL к CRMP

Особенности установки Streamer Plugin

Компоненты

plugins/streamer.dll
plugins/streamer.so
pawno/include/streamer.inc

Windows

plugins streamer

Linux

plugins streamer.so

После установки проверьте

  • загружаются ли динамические объекты;
  • появляются ли пикапы;
  • работают ли динамические зоны;
  • нет ли неизвестных native-функций;
  • не превышены ли лимиты;
  • не появились ли ошибки в callbacks.

При обновлении

Используйте include от той же версии и повторно скомпилируйте игровой мод и filterscripts, которые вызывают Streamer API.

Особенности установки sscanf

Компоненты

plugins/sscanf.dll
plugins/sscanf.so
pawno/include/sscanf2.inc

Windows

plugins sscanf

Linux

plugins sscanf.so

При ошибках команд проверьте

  • загрузился ли плагин;
  • подключён ли правильный include;
  • совпадает ли синтаксис форматов;
  • перекомпилирован ли AMX;
  • не используется ли старый командный обработчик;
  • нет ли Runtime Error 19.

Использование CrashDetect для поиска ошибок

CrashDetect помогает получить больше информации о проблемах Pawn-кода и аварийных завершениях скрипта.

Windows

plugins crashdetect streamer sscanf mysql

Linux

plugins crashdetect.so streamer.so sscanf.so mysql.so

Полезная информация в журнале

  • номер ошибки;
  • название функции;
  • стек вызовов;
  • номер строки при отладочной компиляции;
  • параметры вызова;
  • название AMX или filterscript.

CrashDetect не исправляет ошибку автоматически

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

Компиляция игрового мода для диагностики

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

Пример параметра компилятора

-d3

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

pawno\pawncc.exe \
gamemodes\roleplay.pwn \
-d3

После компиляции

  • проверьте создание AMX;
  • проверьте дату файла;
  • загрузите его на тестовый сервер;
  • воспроизведите ошибку;
  • изучите вывод CrashDetect;
  • верните обычную сборку после диагностики при необходимости.

Отладочный AMX может иметь больший размер, но значительно упрощает поиск строки, вызвавшей ошибку.

Установка плагинов на игровом хостинге

Большинство игровых хостингов используют Linux, даже если панель открывается с компьютера Windows.

Поэтому обычно требуются

mysql.so
streamer.so
sscanf.so
crashdetect.so

Порядок действий

  1. Остановите сервер через панель.
  2. Откройте файловый менеджер или FTP.
  3. Загрузите SO в папку plugins.
  4. Измените строку plugins.
  5. Проверьте регистр имени.
  6. Запустите сервер.
  7. Откройте консоль и журнал.

Если хостинг запрещает загрузку SO

Некоторые панели разрешают только плагины из внутреннего списка. В таком случае выберите поддерживаемую версию или обратитесь в техническую поддержку.

Не ориентируйтесь только на свой компьютер

То, что мод тестировался на Windows, не означает, что на игровом хостинге нужно загружать DLL.

Безопасность серверных плагинов

Основные правила

  • загружайте файлы из доверенных источников;
  • проверяйте номер версии;
  • храните резервную копию;
  • не запускайте сервер от root;
  • не выдавайте папке права 777;
  • не используйте неизвестные закрытые сборки;
  • ограничивайте исходящие подключения;
  • меняйте пароли после проверки чужой сборки;
  • не храните рабочие данные в тестовой среде;
  • обновляйте только после тестирования.

Запуск Linux от отдельного пользователя

sudo -u crmp \
./samp03svr-cr

Проверьте неизвестные сетевые соединения

sudo ss -tpn

После удаления плагина

  • удалите его из server.cfg;
  • проверьте PWN на вызовы его функций;
  • перекомпилируйте мод;
  • удалите ненужный include;
  • проверьте запуск без ошибок.

Контрольный список после установки или обновления

Файлы

  • DLL или SO находится в plugins;
  • выбрана правильная операционная система;
  • архитектура совпадает с ядром;
  • include находится в pawno/include;
  • не осталось двух разных версий.

server.cfg

  • строка plugins существует;
  • названия разделены пробелами;
  • на Windows расширение DLL не обязательно;
  • на Linux указано .so;
  • регистр букв совпадает;
  • отсутствующие плагины удалены.

Совместимость

  • AMX скомпилирован с подходящим include;
  • API плагина соответствует коду;
  • дополнительные библиотеки установлены;
  • сохранена старая рабочая версия;
  • изучен список изменений.

Запуск

  • каждый плагин имеет статус Loaded;
  • нет Runtime Error 19;
  • нет missing DLL;
  • нет not found в выводе ldd;
  • игровой мод запускается;
  • связанные системы работают;
  • сервер выдерживает повторный перезапуск.

Частые вопросы по плагинам CRMP

Куда устанавливать серверные плагины?

В папку plugins корневого каталога CRMP Server.

Куда устанавливать include-файлы?

В каталог pawno/include.

Как подключить плагин на Windows?

plugins streamer

Как подключить плагин на Linux?

plugins streamer.so

Нужно ли писать расширение DLL?

На Windows оно обычно не требуется.

Нужно ли писать расширение SO?

Да, на Linux оно указывается в строке plugins.

Как подключить несколько плагинов?

plugins crashdetect streamer sscanf mysql

Нужно ли разделять названия запятыми?

Нет. Используются обычные пробелы.

Почему плагин показывает Failed?

Проверьте файл, название, операционную систему, архитектуру и системные зависимости.

Что означает Runtime Error 19?

AMX вызывает функцию отсутствующего или несовместимого плагина.

Почему DLL работает на компьютере, но не на хостинге?

Хостинг, вероятно, использует Linux и требует SO-файл.

Почему SO не работает на Windows?

SO предназначен для Linux. На Windows нужна DLL-версия.

Как проверить архитектуру Linux-плагина?

file plugins/plugin.so

Как проверить зависимости?

ldd plugins/plugin.so

Что означает not found в ldd?

Одна из необходимых системных библиотек отсутствует.

Можно ли исправить несовместимую архитектуру через chmod?

Нет. Необходимо установить плагин подходящей разрядности.

Нужно ли перезапускать сервер?

Да. Изменение списка плагинов требует полного перезапуска процесса.

Можно ли обновить только DLL или SO?

Не всегда. Может потребоваться новый include, изменение PWN и повторная компиляция AMX.

Почему плагин Loaded, но функция не работает?

Проверьте совместимость API, настройки плагина и код игрового мода.

Нужно ли устанавливать все плагины из интернета?

Нет. Устанавливаются только расширения, которые использует конкретный игровой мод.

Можно ли удалить ненужный плагин?

Да, но сначала удалите вызовы его функций из PWN и повторно скомпилируйте игровой мод.

Как найти плагин, вызывающий сбой?

Отключайте недавно добавленные расширения по одному и проверяйте запуск на тестовой копии.

Для чего нужен CrashDetect?

Для получения расширенной информации об ошибках Pawn и стеке вызовов.

Безопасно ли запускать неизвестный плагин?

Нет. Проверяйте источник и тестируйте библиотеку отдельно от рабочего сервера и базы.

Официальные и технические источники

Заключение

Серверные плагины CRMP устанавливаются в папку plugins и подключаются через одноимённую строку файла server.cfg. На Windows обычно используются названия без расширения DLL, а на Linux необходимо указывать .so.

Include-файл из папки pawno/include применяется при компиляции PWN, а нативная DLL или SO загружается сервером во время запуска. Эти компоненты должны относиться к совместимым версиям.

Перед обновлением сохраните старый плагин, include, AMX и конфигурацию. Не заменяйте сразу все компоненты: последовательное тестирование позволяет быстрее найти источник ошибки.

При статусе Failed проверьте название файла, операционную систему, архитектуру и зависимости. Runtime Error 19 обычно означает, что игровой мод не нашёл функцию обязательного плагина или использует несовместимый API.

После установки проверяйте не только сообщение Loaded, но и работу систем, использующих расширение. Плагин может успешно загрузиться, но завершиться ошибкой при первом вызове функции.

Загружайте нативные библиотеки только из доверенных источников и запускайте CRMP Server от отдельного системного пользователя без избыточных прав.

Настройка списка плагинов:

Настройка server.cfg для CRMP

Установка игрового мода:

Установка игрового мода CRMP

Подключение MySQL:

Настройка базы данных CRMP

RSS инструкций
0 комментариев 0.0 из 0 оценок
MIAMI RP COMMUNITY

Комментарии к инструкции

Обсудите решение, задайте вопрос или дополните инструкцию

Всего: 0
Страница: /
Показано: 0
Добавление комментариев сейчас недоступно для текущего пользователя.