Русское сообщество по скриптингу

[INC] Смена HUD у оружия (Weapon Custom Hud)

Статьи или фрагменты кода для новичков и уже опытных скриптеров по AMXX.

Модератор: Chuvi

Правила форума
1. Запрещено материться и оскорблять других участников форума.
2. Запрещен флуд, оффтоп, дабл постинг во всех разделах форума, кроме раздела "Болтовня".
3. Запрещено взламывать сайт/форум или наносить любой вред проекту.
4. Запрещено рекламировать другие ресурсы.
5. Запрещено создавать темы без информативного названия. Название темы должно отображать ее смысл.

В данном разделе форума разрешено создавать темы, касающие только обучающему материалу по AMX Mod X.

[INC] Смена HUD у оружия (Weapon Custom Hud)

Сообщение Polarhigh » 24 янв 2012, 22:19

Автор статьи: trofian
Автор плагина: trofian

Итак, относительно недавно нашли способ менять hud у оружия, так же hud патронов и т.п.
Этот плагин поможет избавиться от некоторой нудной работы, такой как поиск офсетов, добавления своих дополнительных функций и регистрирования команд типа register_clcmd("weapon_mygun", "switch_handler")

Сейчас всё объясню на примере тестового плагина, который меняет hud ножу
Прежде всего подключаем инклуд
[pawn]
  1. #include <hud>
[/pawn]

Далее удобнее определить константы нашего старого оружия и нового
[pawn]
  1. #define WEAPON_OLD "weapon_knife"

  2.  

  3. #define WEAPON_NEW1 "weapon_knife1"

  4. #define WEAPON_NEW2 "weapon_knife2"

  5. #define WEAPON_NEW3 "weapon_knife3"

  6. #define WEAPON_NEW4 "weapon_knife4"

  7. #define WEAPON_NEW5 "weapon_knife5"
[/pawn]

теперь в plugin_init() зарегистрируем все эти худы
[pawn]
  1. public plugin_init()

  2. {

  3. ...

  4.  n21_register_hud(WEAPON_OLD, WEAPON_NEW1)

  5.  n21_register_hud(WEAPON_OLD, WEAPON_NEW2)

  6.  n21_register_hud(WEAPON_OLD, WEAPON_NEW3)

  7.  n21_register_hud(WEAPON_OLD, WEAPON_NEW4)

  8.  n21_register_hud(WEAPON_OLD, WEAPON_NEW5)

  9. ...

  10. }
[/pawn]

так теперь необходимо закачать клиенту сам спрайт и специальные .txt файлы с именами наших новых ножей, т.е. мы должны настроить 5 файлов
Код: Выделить всё
weapon_knife1.txt
weapon_knife2.txt
weapon_knife2.txt
weapon_knife3.txt
weapon_knife5.txt


Cодержимое файлов можно посмотреть во вложении
Стоит отметить, что в 1 спрайт влезает до 5 худов оружий
[pawn]
  1. public plugin_precache()

  2. {

  3.  precache_generic("sprites/weapon_knife1.txt")

  4.  precache_generic("sprites/weapon_knife2.txt")

  5.  precache_generic("sprites/weapon_knife3.txt")

  6.  precache_generic("sprites/weapon_knife4.txt")

  7.  precache_generic("sprites/weapon_knife5.txt")

  8.  

  9.  precache_generic("sprites/custom_hud/640hud21.spr")

  10. }
[/pawn]

Чтоб мы могли всё это дело проверить зарегистрируем команды в plugin_init :
[pawn]
  1. register_clcmd("say /k1", "knife_1")

  2. register_clcmd("say /k2", "knife_2")

  3. register_clcmd("say /k3", "knife_3")

  4. register_clcmd("say /k4", "knife_4")

  5. register_clcmd("say /k5", "knife_5")

  6. register_clcmd("say /k6", "knife_old")
[/pawn]

Вот и сами функции:
[pawn]
  1. public knife_1(id)      n21_hud_change_to(id, WEAPON_OLD, WEAPON_NEW1)

  2. public knife_2(id)      n21_hud_change_to(id, WEAPON_OLD, WEAPON_NEW2)

  3. public knife_3(id)      n21_hud_change_to(id, WEAPON_OLD, WEAPON_NEW3)

  4. public knife_4(id)      n21_hud_change_to(id, WEAPON_OLD, WEAPON_NEW4)

  5. public knife_5(id)      n21_hud_change_to(id, WEAPON_OLD, WEAPON_NEW5)

  6. public knife_old(id)    n21_hud_change_to(id, WEAPON_OLD, WEAPON_OLD)
[/pawn]

Структура функции n21_hud_change_to
1 аргумент - id игрока
2 аргумент - имя оружия, худ которого мы меняем
3 аргумент - имя нового оружия

