Запустили сервер, но мод не загрузился, а в мультиплеере у сервера Mode Unknown? Расскажем, как это исправить.
Причина ошибки #1 - не все плагины загружены
Данная ошибка возможна только в случае, если вы не подгрузили все плагины, что необходимы вашему игровому моду, или же их версия не соответствует версии инклуда плагинов, с которыми вы компилировали ваш мод (.pwn файл через PAWNO редактор).
Убедитесь, что:
- Все нужные моду плагины загружены в папку plugins, имеют расширение .so (например, streamer.so);
- Все плагины присутствуют в server.cfg, и прописаны без расширений. Например, для streamer.so и mysql.so в строке plugins нужно указать "plugins streamer mysql".
- Если в папке plugins только .dll файлы, а .so отсутствуют, то найдите и загрузите их. Как правило, они есть в архиве с модом.
Плагины прописаны и загружены, но ошибка сохраняется?
Причина ошибки #2 - несовпадение версий плагинов
Чтобы разобраться с причиной этой ошибки, откройте server_log.txt из папки /ip-port/samp. В конце лога найдите последний запуск сервера, он всегда начинается со строк "Ru-hoster Launcher Nausica (2017)".
Лог может выглядеть вот так:
Ru-hoster Launcher Nausica (2017)
Start the server at 29-05-2017 19:30 MSK
Checking server.cfg file ... Done
----------
Loaded log file: "server_log.txt".
----------
SA-MP Dedicated Server
----------------------
v0.3.7-R2, (C)2005-2015 SA-MP Team
[19:30:00]
[19:30:00] Server Plugins
[19:30:00] --------------
[19:30:00] Loading plugin: streamer.so
[19:30:00]
*** Streamer Plugin v2.8.2 by Incognito loaded ***
[19:30:00] Loaded.
[19:30:00] Loading plugin: sscanf.so
[19:30:00]
[19:30:00] ===============================
[19:30:00] sscanf plugin loaded.
[19:30:00] Version: 2.8.1
[19:30:00] (c) 2012 Alex "Y_Less" Cole
[19:30:00] ===============================
[19:30:00] Loaded.
[19:30:00] Loading plugin: regex.so
[19:30:00]
[19:30:00] ______________________________________
[19:30:00] Regular Expression Plugin v0.2.1 loaded
[19:30:00] ______________________________________
[19:30:00] By: Fro (c) Copyright <TBG> 2009-2011
[19:30:00] ______________________________________
[19:30:00] Loaded.
[19:30:00] Loading plugin: PointToPoint.so
[19:30:00] PointToPoint Plugin Loaded.
[19:30:00] Loaded.
[19:30:00] Loading plugin: sql.so
[19:30:00] >> SQL plugin v2.6 successfully loaded.
[19:30:00] + MySQL support is enabled.
[19:30:00] Loaded.
[19:30:00] Loading plugin: mysql.so
[19:30:00] >> plugin.mysql: R34 successfully loaded.
[19:30:00] Loaded.
[19:30:00] Loading plugin: FileFunctions.so
[19:30:00] Loaded.
[19:30:00] Loading plugin: iTD.so
[19:30:00] Failed (plugins/iTD.so: cannot open shared object file: No such file or directory)
[19:30:00] Loading plugin: crashdetect.so
[19:30:00] In order for runtime error detection to work CrashDetect must be loaded before streamer.so.
[19:30:00] CrashDetect v4.10 is OK.
[19:30:00] Loaded.
[19:30:00] Loading plugin: antiattack.so
[19:30:00] Failed (/usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.15' not found (required by plugins/antiattack.so))
[19:30:00] Loading plugin: jit.so
[19:30:00] Failed (plugins/jit.so: cannot open shared object file: No such file or directory)
[19:30:00] Loaded 8 plugins.
[19:30:00]
[19:30:00] Filterscripts
[19:30:00] ---------------
[19:30:00] Loading filterscript 'yom_buttons.amx'...
[19:30:00] *** Streamer Plugin: Include file version (0x26105) does not match plugin version (0x282001) (script might need to be recompiled with the latest include file)
[19:30:00] Loading filterscript 'pockets.amx'...
[19:30:00] FS SCRIPT LOAD
[19:30:00] Loaded 2 filterscripts.
[19:30:00] Script[gamemodes/new.amx]: Run time error 19: "File or function is not found"
[19:30:00] Number of vehicle models: 0
Тут мы ищем:
- Ошибки GLIBCXX. Если они присутствуют, то вам поможет эта инструкция;
- Ошибка "(plugins/iTD.so: cannot open shared object file: No such file or directory" говорит о том, что файл плагина не существует в папке plugins. Поверьте еще раз, что такие файлы существуют.
Crashdetect спешит на помощь!
Если таких ошибок нет, либо они исправлены, а мод по прежнему Unknown, то требуется зайти в панель управления сервером и установить плагин Crashdetect в разделе Моды/Плагины. Перезапустите сервер после установки, убедитесь что плагин загрузился:
Далее вновь проверьте лог. В нем вы найдете отладочную информацию:
[19:55:21] [debug] Run time error 19: "File or function is not found"
[19:55:21] [debug] cache_get_value_index
[19:55:21] [debug] cache_get_value_index_int
[19:55:21] [debug] cache_get_value_name
[19:55:21] [debug] cache_get_value_name_int
[19:55:21] [debug] cache_get_value_index_float
[19:55:21] [debug] cache_get_value_name_float
В данном логе мы видим, что мод не загрузился из-за отсутствующих функций, и их список.
Далее вам нужно поискать функции из этого списка в Google. Набрав в поисковике "cache_get_value_index_int", попадаем на страницу https://wiki.sa-mp.com/wiki/MySQL/R40. Обратите внимание на версию MySQL-плагина R40. Нужная моду функция появилась в версии 40+, у нас же судя по server_log.txt видно, что загружается R34. Именно из-за этого сервер не может загрузиться.
Заметим, что в каждом конкретном случае набор отсутствующих функций будет разным, и плагины, требующие обновления будут отличаться. Вам нужно поискать каждую функцию в Google и найти нужный плагин нужной версии (версию часто можно найти по changelog плагина).
Теперь когда мы знаем причину, то можем зайти в управление сервером, раздел Моды/Плагины, и установить MySQL R41 (она совместима с R40). Либо, если нужного плагина (или нужной версии) в панели управления нет, то найдем в интернете нужный плагин (требуется версия для Linux CentOS 7) и загрузим в папку plugins через FTP.
Результат - наш сервер запущен и готов к игре.
С любовью,
команда Ru-hoster ❤