Установка игрового мода CRMP — server.cfg, MySQL и ошибки
Игровой мод определяет практически всю работу сервера CRMP: регистрацию, персонажей, экономику, транспорт, организации, дома, бизнесы, команды и административную систему. Серверное ядро запускает скомпилированный Pawn-скрипт в формате .amx, а дополнительные возможности подключаются через плагины и filterscripts.
Для правильной установки недостаточно скопировать один AMX-файл. Необходимо проверить совместимость версии CRMP, перенести папку scriptfiles, установить плагины, импортировать базу данных, изменить параметры подключения и указать игровой режим в server.cfg.
В этом руководстве разобрана полная установка игрового мода CRMP на Windows и Linux, подключение через gamemode0, настройка MySQL, исправление ошибок запуска и изменение основных параметров сборки.
Установка серверного ядра перед добавлением мода:
Подробное описание конфигурации:
Что такое игровой мод CRMP
Игровой мод — основной Pawn-скрипт, который запускается серверным ядром и управляет игровым процессом.
В игровом моде обычно реализованы
- регистрация и авторизация;
- создание персонажа;
- уровни и опыт;
- деньги и банковские счета;
- работы и организации;
- транспорт и автосалоны;
- дома и бизнесы;
- инвентарь;
- административная система;
- античит;
- сохранение данных.
Основные файлы
roleplay.pwn
roleplay.amx
roleplay.pwn — редактируемый исходный код. roleplay.amx — скомпилированный файл, который непосредственно выполняет сервер.
Из чего состоит готовая сборка игрового мода
Полная сборка обычно содержит не только папку gamemodes.
Пример структуры
CRMP-Server/
├── server.cfg
├── gamemodes/
│ ├── roleplay.amx
│ └── roleplay.pwn
├── filterscripts/
│ ├── objects.amx
│ └── anticheat.amx
├── plugins/
│ ├── streamer.dll
│ ├── sscanf.dll
│ └── mysql.dll
├── scriptfiles/
│ ├── config/
│ ├── accounts/
│ └── server.ini
├── pawno/
│ └── include/
└── database.sql
Перед установкой найдите
- основной AMX-файл;
- исходный PWN;
- необходимые плагины;
- include-файлы;
- дополнительные filterscripts;
- папку
scriptfiles; - SQL-файл;
- конфигурацию MySQL;
- инструкцию разработчика;
- стандартные аккаунты администратора.
Если в архиве находится только AMX без исходника, мод можно запустить, но его дальнейшая поддержка будет сильно ограничена.
Проверка совместимости игрового мода
Мод должен соответствовать версии серверной адаптации, плагинам и клиенту CRMP.
Перед установкой уточните
- для CRMP 0.3e или 0.3.7 создан мод;
- какая версия MySQL-плагина требуется;
- какая версия Streamer используется;
- какой командный процессор подключён;
- для какой операционной системы подготовлены плагины;
- нужны ли дополнительные модели;
- нужна ли отдельная клиентская сборка.
Нельзя без проверки смешивать
- старый AMX и несовместимый новый плагин;
- новый include-файл и старую DLL;
- Windows-плагины и Linux-сервер;
- 64-битные плагины и старое 32-битное ядро;
- мод для CRMP 0.3e и ядро другой версии;
- папки из нескольких разных сборок.
Сначала желательно запустить мод с теми версиями файлов, с которыми он распространялся разработчиком. Обновлять компоненты лучше по одному на отдельной тестовой копии.
Создание резервной копии перед установкой
Если на сервере уже находится рабочая сборка, сохраните её до замены игрового режима.
Скопируйте
server.cfg;- папку
gamemodes; - папку
filterscripts; - папку
plugins; - папку
scriptfiles; - исходники и include-файлы;
- базу данных;
- серверные журналы.
Создание архива на Linux
cd /home/crmp
tar -czf \
crmp-before-gamemode-install.tar.gz \
server/
Создание дампа MySQL
mysqldump \
--single-transaction \
-u crmp_user \
-p \
crmp_database \
> crmp-before-gamemode-install.sql
Проверка готового игрового мода
Проверьте исполняемые файлы
Особого внимания требуют:
*.exe
*.dll
*.so
*.bat
*.cmd
*.sh
Нативные файлы выполняют машинный код и могут получить доступ к операционной системе.
Изучите исходный PWN
Поищите:
- жёстко прописанные пароли;
- неизвестные IP-адреса и домены;
- внешние HTTP-запросы;
- проверки по конкретному нику;
- скрытую выдачу администратора;
- отправку реквизитов базы;
- загрузку посторонних файлов;
- команды удаления данных.
Проверьте стандартные аккаунты
Admin
Administrator
Developer
Owner
Test
Support
Удалите неизвестные учётные записи или смените им пароли перед публикацией сервера.
Проверьте server.cfg
- замените RCON-пароль;
- удалите неизвестные filterscripts;
- удалите ненужные плагины;
- проверьте порт;
- проверьте название AMX;
- не используйте чужие адреса сайта.
Установка игрового мода в формате AMX
Главный AMX-файл помещается в каталог:
gamemodes/
Правильная структура
gamemodes/
├── roleplay.amx
└── roleplay.pwn
Пошаговая установка
- Остановите сервер.
- Откройте папку
gamemodes. - Скопируйте файл
roleplay.amx. - Сохраните рядом исходник
roleplay.pwn. - Проверьте точное название файла.
- Измените строку
gamemode0. - Установите необходимые плагины.
- Запустите сервер и проверьте журнал.
Не создавайте двойную вложенность
Неправильно:
gamemodes/roleplay/roleplay.amx
Если мод не рассчитан на особую структуру, файл должен находиться непосредственно в gamemodes:
gamemodes/roleplay.amx
Регистр букв на Linux
roleplay.amx
RolePlay.amx
Для Linux это разные имена. Строка в server.cfg должна полностью совпадать с названием файла.
Компиляция исходника PWN в AMX
После изменения Pawn-кода необходимо повторно создать AMX-файл.
Компиляция через Pawno
- Откройте
pawno/pawno.exe. - Загрузите
gamemodes/roleplay.pwn. - Нажмите F5.
- Проверьте сообщения компилятора.
- Убедитесь, что AMX обновился.
Компиляция через командную строку Windows
pawno\pawncc.exe gamemodes\roleplay.pwn
Успешный результат
gamemodes/roleplay.amx
Если AMX не появился
- в коде есть ошибка;
- отсутствует include-файл;
- не совпадает версия библиотеки;
- у компилятора нет права записи;
- используется неправильный Pawn-компилятор;
- путь содержит проблемные символы.
Установка include-файлов
Include-файлы нужны только для компиляции исходного PWN и располагаются в:
pawno/include/
Пример
pawno/include/
├── a_samp.inc
├── a_mysql.inc
├── streamer.inc
├── sscanf2.inc
└── pawncmd.inc
Типичная ошибка
fatal error 100:
cannot read from file: "streamer"
Компилятор не нашёл файл:
pawno/include/streamer.inc
Не путайте компоненты
streamer.incиспользуется компилятором;streamer.dllиспользуется Windows-сервером;streamer.soиспользуется Linux-сервером.
Include и нативный плагин должны быть совместимы друг с другом.
Перенос папки scriptfiles
В scriptfiles игровой мод может хранить конфигурации, INI-файлы, SQLite-базы и локальные данные.
Пример структуры
scriptfiles/
├── config/
│ └── server.ini
├── accounts/
├── vehicles/
├── houses/
└── mysql.ini
Правильный перенос
Скопируйте содержимое папки с сохранением всей вложенности.
Неправильно
scriptfiles/scriptfiles/config/server.ini
Правильно
scriptfiles/config/server.ini
Права на Linux
sudo chown -R crmp:crmp /home/crmp/server/scriptfiles
chmod -R \
u=rwX,g=rX,o= \
/home/crmp/server/scriptfiles
Если мод записывает файлы, пользователь серверного процесса должен иметь право изменения соответствующих каталогов.
Установка дополнительных filterscripts
Filterscripts — дополнительные AMX-сценарии, работающие одновременно с основным модом.
Каталог
filterscripts/
Пример
filterscripts/
├── objects.amx
├── anticheat.amx
└── admin.amx
Подключение
filterscripts objects anticheat admin
Расширение .amx не указывается. Названия разделяются обычными пробелами.
Без дополнительных скриптов
filterscripts
Перед подключением проверьте
- не дублирует ли скрипт функции основного мода;
- не создаёт ли вторую систему регистрации;
- какие плагины ему необходимы;
- есть ли исходный PWN;
- не содержит ли он скрытую админку;
- не конфликтуют ли команды и диалоги.
Установка необходимых плагинов
Плагины расширяют возможности Pawn и добавляют функции, отсутствующие в стандартном серверном ядре.
Часто используются
- MySQL;
- Streamer;
- sscanf;
- CrashDetect;
- Pawn.CMD;
- regex;
- плагины кодировки;
- специализированные расширения мода.
Плагин должен соответствовать
- операционной системе;
- разрядности серверного ядра;
- версии include-файла;
- API, под которое скомпилирован AMX;
- версии CRMP-сборки.
Не добавляйте все найденные плагины подряд. Устанавливайте только те расширения, которые действительно использует игровой мод.
Установка плагинов на Windows
Пример папки
plugins/
├── crashdetect.dll
├── streamer.dll
├── sscanf.dll
└── mysql.dll
Строка server.cfg
plugins crashdetect streamer sscanf mysql
На Windows расширение .dll обычно не указывается.
Если плагин не загружается
- проверьте наличие DLL;
- проверьте разрядность;
- установите требуемые компоненты Visual C++;
- проверьте блокировку файла Windows;
- проверьте совместимость с AMX;
- запустите сервер через командную строку.
Запуск через командную строку
cd C:\CRMP-Server
samp-server-cr.exe
Фактическое имя исполняемого файла может отличаться.
Установка плагинов на Linux
Пример папки
plugins/
├── crashdetect.so
├── streamer.so
├── sscanf.so
└── mysql.so
Строка server.cfg
plugins crashdetect.so streamer.so sscanf.so mysql.so
На Linux расширение .so необходимо указывать.
Проверка файлов
ls -la plugins/
Проверка типа файла
file plugins/mysql.so
Проверка зависимостей
ldd plugins/crashdetect.so
ldd plugins/streamer.so
ldd plugins/mysql.so
Строка not found указывает на отсутствующую системную библиотеку.
Настройка прав
chmod 755 plugins/*.so
sudo chown -R \
crmp:crmp \
/home/crmp/server/plugins
Установка базовых 32-битных библиотек
sudo dpkg --add-architecture i386
sudo apt update
sudo apt install \
libc6:i386 \
libstdc++6:i386 \
libatomic1:i386 \
-y
Точный набор зависит от используемого ядра и плагинов.
Подключение игрового мода в server.cfg
Откройте файл server.cfg и найдите строку запуска демонстрационного режима:
gamemode0 simple 1
Замените название на имя установленного AMX:
gamemode0 roleplay 1
Файл должен существовать
gamemodes/roleplay.amx
Расширение AMX не указывается
Неправильно:
gamemode0 roleplay.amx 1
Правильно:
gamemode0 roleplay 1
Последнее число
Число после названия определяет количество запусков режима до перехода к следующему элементу ротации.
Для постоянного RP-проекта достаточно:
gamemode0 roleplay 1
Несколько режимов
gamemode0 roleplay 1
gamemode1 freeroam 1
Автоматическая смена мода на Role Play сервере обычно не требуется.
Готовый пример server.cfg с игровым модом
Windows
echo Executing CRMP Server Config...
rcon_password ЗАМЕНИТЕ_НА_СЛОЖНЫЙ_ПАРОЛЬ
rcon 1
maxplayers 50
port 8904
hostname Miami CRMP | Role Play
gamemodetext Role Play
mapname Criminal Russia
language Russian
weburl gta-miami.online
password
gamemode0 roleplay 1
filterscripts objects
plugins crashdetect streamer sscanf mysql
announce 1
query 1
lanmode 0
maxnpc 0
onfoot_rate 40
incar_rate 40
weapon_rate 40
stream_distance 300.0
stream_rate 1000
sleep 5
timestamp 1
logtimeformat [%d/%m/%Y %H:%M:%S]
Linux
echo Executing CRMP Server Config...
rcon_password ЗАМЕНИТЕ_НА_СЛОЖНЫЙ_ПАРОЛЬ
rcon 1
maxplayers 50
port 8904
hostname Miami CRMP | Role Play
gamemodetext Role Play
mapname Criminal Russia
language Russian
weburl gta-miami.online
password
gamemode0 roleplay 1
filterscripts objects
plugins crashdetect.so streamer.so sscanf.so mysql.so
announce 1
query 1
lanmode 0
maxnpc 0
onfoot_rate 40
incar_rate 40
weapon_rate 40
stream_distance 300.0
stream_rate 1000
sleep 5
timestamp 1
logtimeformat [%d/%m/%Y %H:%M:%S]
Перед запуском замените
- RCON-пароль;
- название проекта;
- название AMX;
- список плагинов;
- список filterscripts;
- порт;
- количество игроков;
- адрес сайта.
Подготовка MySQL для игрового мода
Сначала убедитесь, что выбранный мод действительно использует MySQL. Некоторые старые сборки сохраняют данные в INI или SQLite.
Признаки использования MySQL
- в архиве находится SQL-файл;
- подключается MySQL-плагин;
- в PWN используется
a_mysql; - есть отдельный файл настройки базы;
- в коде вызывается функция подключения;
- при запуске выводится статус MySQL.
Для подключения потребуются
- адрес MySQL-сервера;
- порт;
- имя базы;
- пользователь;
- пароль;
- SQL-файл;
- совместимый плагин;
- разрешение подключения с IP CRMP-сервера.
Локальная база на том же VPS
Host: 127.0.0.1
Port: 3306
База игрового хостинга
Используйте адрес, выданный панелью. Значение 127.0.0.1 не подойдёт, если MySQL находится на другом сервере.
Создание базы данных и пользователя
Создание базы
CREATE DATABASE `crmp_server`
CHARACTER SET utf8mb4
COLLATE utf8mb4_unicode_ci;
Создание отдельного пользователя
CREATE USER 'crmp_user'@'127.0.0.1'
IDENTIFIED BY 'СЛОЖНЫЙ_ПАРОЛЬ';
Выдача прав только на нужную базу
GRANT ALL PRIVILEGES
ON `crmp_server`.*
TO 'crmp_user'@'127.0.0.1';
Применение прав
FLUSH PRIVILEGES;
Для удалённой базы
Вместо 127.0.0.1 укажите IP сервера CRMP:
CREATE USER 'crmp_user'@'IP_CRMP_СЕРВЕРА'
IDENTIFIED BY 'СЛОЖНЫЙ_ПАРОЛЬ';
Импорт SQL-файла игрового мода
Импорт через командную строку
mysql \
-u crmp_user \
-p \
crmp_server \
< database.sql
Импорт удалённой базы
mysql \
-h MYSQL_ХОСТ \
-P 3306 \
-u crmp_user \
-p \
crmp_server \
< database.sql
Проверка таблиц
USE `crmp_server`;
SHOW TABLES;
Импорт через phpMyAdmin
- Откройте созданную базу.
- Перейдите в раздел «Импорт».
- Выберите файл
database.sql. - Проверьте кодировку.
- Запустите импорт.
- Убедитесь, что появились таблицы.
Если импорт не выполняется
- проверьте максимальный размер файла;
- проверьте версию MySQL или MariaDB;
- проверьте кодировку;
- проверьте права пользователя;
- изучите номер строки с ошибкой;
- проверьте, не существуют ли таблицы ранее.
Настройка реквизитов подключения MySQL
Расположение настроек зависит от конкретного игрового мода.
Отдельный файл
scriptfiles/mysql.ini
Пример содержимого
host=127.0.0.1
port=3306
database=crmp_server
user=crmp_user
password=СЛОЖНЫЙ_ПАРОЛЬ
Реквизиты в Pawn-коде
#define MYSQL_HOST "127.0.0.1"
#define MYSQL_USER "crmp_user"
#define MYSQL_DATABASE "crmp_server"
#define MYSQL_PASSWORD "СЛОЖНЫЙ_ПАРОЛЬ"
После изменения исходника
- Сохраните PWN.
- Повторно скомпилируйте мод.
- Проверьте появление нового AMX.
- Загрузите AMX на сервер.
- Перезапустите процесс.
- Проверьте журнал подключения.
Не рекомендуется
- использовать пользователя root;
- совмещать пароли MySQL и RCON;
- публиковать реквизиты в архиве;
- хранить пароль в клиентских файлах;
- открывать порт базы всему интернету;
- использовать рабочую базу для тестов.
Первый запуск игрового мода
Windows
cd C:\CRMP-Server
samp-server-cr.exe
Linux
cd /home/crmp/server
sudo -u crmp ./samp03svr-cr
Подставьте настоящее имя серверного файла своей адаптации.
При успешном запуске отображаются
- чтение
server.cfg; - загрузка плагинов;
- загрузка filterscripts;
- инициализация игрового мода;
- подключение к базе;
- открытие игрового порта;
- количество моделей транспорта.
Пример нормального запуска
Loading plugin: streamer
Loaded.
Loading plugin: sscanf
Loaded.
Loading plugin: mysql
Loaded.
Loaded 3 plugins.
Started server on port: 8904
Number of vehicle models: 25
После появления консоли подключитесь через клиент CRMP и проверьте регистрацию тестового аккаунта.
Проверка консоли и серверных журналов
Основной журнал
server_log.txt
Просмотр последних строк Linux
tail -n 150 server_log.txt
Просмотр в реальном времени
tail -f server_log.txt
Ищите сообщения
Unknown Gamemode;Failedпри загрузке плагина;Run time error;File or function is not found;Access denied;Unknown database;Can't connect;Permission denied;Address already in use.
При аварийной остановке особенно важны последние строки перед завершением процесса.
Исправление ошибки Unknown Gamemode
Unknown Gamemode
Основные причины
- неправильное имя в
gamemode0; - AMX отсутствует;
- в конфигурации указано расширение;
- не совпадает регистр букв;
- AMX повреждён;
- мод аварийно завершился;
- не загрузился обязательный плагин.
Проверьте строку
gamemode0 roleplay 1
Проверьте файл
gamemodes/roleplay.amx
Проверка Linux
ls -la gamemodes/
Проверка даты AMX
Если исходник недавно компилировался, убедитесь, что на сервер загружена новая версия файла, а не старый AMX.
Исправление Run time error 19
Run time error 19:
"File or function is not found"
Ошибка означает, что AMX вызывает функцию, отсутствующую в загруженном серверном окружении.
Чаще всего причина
- не установлен обязательный плагин;
- установлена неправильная версия;
- плагин завершил загрузку со статусом Failed;
- AMX скомпилирован с другим API;
- include не соответствует плагину;
- Windows DLL установлена на Linux;
- не хватает системной библиотеки.
Порядок исправления
- Найдите список отсутствующих функций.
- Определите, к какому плагину они относятся.
- Проверьте строку
plugins. - Проверьте наличие DLL или SO.
- Проверьте системные зависимости.
- Установите совместимую версию.
- Перезапустите сервер.
Плагин не загружается: Plugin Failed
Пример ошибки
Loading plugin: mysql
Failed.
Проверьте на Windows
- существует ли
mysql.dll; - совпадает ли разрядность;
- установлены ли библиотеки Visual C++;
- не заблокирован ли файл системой;
- совместима ли версия с игровым модом;
- правильно ли указано название.
Проверьте на Linux
ls -la plugins/mysql.so
file plugins/mysql.so
ldd plugins/mysql.so
Основные причины Linux
- не указано расширение
.so; - плагин имеет другую разрядность;
- отсутствует зависимость;
- не совпадает регистр имени;
- нет права чтения;
- файл собран для другой системы.
Проверьте server.cfg
Windows:
plugins mysql streamer sscanf
Linux:
plugins mysql.so streamer.so sscanf.so
Исправление ошибок подключения MySQL
Access denied for user
Access denied for user
'crmp_user'@'localhost'
Проверьте пользователя, пароль, разрешённый хост и права на базу.
Unknown database
Unknown database 'crmp_server'
База не создана либо в конфигурации указано другое имя.
Can't connect to MySQL server
- указан неправильный адрес;
- указан неправильный порт;
- служба MySQL остановлена;
- порт заблокирован;
- IP CRMP-сервера не разрешён;
- MySQL принимает только локальные соединения.
Проверка подключения из Linux
mysql \
-h 127.0.0.1 \
-P 3306 \
-u crmp_user \
-p \
crmp_server
Проверка удалённого хоста
mysql \
-h MYSQL_ХОСТ \
-P 3306 \
-u crmp_user \
-p \
crmp_server
Таблица не существует
Table 'crmp_server.accounts'
doesn't exist
SQL-файл импортирован не полностью либо сервер подключился к пустой базе.
Сервер подключается, но аккаунты не сохраняются
- запрос завершается ошибкой;
- структура таблиц не соответствует моду;
- используется другая база;
- плагин MySQL несовместим;
- сохранение вызывается неправильно;
- сервер принудительно завершается.
Ошибки папки scriptfiles
Файл конфигурации не найден
Проверьте точный путь, вложенность и регистр букв.
Неправильная вложенность
scriptfiles/scriptfiles/config/server.ini
Правильная вложенность
scriptfiles/config/server.ini
Нет прав на запись в Linux
sudo chown -R \
crmp:crmp \
/home/crmp/server/scriptfiles
chmod -R \
u=rwX,g=rX,o= \
/home/crmp/server/scriptfiles
После перезапуска пропадают данные
- мод не выполняет сохранение;
- файл доступен только для чтения;
- сервер закрывается принудительно;
- указан неправильный путь;
- редактируется другая копия файла;
- данные фактически хранятся в MySQL.
Проблемы после переноса мода на Linux
Linux учитывает регистр букв
Accounts
accounts
Это два разных каталога.
Проверьте пути в Pawn-коде
scriptfiles/Accounts/%s.ini
Реальная папка должна называться точно так же.
Windows-пути
Старый код может использовать обратные слеши:
scriptfiles\Accounts\player.ini
Более переносимый вариант:
scriptfiles/Accounts/player.ini
DLL не работают на Linux
Windows-вариант:
plugins mysql streamer sscanf
Linux-вариант:
plugins mysql.so streamer.so sscanf.so
Permission denied
chmod +x samp03svr-cr
sudo chown -R \
crmp:crmp \
/home/crmp/server
No such file or directory при существующем файле
У 32-битного серверного ядра могут отсутствовать библиотеки i386. Проверьте файл командой:
file ./samp03svr-cr
ldd ./samp03svr-cr
Изменение основных параметров игрового мода
Часть параметров находится в server.cfg, а игровые настройки — в PWN или файлах scriptfiles.
В server.cfg изменяются
- название сервера;
- название режима;
- порт;
- количество игроков;
- пароль подключения;
- RCON-пароль;
- список плагинов;
- список filterscripts;
- основной AMX.
Пример
hostname Miami CRMP | Role Play
gamemodetext Role Play
maxplayers 50
port 8904
password
gamemode0 roleplay 1
В конфигурации игрового мода могут находиться
- стартовые деньги;
- начальный уровень;
- точка появления;
- бонус регистрации;
- множитель опыта;
- названия организаций;
- лимиты транспорта;
- параметры экономики;
- ссылки на сообщества.
Поиск в исходном коде
SetGameModeText
SendClientMessage
ShowPlayerDialog
SetPlayerPos
GivePlayerMoney
mysql_connect
Пример стартовых денег
GivePlayerMoney(playerid, 50000);
Пример точки появления
SetPlayerPos(
playerid,
1234.0,
-456.0,
20.0
);
После изменения PWN
- скомпилируйте исходник;
- исправьте ошибки компилятора;
- сохраните старый AMX;
- загрузите новый файл;
- перезапустите тестовый сервер;
- проверьте изменённую систему.
Выдача административных прав
RCON и внутриигровая административная система — разные уровни доступа.
RCON
/rcon login ВАШ_RCON_ПАРОЛЬ
RCON управляет серверным процессом и должен оставаться у владельца или доверенного технического администратора.
Внутриигровые права могут храниться
- в MySQL;
- в INI-файле аккаунта;
- в SQLite;
- в таблице персонажей;
- в отдельной таблице администраторов;
- в системе команд мода.
Проверка структуры MySQL
SHOW TABLES;
DESCRIBE `accounts`;
Поиск аккаунта
SELECT *
FROM `accounts`
WHERE `name` = 'Player_Name'
LIMIT 1;
Пример выдачи уровня
UPDATE `accounts`
SET `admin_level` = 10
WHERE `name` = 'Player_Name'
LIMIT 1;
Если права не применились
- изменена неправильная база;
- поле называется иначе;
- права хранятся у персонажа;
- необходим повторный вход;
- данные кэшируются в памяти;
- уровень ограничен кодом мода.
Полная проверка сервера после установки
Запуск
- сервер не закрывается;
- AMX загружается;
- нет Unknown Gamemode;
- нет Runtime Error 19;
- плагины имеют статус Loaded;
- порт прослушивается.
База данных
- соединение установлено;
- таблицы импортированы;
- регистрация создаёт аккаунт;
- авторизация работает;
- данные сохраняются после выхода;
- используется нужная база.
Игровые системы
- создаётся персонаж;
- работает точка появления;
- работают команды;
- загружается транспорт;
- загружаются организации;
- загружаются дома и бизнесы;
- сохраняется инвентарь;
- правильно отображается русский текст.
Администрирование
- заменён RCON-пароль;
- удалены стандартные администраторы;
- работают внутриигровые права;
- действия персонала записываются;
- отсутствуют неизвестные команды.
Проверка сохранения
- Создайте тестовый аккаунт.
- Получите деньги или предмет.
- Корректно выйдите.
- Перезапустите сервер.
- Войдите повторно.
- Проверьте сохранённые данные.
Безопасность установленного игрового мода
Перед публичным запуском
- смените RCON-пароль;
- смените пароль MySQL;
- удалите тестовые аккаунты;
- удалите неизвестных администраторов;
- проверьте внешние подключения;
- проверьте DLL и SO;
- закройте порт MySQL;
- ограничьте доступ к файлам;
- отключите ненужные filterscripts;
- проверьте административные команды.
Не публикуйте
- рабочий
server.cfg; - пароль RCON;
- реквизиты MySQL;
- полный SQL-дамп;
- токены сторонних сервисов;
- архив с аккаунтами;
- полные журналы с IP.
Не запускайте сервер от root
sudo -u crmp ./samp03svr-cr
Откройте только необходимый игровой порт
sudo ufw allow 8904/udp
MySQL, SSH и панель управления должны быть доступны только с доверенных адресов.
Резервное копирование игрового мода
После успешной установки сохраните
- AMX и PWN;
server.cfg;- папку
scriptfiles; - filterscripts;
- плагины;
- include-файлы;
- SQL-дамп;
- список версий компонентов;
- инструкцию восстановления.
Архив Linux
tar -czf \
/home/crmp/crmp-gamemode-$(date +%F).tar.gz \
/home/crmp/server
Дамп базы
mysqldump \
--single-transaction \
-u crmp_user \
-p \
crmp_server \
> /home/crmp/crmp-database-$(date +%F).sql
Копии желательно хранить
- на рабочем сервере для быстрого отката;
- на другом VPS;
- в облачном хранилище;
- на компьютере владельца;
- отдельно перед каждым обновлением.
Частые вопросы по установке игрового мода CRMP
Куда загружать игровой мод?
Скомпилированный AMX помещается в папку gamemodes.
Нужно ли загружать PWN?
Для запуска он не требуется, но его следует сохранить для изменений и повторной компиляции.
Как подключить мод в server.cfg?
gamemode0 roleplay 1
Нужно ли писать расширение AMX?
Нет. Название указывается без .amx.
Почему появляется Unknown Gamemode?
Проверьте имя AMX, папку gamemodes, регистр букв и обязательные плагины.
Что означает Runtime Error 19?
Мод вызывает функцию, которой нет на сервере. Обычно отсутствует или не загрузился необходимый плагин.
Куда загружать плагины?
В папку plugins.
Какая строка плагинов нужна на Windows?
plugins streamer sscanf mysql
Какая строка нужна на Linux?
plugins streamer.so sscanf.so mysql.so
Куда загружать filterscripts?
В каталог filterscripts, после чего их названия добавляются в одноимённый параметр.
Куда копировать scriptfiles?
В корневую папку сервера с сохранением исходной структуры каталогов.
Обязательно ли использовать MySQL?
Нет. Некоторые моды используют INI или SQLite. Способ хранения определяется самой сборкой.
Где изменить данные MySQL?
В отдельном конфигурационном файле внутри scriptfiles или в исходном PWN.
Почему MySQL пишет Access denied?
Проверьте пользователя, пароль, разрешённый IP и выданные права.
Почему сервер не находит таблицу?
SQL-файл не импортирован полностью или сервер подключён к другой базе.
Почему мод работает на Windows, но не работает на Linux?
Проверьте регистр букв, пути, SO-плагины, права файлов и 32-битные зависимости.
Как изменить стартовые деньги?
Найдите соответствующий параметр в конфигурации или PWN, измените его и повторно скомпилируйте AMX.
Как создать администратора?
Используйте систему самого игрового мода: MySQL, INI, SQLite или специальную команду. RCON не следует выдавать обычному персоналу.
Нужно ли перезапускать сервер после замены AMX?
Да. Для надёжного применения изменений выполните полный перезапуск серверного процесса.
Можно ли заменить AMX без остановки сервера?
Файл можно загрузить заранее, но безопаснее остановить процесс, заменить AMX и запустить сервер заново.
Что проверить перед открытием проекта?
Регистрацию, сохранение данных, MySQL, плагины, администраторов, безопасность и восстановление из резервной копии.
Официальные и технические источники
Заключение
Для установки игрового мода CRMP поместите AMX-файл в папку gamemodes, скопируйте необходимые filterscripts, плагины и содержимое scriptfiles, а затем укажите название режима в параметре gamemode0.
На Windows используются DLL-плагины, а на Linux — SO. Версии нативных файлов и include-библиотек должны соответствовать API, под которое скомпилирован игровой мод.
Если сборка использует MySQL, создайте отдельную базу и пользователя, импортируйте SQL-файл и укажите правильные реквизиты в конфигурации или Pawn-коде.
После запуска обязательно проверьте консоль и server_log.txt. Ошибка Unknown Gamemode обычно связана с AMX или строкой gamemode0, а Runtime Error 19 — с отсутствующим или несовместимым плагином.
Перед публичным запуском смените стандартные пароли, удалите неизвестных администраторов, проверьте нативные файлы и создайте резервную копию серверной сборки и базы данных.
Настройка основного конфигурационного файла:
Первоначальная настройка сервера:
Комментарии к инструкции
Обсудите решение, задайте вопрос или дополните инструкцию