Такой вызов функции:
[pawn]
  1. n21_hud_change_to(id, "weapon_knife", "weapon_knife")
[/pawn]
вернёт стандартный худ указанного оружия

Таким образом в результате мы получаем такой тестовый плагин:
[pawn]
  1. #include <amxmodx>

  2. #include <hud>

  3.  

  4. #define PLUGIN  "Hud Test"

  5. #define AUTHOR  "trofian"

  6. #define VERSION "1.0"

  7.  

  8. #define WEAPON_OLD "weapon_knife"

  9.  

  10. #define WEAPON_NEW1 "weapon_knife1"

  11. #define WEAPON_NEW2 "weapon_knife2"

  12. #define WEAPON_NEW3 "weapon_knife3"

  13. #define WEAPON_NEW4 "weapon_knife4"

  14. #define WEAPON_NEW5 "weapon_knife5"

  15.  

  16. public plugin_precache()

  17. {

  18.         precache_generic("sprites/weapon_knife1.txt")

  19.         precache_generic("sprites/weapon_knife2.txt")

  20.         precache_generic("sprites/weapon_knife3.txt")

  21.         precache_generic("sprites/weapon_knife4.txt")

  22.         precache_generic("sprites/weapon_knife5.txt")

  23.        

  24.         precache_generic("sprites/custom_hud/640hud21.spr")

  25. }

  26.  

  27. public plugin_init()

  28. {

  29.         register_plugin(PLUGIN, VERSION, AUTHOR)

  30.        

  31.         n21_register_hud(WEAPON_OLD, WEAPON_NEW1)

  32.         n21_register_hud(WEAPON_OLD, WEAPON_NEW2)

  33.         n21_register_hud(WEAPON_OLD, WEAPON_NEW3)

  34.         n21_register_hud(WEAPON_OLD, WEAPON_NEW4)

  35.         n21_register_hud(WEAPON_OLD, WEAPON_NEW5)

  36.        

  37.         register_clcmd("say /k1", "knife_1")

  38.         register_clcmd("say /k2", "knife_2")

  39.         register_clcmd("say /k3", "knife_3")

  40.         register_clcmd("say /k4", "knife_4")

  41.         register_clcmd("say /k5", "knife_5")

  42.         register_clcmd("say /k6", "knife_old")

  43. }

  44.  

  45. public knife_1(id)      n21_hud_change_to(id, WEAPON_OLD, WEAPON_NEW1)

  46. public knife_2(id)      n21_hud_change_to(id, WEAPON_OLD, WEAPON_NEW2)

  47. public knife_3(id)      n21_hud_change_to(id, WEAPON_OLD, WEAPON_NEW3)

  48. public knife_4(id)      n21_hud_change_to(id, WEAPON_OLD, WEAPON_NEW4)

  49. public knife_5(id)      n21_hud_change_to(id, WEAPON_OLD, WEAPON_NEW5)

  50. public knife_old(id)    n21_hud_change_to(id, WEAPON_OLD, WEAPON_OLD)
[/pawn]

Во вложении приложены необходимые файлы, о настройке .txt файлов будет информация чуть позже, хотя вы можете сами изучить hud.txt и сделать по анологии свои файлы

Важно понимать, что это всего лишь пример, это НЕ готовая реализация, вы можете использовать функции, которые предоставляет плагин, как угодно и где угодно, он всего лишь избавляет от рутины, логику работы вы продумываете сами, вас не заставляют придерживаться каких-то рамок.

Необходимо что бы плагин custom_hud.amxx был выше в списке plugins.ini плагинов использующих инклуд hud.inc

Хочу отметить что плагин custom_hud.amxx который есть в приложении подключить нужно обязательно!
Последний раз редактировалось Polarhigh 25 май 2013, 12:24, всего редактировалось 14 раз(а).
Аватара пользователя
Polarhigh
 
Сообщения: 1006
Зарегистрирован: 04 май 2010, 17:41
Благодарил (а): 131 раз.
Поблагодарили: 388 раз.
Опыт программирования: Больше трех лет

Re: [INC] Смена HUD у оружия (Weapon Custom Hud)

Сообщение Polarhigh » 10 фев 2013, 23:30

я это делал в FM_SetModel, но так как ты сделал тоже должно было бы работать
скорее всего у тебя карма такая

Добавлено спустя 1 минуту 24 секунды:
Stimul писал(а):А есть у кого то спрайты ножей из CSO, combat, katana, axe, strong и т.д.? В инете найти не могу.

их можно и самому сделать или зайти на сервер к сисе (или у кого там спрайты меняные, у боса ещё вроде) и стырить у них
Аватара пользователя
Polarhigh
 
