Перевод и редактирование: DJ_WEST
Иконка статуса - это HUD иконка, которая располагается на экране игрока и используется в определенных случаях для определения статуса игрока. В данной статье мы рассмотрим способ создания такой иконки. За данную иконку отвечает сообщение с названием StatusIcon.
Структура данного сообщения:
Status byte Статус сообщения SpriteName string Название спрайта ColorR byte Цвет R (красный) ColorG byte Цвет G (зеленый) ColorB byte Цвет B (синий)
Статус сообщения может быть следующим:
- 0 - спрятать иконку
- 1 - показать иконку
- 2 - обновить иконку
Итак, начнем:
1. Прежде всего нам необходимо создать глобальную переменную для хранения ID сообщения, которое отвечает за такого рода иконку:
- Код: Выделить всё
new g_IconStatus
2. В plugin_init мы получаем ID сообщения и сохраняем его в переменную g_IconStatus :
- Код: Выделить всё
g_IconStatus = get_user_msgid("StatusIcon")
3. Для того чтобы отобразить иконку статуса, нам необходимо создать сообщение следующим образом:
- Код: Выделить всё
message_begin(MSG_ONE_UNRELIABLE, g_IconStatus, {0,0,0}, id)
4. Дальше нам необходимо передать байт, отвечающий за статус сообщения:
- Код: Выделить всё
write_byte(1)
1 - означает показ иконки.
5. Затем необходимо передать название спрайта:
- Код: Выделить всё
write_string("имя спрайта")
6. Теперь нам нужно передать цвет иконки:
- Код: Выделить всё
write_byte(r)
write_byte(g)
write_byte(b)
7. Завершаем сообщение следующим образом:
- Код: Выделить всё
message_end()
Примерный плагин:
- Код: Выделить всё
#include <amxmodx>
#include <fakemeta>
new g_IconStatus
public plugin_init()
{
register_plugin("Status Icon", "0.1", "SAMURAI")
register_forward(FM_PlayerPreThink, "Pre_Think")
g_IconStatus = get_user_msgid("StatusIcon")
}
public Pre_Think(id)
{
if (!(pev(id,pev_button) & FL_ONGROUND))
{
message_begin(MSG_ONE_UNRELIABLE, g_IconStatus, {0,0,0}, id)
write_byte(1)
write_string("dmg_poison")
write_byte(0)
write_byte(255)
write_byte(0)
message_end()
}
}
[align=center]
[/align]Список названий спрайтов, которые могут быть использованы:
- Код: Выделить всё
selection
bucket1
bucket2
bucket3
bucket4
bucket5
bucket0
dmg_bio
dmg_poison
dmg_chem
dmg_cold
dmg_drown
dmg_heat
dmg_gas
dmg_rad
dmg_shock
number_0
number_1
number_2
number_3
number_4
number_5
number_6
number_7
number_8
number_9
divider
cross
dollar
minus
plus
c4
defuser
stopwatch
smallskull
smallc4
smallvip
buyzone
rescue
escape
vipsafety
suit_full
suit_empty
suithelmet_full
suithelmet_empty
flash_full
flash_empty
flash_beam
train_back
train_stop
train_forward1
train_forward2
train_forward3
autoaim_c
title_half
title_life
d_knife
d_ak47
d_awp
d_deagle
d_flashbang
d_fiveseven
d_g3sg1
d_glock18
d_grenade
d_m249
d_m3
d_m4a1
d_mp5navy
d_p228
d_p90
d_scout
d_sg550
d_sg552
d_ump45
d_usp
d_tmp
d_xm1014
d_skull
d_tracktrain
d_aug
d_mac10
d_elite
d_headshot
item_battery
item_healthkit
item_longjump
radar