Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

Здравствуйте, гость Вход | Регистрация

Наши новости:

14-дек
24-апр
10-апр
11-апр

HealthBar Boss

Статус пользователя $@NyA
сообщение 4.4.2019, 21:45
Сообщение #1


Иконка группы

Стаж: 18 лет

Сообщений: 987
Благодарностей: 529
Полезность: 1050

Есть плагин для Зомби Мода,который показывает спрайт жизни Зомби.

Я убрал все для Зомби.
Проблема в том ,что для КТ спрайт показывает и при уроне уменьшает его.

А для Босса Т он стоит на месте при уроне.
Но я еще незнаю ,сколько ХП у Мутанта,т.к исхода нету.

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

Что тут нужно добавить?
Спасибо за внимание.

Код:
  #include <amxmodx>
#include <fakemeta>
#include <hamsandwich>

#define PLUGIN "Boss_HealthBar"
#define VERSION "1.0"
#define AUTHOR "Dias : BlackCat (bug fix)"

new const healthbar_spr[] = "sprites/boss_healthbar/zg_healthbar.spr"
new g_playerbar[33] , g_isAlive[33]
new g_playerMaxHealth[33]

public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)

RegisterHam(Ham_Spawn, "player", "ham_spawn_post", 1)
register_forward(FM_AddToFullPack, "fm_addtofullpack_post", 1)

register_event("ResetHUD", "event_resethud", "be")
register_event("DeathMsg", "event_death", "a")
register_event("Health", "event_health", "be")

make_healthbar()
}

public make_healthbar()
{
static playerBar, allocString
allocString = engfunc(EngFunc_AllocString, "env_sprite")

for( new id = 1; id <= get_maxplayers(); id ++ )
{
g_playerbar[id] = engfunc(EngFunc_CreateNamedEntity, allocString)
playerBar = g_playerbar[id]

if(pev_valid(playerBar))
{
set_pev(playerBar, pev_scale, 0.65)
engfunc(EngFunc_SetModel, playerBar, healthbar_spr)
set_pev(playerBar, pev_effects, pev(playerBar, pev_effects ) | EF_NODRAW)
}
}
}

public plugin_precache() engfunc(EngFunc_PrecacheModel, healthbar_spr)

public ham_spawn_post(id)
{
if(is_user_alive(id))
{
g_isAlive[id] = 1
}
}

public client_disconnect(id)
{
set_pev(g_playerbar[id], pev_effects, pev(g_playerbar[id], pev_effects) | EF_NODRAW)
}

public event_resethud(id)
{
set_pev(g_playerbar[id], pev_effects, pev(g_playerbar[id], pev_effects) | EF_NODRAW)
}

public event_death()
{
new id = read_data(2)

g_isAlive[id] = 0
set_pev(g_playerbar[id], pev_effects, pev(g_playerbar[id], pev_effects) | EF_NODRAW)
}

public event_health(id)
{
new hp = get_user_health(id)

if(g_playerMaxHealth[id] < hp)
{
g_playerMaxHealth[id] = hp
set_pev(g_playerbar[id], pev_frame, 99.0)
}
else
{
set_pev(g_playerbar[id], pev_frame, 0.0 + (((hp - 1) * 100) / g_playerMaxHealth[id]))
}
}

public fm_addtofullpack_post(es, e, user, host, host_flags, player, p_set)
{
if(!player)
return FMRES_IGNORED

if(!is_user_alive(host) || !is_user_alive(user) || get_user_team(user) == 2)
return FMRES_IGNORED

if(host == user)
return FMRES_IGNORED

new Float:PlayerOrigin[3]
pev(user, pev_origin, PlayerOrigin)

PlayerOrigin[2] += 60.0

engfunc(EngFunc_SetOrigin, g_playerbar[user], PlayerOrigin)
set_pev(g_playerbar[user], pev_effects, pev(g_playerbar[user], pev_effects) & ~EF_NODRAW)

return FMRES_HANDLED
}



МультиМод CS
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: