Для начала,разберемся,что же такое плагин для AMX Mod X. Понятным языком,плагин - обычный файл,задающий в игре какие-либо какие-либо функции.Например,существуют плагины показывающие время в углу экрана или плагины в виде различных многофункциональных меню и т.д.
Сегодня мы создадим наш первый плагин.Суть его будет в том,что по определенной команде в чат,он будет выдавать игроку hp.Начнем.Плагин всегда начинается со строк:
#include <amxmodx> #include <amxmisc> #include <...>
В этих строчках описываются необходимые для плагина модули.Описывать подробно не буду,полное описание функций можно найти тут
После описанных модулей следуют строки:
#define PLUGIN "Give Hp" #define VERSION "1.0" #define AUTHOR "DeSerT"
Эти строки регистрируют наш плагин,т.е. задают ему название,версию и автора.Идем дальше:
public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) }
Функция plugin_init() обязательно должна присутствовать в плагине.Плагина без неё просто не существует.Она регистрирует в плагине все консольные и чат-команды,данные о плагине и др. Некоторые ставят эту функцию в конец плагина,некоторые оставляют в начале,но значения это не имеет.Зарегистрируем в plugin_init() чат-команду для нашего плагина,выглядит это так:
public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) register_clcmd("say /testhp", "testhp") }
Разберем строчку register_clcmd("say /testhp", "testhp") register_clcmd означает что мы регистрируем команду для чата,для консольной команды используйте register_concmd "say /testhp" регистрирует команду в чате /testhp,по этой команде и будут выдаваться hp. "testhp" служит для дальнейшего описания функции в плагине. Далее мы описываем функцию "testhp":
public testhp(id) { set_user_health(id, 200) }
Функция "set_user_health" как вы уже наверное поняли служит для того чтобы задать hp игроку.В данном случае задается 200hp.Если вместо знака "id" в этой строчке поставить 0,то hp будет выдаваться не одному игроку,а всем.Для использования этой функции нам необходим модуль <fun>.Записываем его - #include <fun>
Итак,вот что у нас в итоге получилось:
#include <amxmodx> #include <amxmisc> #include <fun>
#define PLUGIN "Give Hp" #define VERSION "1.0" #define AUTHOR "DeSerT"
public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) register_clcmd("say /testhp", "testhp") }
public testhp(id) { set_user_health(id, 200) }
Неплохо для первого раза.После написания плагина необходимо сохранить его в формате *.sma Далее нужно скомпилировать плагин,т.е. создать файл *.amxx Скомпилировать плагин можно тут
По всем вопросам в комментарии.Спасибо за внимание.
|