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

HealthBar Boss

Все вопросы по скриптингу для AMXX, помощь в редактировании плагинов.

Модераторы: Subb98, liFe iS GoOD

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

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

Правила при создании новой темы:
1. При вставке кода плагина необходимо использовать тег [code=php].
2. Любые изображения должны быть загружены, как вложения к вашему сообщению.
3. При описании проблемы или запросе на помощь в редактировании плагина обязательно выкладывайте исходник sma плагина.

HealthBar Boss

Сообщение MayroN » 04 апр 2019, 23:47

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

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

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

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

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

Код: Выделить всё
  #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(PLUGINVERSIONAUTHOR)
    
    
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 
playerBarallocString
    allocString 
engfunc(EngFunc_AllocString"env_sprite")
    
    for( new 
id 1id <= get_maxplayers(); id ++ )
    {
        
g_playerbar[id] = engfunc(EngFunc_CreateNamedEntityallocString)
        
playerBar g_playerbar[id]
        
        if(
pev_valid(playerBar))
        {
            
set_pev(playerBarpev_scale0.65)
            
engfunc(EngFunc_SetModelplayerBarhealthbar_spr)
            
set_pev(playerBarpev_effectspev(playerBarpev_effects ) | EF_NODRAW)
        }
    }    
}

public 
plugin_precache() engfunc(EngFunc_PrecacheModelhealthbar_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_effectspev(g_playerbar[id], pev_effects) | EF_NODRAW)
}

public 
event_resethud(id)
{
    
set_pev(g_playerbar[id], pev_effectspev(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_effectspev(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_frame99.0)
    }
    else
    {
        
set_pev(g_playerbar[id], pev_frame0.0 + (((hp 1) * 100) / g_playerMaxHealth[id]))
    }
}

public 
fm_addtofullpack_post(eseuserhosthost_flagsplayerp_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(userpev_originPlayerOrigin)
                            
    
PlayerOrigin[2] += 60.0
                        
    engfunc
(EngFunc_SetOriging_playerbar[user], PlayerOrigin)
    
set_pev(g_playerbar[user], pev_effectspev(g_playerbar[user], pev_effects) & ~EF_NODRAW)

    return 
FMRES_HANDLED
}
   
МультиМод CS
Аватара пользователя
MayroN
 
Сообщения: 673
Зарегистрирован: 10 окт 2010, 18:23
Откуда: Украина, г. Белая Церковь
Благодарил (а): 149 раз.
Поблагодарили: 86 раз.
Опыт программирования: Около года
Языки программирования: На которых говорю...

Re: HealthBar Boss

Сообщение артист666 » 05 апр 2019, 07:16

В fm_addtofullpack_post
Код: Выделить всё
if(!is_user_alive(host) || !is_user_alive(user) || get_user_team(user) == 2)
        return 
FMRES_IGNORED
Если вы хотите чему-то научиться, пробуйте, задавайте вопросы.
Иначе компенсируйте потраченное время на ваши "проблемы".
Аватара пользователя
артист666
 
Сообщения: 2706
Зарегистрирован: 09 апр 2013, 17:46
Благодарил (а): 284 раз.
Поблагодарили: 639 раз.
Опыт программирования: Больше трех лет
Языки программирования: С, C++
Delphi
HTML, CSS, Java Script
Pawn

Re: HealthBar Boss

Сообщение MayroN » 05 апр 2019, 22:02

артист666,
Тю,блин.Я,что то недоглядел эту мелочь.
Спасибо.
МультиМод CS
Аватара пользователя
MayroN
 
Сообщения: 673
Зарегистрирован: 10 окт 2010, 18:23
Откуда: Украина, г. Белая Церковь
Благодарил (а): 149 раз.
Поблагодарили: 86 раз.
Опыт программирования: Около года
Языки программирования: На которых говорю...

Re: HealthBar Boss

Сообщение MayroN » 23 апр 2019, 17:42

артист666 писал(а):В fm_addtofullpack_post
Код: Выделить всё
if(!is_user_alive(host) || !is_user_alive(user) || get_user_team(user) == 2)
        return FMRES_IGNORED


Оно то так и отображает для Терров ( Боссов ) спрайт,но он неуменьшаеться при уроне Босса.
Что там может быть не так?
МультиМод CS
Аватара пользователя
MayroN
 
Сообщения: 673
Зарегистрирован: 10 окт 2010, 18:23
Откуда: Украина, г. Белая Церковь
Благодарил (а): 149 раз.
Поблагодарили: 86 раз.
Опыт программирования: Около года
Языки программирования: На которых говорю...

Re: HealthBar Boss

Сообщение артист666 » 23 апр 2019, 17:53

Я уже не понимаю, что нужно. ))
Не играл на зп, и х.з. кто там мутант...
Если вы хотите чему-то научиться, пробуйте, задавайте вопросы.
Иначе компенсируйте потраченное время на ваши "проблемы".
Аватара пользователя
артист666
 
Сообщения: 2706
Зарегистрирован: 09 апр 2013, 17:46
Благодарил (а): 284 раз.
Поблагодарили: 639 раз.
Опыт программирования: Больше трех лет
Языки программирования: С, C++
Delphi
HTML, CSS, Java Script
Pawn


Вернуться в Скриптинг

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

Сейчас этот форум просматривают: Yandex [Bot] и гости: 14