Компиляция и немного о плагинах

И так, давайте сперва разберёмся в некоторых азах. Разберёмся на чём работают плагины, куда они устанавливаются, как они работают, форматы файлов для плагинов и тд.

Программирование или на чём пишутся плагины?

В статье про создание сервера я упоминал SourceMod. Что это такое? Это наша серверная база, ядро для работы сервера и плагинов. Sourcemod и всё прочие плагины для него написаны на языке SourcePawn.
Есть у нас и кое-что другое - EventScripts. Это что-то вроде псевдопитона по языку программирования. Аналог сурсмода, требуется для работы плагинов основанных на евенте.
ВНИМАНИЕ! EventScripts несколько проще, однако обладает рядом минусов. Таких как: нестабильность работы, высокая ресурсопотребляемость, частые падения сервера (краши) и в принципе мало используется, в основном из-за нюансов выше.
Есть ещё и Metamod. Он сейчас входит в последние версии Sourcemod, отдельной установки не требует. Не может использоваться как отдельная база, он лишь вспомогательный.
И так, теперь мы знаем про базу плагинов и на чём они работают, давайте двигаться дальше.

Из чего состоит плагин?
Плагин у нас делится на несколько разноформатных файлов, которые мы сейчас и разберём.

.smx - это как раз и есть наш плагин в скомпилированном виде. Является основным исполнительным файлом для вашей задачи. Может являться как ядром, модулем, так и отдельным плагином*
.cfg - конфигурационный файл плагина. Для чего он нужен? В нём указываются настройки самого плагина. Он сделан для вашего удобства в настройке, чтобы не указывать отдельно квары (команды плагина).
.ini - конфигурационный файл плагина, просто ещё одна разновидность. Для чего он нужен? В нём указываются настройки самого плагина. Он сделан для вашего удобства в настройке, чтобы не указывать отдельно квары (команды плагина).
.txt - так же может использоваться как конфигурационный файл. Как это определить? Исходим из названия файла, документации к плагину.
.sp** - это исходный код нашего файла, нужен для компиляции, не влияет на работоспособность плагина.
.phrases.txt - файл перевода, который необходим для отображения текста в плагине. В данном файле указывается перевод на разные языки, заменяется вывод текста куда-либо и т.д.
.inc - файл необходимый для компиляции плагина.  Не влияет на работоспособность плагина при простой установке. Грубо говоря, содержит все необходиммые команды для компиляции плагина и его адекватной работоспособности в будущем. 
*Давайте разберёмся что такое ядро, модуль и отдельный плагин. Ядро - база для модульных плагинов. К примеру: VIP от R1KO. У неё есть ядро VIPCORE, к нему идут модульные плагины по типу: вампиризм, больше патронов для випа, больше скорости и тд. Ядро необходимо для работы модулей. Отдельному и простому плагину не нужны подобные сложности, если он не масштабный.
**Зачастую приватные плагины продаются без исходного кода (.sp). Это делается для того, чтобы никто не смог распространять их продукт далее бесплатно. Однако, будьте крайне осторожны при покупке приватных плагинов!
Вы не знаете, что в нём находится и вам не смогут это подсказать, если плагин более-менее защищён. В плагине может содержаться вредоносный код, который уничтожит ваш сервер. Все покупки приватных плагинов без исходников на ваш страх и риск, покупайте только у САМЫХ проверенных личностей.

Какие директории файлов плагина?

Давайте будем помнить о том нюансе, что в иной раз директория плагина может быть индивидуальна. Я буду указывать лишь на самые частые директории, условно шаблонные. 
.smx - addons/sourcemod/plugins/
.sp - addons/sourcemod/scripting/
.inc - addons/sourcemod/scripting/include/
.phrases.txt - addons/sourcemod/translations/
.cfg, .txt, .ini - генерируются в зависимости от плагина.
Не пугайтесь, если даже шаблонные директории будут отличаться. Это вполне нормально.

Как установить плагин?

Всё весьма банально и просто. Скачать плагин и раскинуть файлы по нужным директориям. 
Не попутайте директории, это важно! После загрузки файлов нужно отредактировать конфигурационные файлы плагина, если они имеются.
Обратите внимание! Перед установкой плагина нужно внимательно изучить его требования, чтобы убедиться в его работоспособности для вашего сервера. Нужно внимательно изучить документацию к плагину, где описаны его квары, где описан его принцип работы, внимательно прочитать комментарии в конфигурационных файлах. Нельзя устанавливать несколько плагинов схожей работоспособности, ибо в противном случае возможны баги и конфликты.
После установки плагина нужно написать в консоль сервера на хостинге следующую команду: sm plugins list.
С помощью данной команды мы можем убедиться, что наш плагин уже работает (на первый взгляд). Если у вас что-то пошло не так, то у вас покажет ошибку плагина.

Расширения или на кой чёрт оно надо?

У нас есть ещё один тип "базы" для плагинов, это уже более масштабный вариант. Расширения могут использоваться в 2 случаях: для привязки* плагина и его работоспособности в целом.
Где находятся расширения? Тут - addons/sourcemod/extensions/
Обратите внимание! Имеет большое значение на какой операционной системе находится ваш сервер - Windows или Linux
Если у вас windows, то расширение будет иметь формат - ext.dll
Если у вас linux, то расширение будет иметь формат - ext.so 
P.S. - чаще всего сервера на Linux.

*Что такое привязка или почему не работает приватный плагин?

Как я уже упоминал, то приватные плагины у нас созданы лишь для продажи. Будем честны, неприятных и слишком "хитрых" людей всегда было и будет много, для того создаётся защита - привязка.
Эта привязка гарантирует, что только сервер покупателя сможет пользоваться данным плагином. Если его поставит недобросовестный пользователь, то просто работать не будет.
Привязка бывает разных уровней сложности и только самые начальные относительно легко обойти. Одним из самых сложных и хитрых методом привязки является - привязка с расширением.

Компиляция или чёрное колдунство

Данный нехитрый навык нужен только тем, кто уже немного разбирается в программировании на SourcePawn. Однако, многие пользователи всё же просят рассказать как выполнить данное шаманство, давайте разбираться.
Нам потребуется файл формата .sp (см. выше), где располагается сам код плагина. В данном файле обязательно должна быть кодировка "UTF-8 (без BOM)". 
Если вы пытаетесь компилировать, то скорее всего sourcemod у вас уже имеется. Идём по пути "addons/sourcemod/scripting/" . Туда вам нужно закинуть ваш файл формата .sp. После чего, вам нужно лишь перетащить ваш файл .sp на файл compile.exe или spcomp.exe. Если ошибок не было, то у вас появится файл формата .smx.
Обратите внимание! Для правильной компиляции по пути указанному выше должны быть так же: все необходимые инклуды, библиотеки и все составляющие вашего плагина.
Обратите внимание! Лучше всего компилировать плагины для той версии Sourcemod, на которой они будут использоваться. Так как возможны баги или полная неработоспособность.
Обратите внимание! У вас могут не работать так же и старые плагины, где используется старый синтаксис. Лучше всего ставить относительно новые плагины и под новые версии SM, что будут схожи с вашей.

Просмотров: 427 Дата создания: 1 марта 2022 г Категория: Статьи разработчиков Автор: Kult

Комментарии