Code:
#include <amxmodx>
#include <hamsandwich>
#include <fakemeta>
#include <crxranks>
new g_beamspriteindex
new cv_trace_color_r, cv_trace_color_g, cv_trace_color_b
public plugin_init()
{
register_plugin("colored traces", "1.0", "ainsley harriott")
registerham(ham_traceattack, "player", "ontraceattackpost", 1)
registerham(ham_traceattack, "worldspawn", "ontraceattackpost", 1)
registerham(ham_traceattack, "func_wall", "ontraceattackpost", 1)
registerham(ham_traceattack, "func_wall_toggle", "ontraceattackpost", 1)
registerham(ham_traceattack, "func_door", "ontraceattackpost", 1)
registerham(ham_traceattack, "func_door_rotating", "ontraceattackpost", 1)
registerham(ham_traceattack, "func_breakable", "ontraceattackpost", 1)
registerham(ham_traceattack, "func_button", "ontraceattackpost", 1)
cv_trace_color_r = register_cvar("trace_color_red", "255")
cv_trace_color_g = register_cvar("trace_color_green", "215")
cv_trace_color_b = register_cvar("trace_color_blue", "0")
}
public plugin_precache()
{
g_beamspriteindex = precache_model("sprites/laserbeam.spr")
}
public ontraceattackpost(index, attacker, float:damage, float:dir[3], tr, damagebits)
{
if (!(damagebits & dmg_bullet))
{
return
}
if (!is_user_connected(attacker))
{
return
}
if (crxranks_get_user_level(attacker) < 33)
{
return
}
new float:endpos[3]
get_tr2(tr, tr_vecendpos, endpos)
new red = clamp(get_pcvar_num(cv_trace_color_r), 0, 255)
new green = clamp(get_pcvar_num(cv_trace_color_g), 0, 255)
new blue = clamp(get_pcvar_num(cv_trace_color_b), 0, 255)
message_begin(msg_broadcast, svc_tempentity)
write_byte(te_beamentpoint)
write_short(attacker | 0x1000)
write_coord_f(endpos[0])
write_coord_f(endpos[1])
write_coord_f(endpos[2])
write_short(g_beamspriteindex)
write_byte(0)
write_byte(0)
write_byte(2)
write_byte(10)
write_byte(0)
write_byte(red)
write_byte(green)
write_byte(blue)
write_byte(200)
write_byte(0)
message_end()
}