具体是啥不用知道……只要同喜就行了 一人一盒杜蕾斯 别客气
#include <amxmodx>
#include <fakemeta>
#include <zombieplague>
#include <fun>
#define fm_get_user_button(%1) pev(%1, pev_button)
new const g_sound_pressure[] = "zombie_plague/zombi_pressure.wav"
new zmkillcount[34]
new onrage[34]
new cvar_spendhp, cvar_rageduration, cvar_xspeed, cvar_szombiefov
new redScreen
public plugin_precache()
{
precache_sound(g_sound_pressure)
return PLUGIN_CONTINUE
}
public plugin_init()
{
register_plugin("[ZP]Zombie-Rage", "1.2", "ding ding")
cvar_spendhp = register_cvar("zp_rage_spendhp", "500")
cvar_rageduration = register_cvar("zp_rageduration", "12")
cvar_xspeed = register_cvar("zp_xspeed", "2.5")
cvar_szombiefov = register_cvar("zp_szombiefov", "2")
register_forward(FM_PlayerPreThink, "fw_playerprethink")
register_event("RoundTime", "roundstart", "bc")
register_event("SendAudio", "roundstart", "a", "1=0")
redScreen = get_user_msgid("ScreenFade")
}
public roundstart()
{
for ( new i = 0; i < 33; i++ )
{
if( onrage[i] == 1 )
endrage(i)
zmkillcount[i] = 0
}
return PLUGIN_HANDLED
}
public zp_user_infected_post(id, infector)
{
if (zp_get_user_zombie(infector))
zmkillcount[infector] += 1
return PLUGIN_CONTINUE
}
public fw_playerprethink(id)
{
if (onrage[id] ==1)
{
set_user_maxspeed(id, (pev(id, pev_maxspeed) * 1.0 * get_pcvar_num(cvar_xspeed)))
return FMRES_HANDLED
}
else if (!is_user_alive(id))
return FMRES_IGNORED
else if (!zp_get_user_zombie(id))
return FMRES_IGNORED
else
{
new button = fm_get_user_button(id)
if (button & IN_USE && (zmkillcount[id] >= 3) && pev(id, pev_health) > get_pcvar_num(cvar_spendhp) )
{
onrage[id] = 1
message_begin(MSG_ONE_UNRELIABLE,redScreen,{0,0,0},id);
write_short(3000);
write_short(3000);
write_short(0);
write_byte(190);
write_byte(0);
write_byte(0);
write_byte(115);
message_end()
set_user_rendering(id,kRenderFxGlowShell,0,0,0,kRenderNormal,25)
engfunc(EngFunc_EmitSound, id, CHAN_VOICE, g_sound_pressure, 1.0, ATTN_NORM, 0, PITCH_NORM)
set_pev(id, pev_health, (pev(id, pev_health)*1.0 - get_pcvar_num(cvar_spendhp)))
set_pev(id, pev_fov, (pev(id, pev_fov)*1.0 * get_pcvar_num(cvar_szombiefov)))
set_task(get_pcvar_num(cvar_rageduration)*1.0, "endrage", id)
return FMRES_HANDLED
}
}
return FMRES_IGNORED
}
public endrage(id)
{
onrage[id] = 0
message_begin(MSG_ONE_UNRELIABLE,redScreen,{0,0,0},id);
write_short(5000);
write_short(5000);
write_short(0);
write_byte(110);
write_byte(0);
write_byte(0);
write_byte(105);
message_end()
set_user_rendering(id,kRenderFxGlowShell,0,0,0,kRenderNormal,25)
return PLUGIN_HANDLED
}
#include <amxmodx>
#include <fakemeta>
#include <zombieplague>
#include <fun>
#define fm_get_user_button(%1) pev(%1, pev_button)
new const g_sound_pressure[] = "zombie_plague/zombi_pressure.wav"
new zmkillcount[34]
new onrage[34]
new cvar_spendhp, cvar_rageduration, cvar_xspeed, cvar_szombiefov
new redScreen
public plugin_precache()
{
precache_sound(g_sound_pressure)
return PLUGIN_CONTINUE
}
public plugin_init()
{
register_plugin("[ZP]Zombie-Rage", "1.2", "ding ding")
cvar_spendhp = register_cvar("zp_rage_spendhp", "500")
cvar_rageduration = register_cvar("zp_rageduration", "12")
cvar_xspeed = register_cvar("zp_xspeed", "2.5")
cvar_szombiefov = register_cvar("zp_szombiefov", "2")
register_forward(FM_PlayerPreThink, "fw_playerprethink")
register_event("RoundTime", "roundstart", "bc")
register_event("SendAudio", "roundstart", "a", "1=0")
redScreen = get_user_msgid("ScreenFade")
}
public roundstart()
{
for ( new i = 0; i < 33; i++ )
{
if( onrage[i] == 1 )
endrage(i)
zmkillcount[i] = 0
}
return PLUGIN_HANDLED
}
public zp_user_infected_post(id, infector)
{
if (zp_get_user_zombie(infector))
zmkillcount[infector] += 1
return PLUGIN_CONTINUE
}
public fw_playerprethink(id)
{
if (onrage[id] ==1)
{
set_user_maxspeed(id, (pev(id, pev_maxspeed) * 1.0 * get_pcvar_num(cvar_xspeed)))
return FMRES_HANDLED
}
else if (!is_user_alive(id))
return FMRES_IGNORED
else if (!zp_get_user_zombie(id))
return FMRES_IGNORED
else
{
new button = fm_get_user_button(id)
if (button & IN_USE && (zmkillcount[id] >= 3) && pev(id, pev_health) > get_pcvar_num(cvar_spendhp) )
{
onrage[id] = 1
message_begin(MSG_ONE_UNRELIABLE,redScreen,{0,0,0},id);
write_short(3000);
write_short(3000);
write_short(0);
write_byte(190);
write_byte(0);
write_byte(0);
write_byte(115);
message_end()
set_user_rendering(id,kRenderFxGlowShell,0,0,0,kRenderNormal,25)
engfunc(EngFunc_EmitSound, id, CHAN_VOICE, g_sound_pressure, 1.0, ATTN_NORM, 0, PITCH_NORM)
set_pev(id, pev_health, (pev(id, pev_health)*1.0 - get_pcvar_num(cvar_spendhp)))
set_pev(id, pev_fov, (pev(id, pev_fov)*1.0 * get_pcvar_num(cvar_szombiefov)))
set_task(get_pcvar_num(cvar_rageduration)*1.0, "endrage", id)
return FMRES_HANDLED
}
}
return FMRES_IGNORED
}
public endrage(id)
{
onrage[id] = 0
message_begin(MSG_ONE_UNRELIABLE,redScreen,{0,0,0},id);
write_short(5000);
write_short(5000);
write_short(0);
write_byte(110);
write_byte(0);
write_byte(0);
write_byte(105);
message_end()
set_user_rendering(id,kRenderFxGlowShell,0,0,0,kRenderNormal,25)
return PLUGIN_HANDLED
}