#include <amxmodx>
#include <fakemeta>
#include <engine>
#include <reapi>
new g_eff_spr_lightning_T, g_eff_spr_lightning_CT
new g_eff_spr_smoke_T, g_eff_spr_smoke_CT
new g_ThunderSound_T[] = "ambience/thunder_clap.wav"
new g_ThunderSound_CT[] = "ambience/forest.wav"
public plugin_precache()
{
g_eff_spr_lightning_T = precache_model("sprites/lgtning.spr")
g_eff_spr_smoke_T = precache_model("sprites/black_smoke3.spr")
g_eff_spr_lightning_CT = precache_model("sprites/zbeam4.spr")
g_eff_spr_smoke_CT = precache_model("sprites/steam1.spr")
precache_sound(g_ThunderSound_T)
precache_sound(g_ThunderSound_CT)
}
public plugin_init()
{
register_plugin("Thunder on HS Death", "1.0", "Bhaxx")
register_event("DeathMsg", "event_death", "a")
}
public event_death()
{
new victim = read_data(2)
new attacker = read_data(1)
new hs = read_data(3)
if (hs != 1)
return
if (!attacker || !is_user_connected(attacker) || attacker == victim)
return
new attacker_team = get_user_team(attacker)
new victim_team = get_user_team(victim)
new lightning_spr, smoke_spr
new sound_path[64]
if (attacker_team == 1)
{
lightning_spr = g_eff_spr_lightning_T
smoke_spr = g_eff_spr_smoke_T
copy(sound_path, charsmax(sound_path), g_ThunderSound_T)
}
else if (attacker_team == 2)
{
lightning_spr = g_eff_spr_lightning_CT
smoke_spr = g_eff_spr_smoke_CT
copy(sound_path, charsmax(sound_path), g_ThunderSound_CT)
}
else
{
return
}
new Float:origin[3], Float:endUp[3], Float:endDown[3], trace
pev(victim, pev_origin, origin)
endUp[0] = origin[0]
endUp[1] = origin[1]
endUp[2] = origin[2] + 8192.0
engfunc(EngFunc_TraceLine, origin, endUp, IGNORE_MONSTERS, victim, trace)
get_tr2(trace, TR_vecEndPos, endUp)
endDown[0] = origin[0]
endDown[1] = origin[1]
endDown[2] = origin[2] - 8192.0
engfunc(EngFunc_TraceLine, origin, endDown, IGNORE_MONSTERS, victim, trace)
get_tr2(trace, TR_vecEndPos, endDown)
rg_play_user_sound(attacker, sound_path, true)
new r, g, b
if (attacker_team == 1)
{
r = 255
g = 100
b = 0
}
else
{
r = 0
g = 100
b = 255
}
engfunc(EngFunc_MessageBegin, MSG_PVS, SVC_TEMPENTITY, origin, 0)
write_byte(TE_BEAMPOINTS)
engfunc(EngFunc_WriteCoord, origin[0])
engfunc(EngFunc_WriteCoord, origin[1])
engfunc(EngFunc_WriteCoord, origin[2])
engfunc(EngFunc_WriteCoord, endUp[0])
engfunc(EngFunc_WriteCoord, endUp[1])
engfunc(EngFunc_WriteCoord, endUp[2])
write_short(lightning_spr)
write_byte(0)
write_byte(0)
write_byte(6)
write_byte(30)
write_byte(10)
write_byte(0)
write_byte(r)
write_byte(g)
write_byte(b)
write_byte(0)
message_end()
engfunc(EngFunc_MessageBegin, MSG_PVS, SVC_TEMPENTITY, origin, 0)
write_byte(TE_BEAMCYLINDER)
engfunc(EngFunc_WriteCoord, origin[0])
engfunc(EngFunc_WriteCoord, origin[1])
engfunc(EngFunc_WriteCoord, origin[2] - 16.0)
engfunc(EngFunc_WriteCoord, origin[0])
engfunc(EngFunc_WriteCoord, origin[1])
engfunc(EngFunc_WriteCoord, origin[2] + 32.0)
write_short(lightning_spr)
write_byte(0)
write_byte(0)
write_byte(5)
write_byte(32)
write_byte(0)
write_byte(0)
write_byte(r)
write_byte(g)
write_byte(b)
write_byte(0)
message_end()
engfunc(EngFunc_MessageBegin, MSG_PVS, SVC_TEMPENTITY, origin, 0)
write_byte(TE_SMOKE)
engfunc(EngFunc_WriteCoord, origin[0])
engfunc(EngFunc_WriteCoord, origin[1])
engfunc(EngFunc_WriteCoord, origin[2] - 16.0)
write_short(smoke_spr)
write_byte(7)
write_byte(30)
message_end()
engfunc(EngFunc_MessageBegin, MSG_PVS, SVC_TEMPENTITY, origin, 0)
write_byte(TE_WORLDDECAL)
engfunc(EngFunc_WriteCoord, endDown[0])
engfunc(EngFunc_WriteCoord, endDown[1])
engfunc(EngFunc_WriteCoord, endDown[2])
write_byte(46)
message_end()
}