Главная » Статьи » Скриптинг/ Статьи/ Мануалы |
Смена HUD у оружия (Weapon Custom Hud)
Quote Итак, относительно недавно нашли способ менять hud у оружия, так же hud патронов и т.п. Этот плагин поможет избавиться от некоторой нудной работы, такой как поиск офсетов, добавления своих дополнительных функций и регестрирования команд типа register_clcmd("weapon_mygun", "switch_handler") Автор статьи: trofian Автор плагина: trofian Источник: amx-x.ru Сейчас всё объясню на примере тестового плагина, который меняет hud ножу Прежде всего подключаем инклуд Code #include <hud> Далее удобнее определить константы нашего старого оружия и нового Code #define WEAPON_OLD "weapon_knife" #define WEAPON_NEW1 "weapon_knife1" #define WEAPON_NEW2 "weapon_knife2" #define WEAPON_NEW3 "weapon_knife3" #define WEAPON_NEW4 "weapon_knife4" #define WEAPON_NEW5 "weapon_knife5" теперь в plugin_init() зарегестрируем все эти худы Code public plugin_init() { ... n21_register_hud(WEAPON_OLD, WEAPON_NEW1) n21_register_hud(WEAPON_OLD, WEAPON_NEW2) n21_register_hud(WEAPON_OLD, WEAPON_NEW3) n21_register_hud(WEAPON_OLD, WEAPON_NEW4) n21_register_hud(WEAPON_OLD, WEAPON_NEW5) ... } так теперь необходимо закачать клиенту сам спрайт и специальные .txt файлы с именами наших новых ножей, т.е. мы должны настроить 5 файлов Code weapon_knife1.txt weapon_knife2.txt weapon_knife2.txt weapon_knife3.txt weapon_knife5.txt Cодержимое файлов можно посмотреть во вложении Стоит отметить, что в 1 спрайт влезает до 5 худов оружий public plugin_precache() { precache_generic("sprites/weapon_knife1.txt") precache_generic("sprites/weapon_knife2.txt") precache_generic("sprites/weapon_knife3.txt") precache_generic("sprites/weapon_knife4.txt") precache_generic("sprites/weapon_knife5.txt") precache_generic("sprites/custom_hud/640hud21.spr") } Чтоб мы могли всё это дело проверить зарегистрируем команды в plugin_init : Code register_clcmd("say /k1", "knife_1") register_clcmd("say /k2", "knife_2") register_clcmd("say /k3", "knife_3") register_clcmd("say /k4", "knife_4") register_clcmd("say /k5", "knife_5") register_clcmd("say /k6", "knife_old") Вот и сами функции: Code public knife_1(id) n21_hud_change_to(id, WEAPON_OLD, WEAPON_NEW1) public knife_2(id) n21_hud_change_to(id, WEAPON_OLD, WEAPON_NEW2) public knife_3(id) n21_hud_change_to(id, WEAPON_OLD, WEAPON_NEW3) public knife_4(id) n21_hud_change_to(id, WEAPON_OLD, WEAPON_NEW4) public knife_5(id) n21_hud_change_to(id, WEAPON_OLD, WEAPON_NEW5) public knife_old(id) n21_hud_change_to(id, WEAPON_OLD, WEAPON_OLD) Структура функции n21_hud_change_to 1 аргумент - id игрока 2 аргумент - имя оружия, худ которого мы меняем 3 аргумент - имя нового оружия Такой вызов функции: Code n21_hud_change_to(id, "weapon_knife", "weapon_knife") вернёт стандартный худ указанного оружия Таким образом в результате мы получаем такой тестовый плагин: Code #include <amxmodx> #include <hud> #define PLUGIN "Hud Test" #define AUTHOR "trofian" #define VERSION "1.0" #define WEAPON_OLD "weapon_knife" #define WEAPON_NEW1 "weapon_knife1" #define WEAPON_NEW2 "weapon_knife2" #define WEAPON_NEW3 "weapon_knife3" #define WEAPON_NEW4 "weapon_knife4" #define WEAPON_NEW5 "weapon_knife5" public plugin_precache() { precache_generic("sprites/weapon_knife1.txt") precache_generic("sprites/weapon_knife2.txt") precache_generic("sprites/weapon_knife3.txt") precache_generic("sprites/weapon_knife4.txt") precache_generic("sprites/weapon_knife5.txt") precache_generic("sprites/custom_hud/640hud21.spr") } public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) n21_register_hud(WEAPON_OLD, WEAPON_NEW1) n21_register_hud(WEAPON_OLD, WEAPON_NEW2) n21_register_hud(WEAPON_OLD, WEAPON_NEW3) n21_register_hud(WEAPON_OLD, WEAPON_NEW4) n21_register_hud(WEAPON_OLD, WEAPON_NEW5) register_clcmd("say /k1", "knife_1") register_clcmd("say /k2", "knife_2") register_clcmd("say /k3", "knife_3") register_clcmd("say /k4", "knife_4") register_clcmd("say /k5", "knife_5") register_clcmd("say /k6", "knife_old") } public knife_1(id) n21_hud_change_to(id, WEAPON_OLD, WEAPON_NEW1) public knife_2(id) n21_hud_change_to(id, WEAPON_OLD, WEAPON_NEW2) public knife_3(id) n21_hud_change_to(id, WEAPON_OLD, WEAPON_NEW3) public knife_4(id) n21_hud_change_to(id, WEAPON_OLD, WEAPON_NEW4) public knife_5(id) n21_hud_change_to(id, WEAPON_OLD, WEAPON_NEW5) public knife_old(id) n21_hud_change_to(id, WEAPON_OLD, WEAPON_OLD) Пример и все файлы скачать можно ниже | |
Просмотров: 726 | Рейтинг: 0.0/0 |
Всего комментариев: 0 | |