#include <amxmodx>
new sprite
new numwpns
new weapons[32]
public plugin_init()
{
register_plugin("Lasers","0.2b","Toster v2.1")
register_cvar("ls_enabled", "1", ADMIN_KICK)
register_cvar("ls_line", "1", ADMIN_KICK)
register_cvar("ls_dist", "40", ADMIN_KICK)
register_cvar("ls_wpns", "0;4;6;9;25;29;", ADMIN_KICK)
register_cvar("ls_r", "255", ADMIN_KICK)
register_cvar("ls_g", "0", ADMIN_KICK)
register_cvar("ls_b", "0", ADMIN_KICK)
register_cvar("ls_teamcolors", "1", ADMIN_KICK)
if(get_cvar_num("ls_teamcolors")>1)
{
new cv[8]
for(new i=1; i<=get_cvar_num("ls_teamcolors"); i++)
{
format(cv, 8, "ls_r%d", i)
register_cvar(cv, "255", ADMIN_KICK)
cv[3] = 'g'
register_cvar(cv, "0", ADMIN_KICK)
cv[3] = 'b'
register_cvar(cv, "0", ADMIN_KICK)
}
}
getwpns()
}
public getwpns()
{
new txt[64]
new wpns[3]
get_cvar_string("ls_wpns", txt, 64)
add(txt, 64, " ")
for(numwpns = 0; contain(txt, ";")!=-1; numwpns++)
{
strtok(txt, wpns, 3, txt, 64, ';')
weapons[numwpns] = str_to_num(wpns)
}
}
public plugin_precache()
{
sprite = precache_model("sprites/white.spr")
}
public client_PreThink(id)
{
if(!is_user_alive(id)||get_cvar_num("ls_enabled")!=1) return PLUGIN_HANDLED
if(get_user_weapon(id) != CSW_AWP || get_user_weapon(id) != CSW_SG550 || get_user_weapon(id) != CSW_G3SG1)
{
return PLUGIN_HANDLED;
}
new clip, ammo
new w = get_user_weapon(id, clip, ammo)
for(new i=0; i<numwpns; i++) if(w == weapons[i]) return PLUGIN_HANDLED
new s[3], e[3]
new m[3], one
new f[3]
get_user_origin(id, e, 3)
if(get_cvar_num("ls_line") != 0)
{
get_user_origin(id, s, 1)
for(new i=0; i<3; i++)
{
m[i] = s[i] - e[i]
if(m[i] < 0) f[i] = m[i] * -1
else f[i] = m[i]
}
if(get_cvar_num("ls_dist")!=0) one = (f[0]+f[1]+f[2]) / get_cvar_num("ls_dist")
if(one != 0)for(new i=0; i<3; i++) s[i] = s[i] - m[i] / one
}
message_begin( MSG_BROADCAST,SVC_TEMPENTITY)
write_byte ( 0 )
if(get_cvar_num("ls_line") != 0)
{
write_coord (s[0])
write_coord (s[1])
write_coord (s[2] - 1)
write_coord (e[0])
write_coord (e[1])
write_coord (e[2])
}
else
{
write_coord (e[0] + 1)
write_coord (e[1] + 1)
write_coord (e[2] + 1)
write_coord (e[0] - 1)
write_coord (e[1] - 1)
write_coord (e[2] - 1)
}
write_short(sprite)
write_byte (0)
write_byte (10)
write_byte (1)
write_byte (5)
write_byte (0)
if(get_cvar_num("ls_teamcolors")>1)
{
new cv[8]
format(cv, 8, "ls_r%d", get_user_team(id))
write_byte (get_cvar_num(cv))
cv[3] = 'g'
write_byte (get_cvar_num(cv))
cv[3] = 'b'
write_byte (get_cvar_num(cv))
}
else
{
write_byte (get_cvar_num("ls_r"))
write_byte (get_cvar_num("ls_g"))
write_byte (get_cvar_num("ls_b"))
}
write_byte (255)
write_byte (10)
message_end()
return PLUGIN_HANDLED
}