Сообщения: 1006
Зарегистрирован: 04 май 2010, 17:41
Благодарил (а): 131 раз.
Поблагодарили: 388 раз.
Опыт программирования: Больше трех лет

Re: [INC] Смена HUD у оружия (Weapon Custom Hud)

Сообщение Stimul » 10 фев 2013, 23:54

trofian, нашел спрайты, открыл программой Sprite Explorer.

Там много оружий на картинке.
Вы должны зарегистрироваться, чтобы видеть ссылки.

Как мне поставить спрайт, например ножа Axe? Что в текстовом файле должно быть?
Аватара пользователя
Stimul
 
Сообщения: 3582
Зарегистрирован: 04 янв 2012, 19:51
Благодарил (а): 192 раз.
Поблагодарили: 1163 раз.
Опыт программирования: Больше трех лет

Re: [INC] Смена HUD у оружия (Weapon Custom Hud)

Сообщение Polarhigh » 11 фев 2013, 00:08

тебе нужен размер акса такой же как и узи (или что это) в левом верхнем углу, остальные картинки предназначены скорее всего для худа убийств
Аватара пользователя
Polarhigh
 
Сообщения: 1006
Зарегистрирован: 04 май 2010, 17:41
Благодарил (а): 131 раз.
Поблагодарили: 388 раз.
Опыт программирования: Больше трех лет

Re: [INC] Смена HUD у оружия (Weapon Custom Hud)

Сообщение vampir » 11 фев 2013, 00:11

Прошу не тревожить на счет плагинов или дополнений в ZP. Я в инактиве!!!
Аватара пользователя
vampir
 
Сообщения: 625
Зарегистрирован: 02 авг 2010, 13:27
Откуда: Уфа
Благодарил (а): 138 раз.
Поблагодарили: 91 раз.
Языки программирования: Counter-Strike 1.6

Re: [INC] Смена HUD у оружия (Weapon Custom Hud)

Сообщение Stimul » 11 фев 2013, 00:18

vampir, а катаны случайно нет? :-[
Аватара пользователя
Stimul
 
Сообщения: 3582
Зарегистрирован: 04 янв 2012, 19:51
Благодарил (а): 192 раз.
Поблагодарили: 1163 раз.
Опыт программирования: Больше трех лет

Re: [INC] Смена HUD у оружия (Weapon Custom Hud)

Сообщение vampir » 11 фев 2013, 00:24

Нету.
Прошу не тревожить на счет плагинов или дополнений в ZP. Я в инактиве!!!
Аватара пользователя
vampir
 
Сообщения: 625
Зарегистрирован: 02 авг 2010, 13:27
Откуда: Уфа
Благодарил (а): 138 раз.
Поблагодарили: 91 раз.
Языки программирования: Counter-Strike 1.6

Re: [INC] Смена HUD у оружия (Weapon Custom Hud)

Сообщение Rejiser » 11 фев 2013, 09:06

Stimul писал(а):vampir, а катаны случайно нет? :-[

Покажи скрин, может найду
Аватара пользователя
Rejiser
 
Сообщения: 2928
Зарегистрирован: 03 сен 2010, 16:23
Благодарил (а): 215 раз.
Поблагодарили: 675 раз.
Языки программирования: Counter-Strike 1.6

Re: [INC] Смена HUD у оружия (Weapon Custom Hud)

Сообщение Stimul » 11 фев 2013, 10:53

Аватара пользователя
Stimul
 
Сообщения: 3582
Зарегистрирован: 04 янв 2012, 19:51
Благодарил (а): 192 раз.
Поблагодарили: 1163 раз.
Опыт программирования: Больше трех лет

Re: [INC] Смена HUD у оружия (Weapon Custom Hud)

Сообщение vampir » 11 фев 2013, 11:04

Stimul, на первом скрине и есть катана разве нет?
Прошу не тревожить на счет плагинов или дополнений в ZP. Я в инактиве!!!
Аватара пользователя
vampir
 
Сообщения: 625
Зарегистрирован: 02 авг 2010, 13:27
Откуда: Уфа
Благодарил (а): 138 раз.
Поблагодарили: 91 раз.
Языки программирования: Counter-Strike 1.6

Re: [INC] Смена HUD у оружия (Weapon Custom Hud)

Сообщение Stimul » 11 фев 2013, 16:40

vampir, да, 2-ой не знаю как называется.
Аватара пользователя
Stimul
 
Сообщения: 3582
Зарегистрирован: 04 янв 2012, 19:51
Благодарил (а): 192 раз.
Поблагодарили: 1163 раз.
Опыт программирования: Больше трех лет

Пред.След.

Вернуться в Статьи / фрагменты кода

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 6