Pawn с Нуля? реально ли написать свой плагин для сервера ( 1 полноценный плагин )
Мы уже научились писать простенький плагин и теперь настало время сделать, что то более сложное и простое одновременно.
Давайте напишем плагин, который будет добавлять тег в чат по флагу доступа, довольно актуальный и простой плагин и главное БЕСПЛАТНО
Будет у нас тег VIP для нас и наших Друзяшек и DOG для тех кто нас достал )
Объяснение кода:
- В начале мы подключаем два заголовочных файла -
amxmodx
иamxmisc
, которые нужны для работы с плагином. - Затем мы объявляем две константы -
TAG_VIP
иTAG_DOG
, в которых хранятся соответствующие теги. - Далее мы регистрируем плагин и команду
/mytags
, которая будет выводить список доступных тегов игрока. - В функции
cmdTags
мы объявляем несколько локальных переменных:szTags
- строка, в которую будут добавляться доступные теги,szTag
- временный буфер для получения каждого тега из конфига. - С помощью функции
GetConfigString
мы получаем список доступных тегов из конфига и добавляем каждый из них в строкуszTags
. - Затем мы получаем флаги доступа игрока с помощью функции
get_user_flags
. - Если у игрока есть флаг
ADMIN_J
, то мы выводим сообщение об этом в консоль и добавляем тег VIP в чат игрока. - Аналогично, если у игрока есть флаг
ADMIN_I
, то мы выводим
Не забудьте изменить флаги и названия... Все таки, это урок а не просто копипаст моего кода!!!
Напишите о результате в комментарии и давайте для удобства усложним немного, я не люблю коспилить постоянно плагин так что вынесем все в конфиг.
Для этого нам нужно сделать некоторые изменения в плагине.
- Необходимо добавить новый файл конфигурации "chatvip.cfg" в директорию "configs".
- В коде плагина нужно заменить жестко закодированные значения на чтение из файла конфигурации.
- Для чтения значений из файла конфигурации, необходимо использовать функции библиотеки "file".
- Также нужно добавить проверку на успешное чтение значений из файла конфигурации.
Вот как будет выглядеть обновленный код плагина:
После этих изменений, вы сможете изменять значения переменных "tagVIP" и "tagDOG" в файле "configs/chatvip.cfg", без необходимости изменять
Компилим и пробуем. Ну как это же реально легко и просто надеюсь у всех вышло и не забудь Комменты я вас жду.
Можем еще немножко усложнить жизнь нашим Псам на сервере и добавим звук. Я добавлю звук лая, будут они у меня Лаять как только начнуть писать, что бы я знал чтоил ли читать чат или нет...
Вот обновленный код плагина, который добавляет тег в чат игроку, если у игрока есть определенный флаг доступа и воспроизводит звук при наборе определенного тега в чате:
Обновленный конфигурационный файл "configs/chatvip.cfg":
В этой версии плагина, если игрок напишет тег "i", то звук /cstrike/music/dog.mp3
будет проигрываться каждый раз, когда кто-то напишет тег "i" в чат.