Руководство по компиляции плагинов SourceMod.
Плагины SourceMod — это пользовательские скрипты или аддоны, созданные для расширения и изменения функциональности игровых серверов, работающих на движке Source.
Язык программирования, на котором пишется исходный код плагинов SourceMod, — SourcePawn. Расширение файлов SourcePawn — sp.
Компилировать плагины SourceMod довольно просто, и ниже это будет объяснено.
Загрузка SourceMod
Воспользуйтесь следующим руководством по загрузке и распаковке SourceMod. Устанавливать SourceMod на сервер для сборки плагинов не требуется.
https://moddingcommunity.com/blog/how-to-install-update-sourcemod-metamod/
После распаковки файлов SourceMod перейдите в директорию addons/sourcemod/scripting в Linux (или в папку addons\sourcemod\scripting в Windows).
Компиляция плагинов SourceMod
Компиляция плагинов SourceMod обычно довольно проста, особенно в Windows.
Windows
Проводник Windows
Если вы хотите быстро скомпилировать плагины, вы можете перетащить файл с исходным кодом плагина на исполняемый файл compile.exe, расположенный в папке scripting. Откроется окно командной строки, и вы увидите вывод сборки. Если сборка прошла успешно, собранные плагины появятся в папке compiled. Собранные плагины SourceMod обычно имеют расширение smx.

Этот способ быстрый и удобный, однако описанный ниже способ через командную строку предоставляет больше опций, которые можно настроить.
Командная строка
Если вы хотите компилировать плагины через командную строку с помощью Command Prompt или PowerShell, сначала нужно запустить терминал и перейти в папку scripting.
Далее для компиляции плагинов вам понадобятся исполняемые файлы spcomp.exe или spcomp64.exe (для 64-битной поддержки).
Вот базовая команда, компилирующая плагин.
.\spcomp.exe <Plugin File Name With Extension>
Например, если мы хотим скомпилировать входящий в комплект плагин basechat, мы используем следующую команду.
.\spcomp.exe basechat.sp
Linux
Чтобы скомпилировать плагины SourceMod через терминал Linux, можно воспользоваться процессом, аналогичным описанному выше способу через командную строку в Windows. Для компиляции плагинов вам понадобится исполняемый файл spcomp или spcomp64 (для 64-битной поддержки).
Вот базовая команда, компилирующая плагин.
./spcomp <Plugin File Name With Extension>
Например, если мы хотим скомпилировать входящий в комплект плагин basechat, мы используем следующую команду.
./spcomp basechat.sp
Если сборка прошла успешно, вы увидите новый собранный файл плагина в той же директории, что и исходный код (scripting/).
Дополнительные опции командной строки
Как сказано выше, компиляция плагинов через командную строку позволяет задавать дополнительные опции. Ниже приведён вывод справочного меню со списком флагов и аргументов, которые можно указать.
SourcePawn Compiler 1.11.0.6969
Copyright (c) 1997-2006 ITB CompuPhase
Copyright (c) 2004-2021 AlliedModders LLC
Usage: ./spcomp [options] <filename> [filename...]
optional arguments:
--show-stats Show compiler statistics on exit.
-D Active directory path
--active-dir=ACTIVE_DIR
-e Error file path
--error-file=ERROR_FILE
-E, --warnings-as-errors Treat warnings as errors
-h, --show-includes Show included file paths
-z
--compress-level=COMPRESS_LEVEL
Compression level, default 9 (0=none, 1=worst,
9=best)
-t, --tabsize=TABSIZE TAB indent size (in character positions,
default=8)
-v, --verbose=VERBOSE Verbosity level; 0=quiet, 1=normal, 2=verbose
-p, --prefix=PREFIX Set name of "prefix" file
-o, --output=OUTPUT Set base name of (P-code) output file
-O, --opt-level=OPT_LEVEL
Deprecated; has no effect
-i, --include=INCLUDE Path for include files
-w, --warning=WARNING Disable a specific warning by its number.
-;, --require-semicolons Require a semicolon to end each statement.
--syntax-only Perform a dry-run (No file output) on the input
--use-stderr Use stderr instead of stdout for error messages.
--no-verify Disable opcode verification (for debugging).
sym=val Define constant "sym" with value "val".
sym= Define constant "sym" with value 0.
Например, в Linux, если мы хотим, чтобы успешно собранный плагин basechat попал в директорию compiled/, мы используем следующие команды.
# Make sure compiled directory is made.
mkdir -p compiled
# Output: compiled/basechat.smx
./spcomp -o compiled/basechat basechat.sp
Include-файлы
Многие опубликованные плагины SourceMod содержат include-файлы с расширением inc. Эти файлы необходимо поместить в директорию/папку include/. Иначе плагины, скорее всего, не скомпилируются.
Кроме того, при компиляции через командную строку вы можете использовать флаг -i, чтобы подключить директории и папки за пределами стандартной директории (папки) include.
Заключение
Вот и всё! Теперь вы знаете все способы компиляции плагинов SourceMod.
Если у вас есть вопросы или отзывы по этому руководству, оставьте ответ в теме на форуме здесь! Это руководство будет дорабатываться и улучшаться со временем.
Присоединяйтесь к нашему Discord-серверу!
