Code:
#include <amxmodx>
#include <amxmisc>
#include <engine>
#define MAX_PLAYERS 32
new sprite
new g_nCurWeapon[MAX_PLAYERS][2]
public plugin_init()
{
register_plugin("Tracer","0.1","DahVid")
register_event("CurWeapon","set_tracer_shit","b","1=1")
register_clcmd("tr_setshit","set_tracer_shit",ADMIN_BAN)
register_cvar("tr_square","1",ADMIN_BAN)
register_cvar("tr_tracer","1",ADMIN_BAN)
register_cvar("tr_on","1",ADMIN_BAN)
}
public plugin_precache()
{
sprite=precache_model("sprites/laserbeam.spr")
}
public set_tracer_shit(id)
{
new red
new green
new blue
new bright
new life
new width
new noise
if(read_argc() == 0) {
red=random_num(0,255)
green=random_num(0,255)
blue=random_num(0,255)
bright=random_num(100,255)
life=random_num(3,20)
width=random_num(4,30)
noise=random_num(0,2)
}else{
new Sred[4]
new Sgreen[4]
new Sblue[4]
new Sbright[4]
new Slife[4]
new Swidth[4]
new Snoise[4]
read_argv(1,Sred,3)
read_argv(2,Sgreen,3)
read_argv(3,Sblue,3)
read_argv(4,Sbright,3)
read_argv(5,Slife,3)
read_argv(6,Swidth,3)
read_argv(7,Snoise,3)
red=str_to_num(Sred)
green=str_to_num(Sgreen)
blue=str_to_num(Sblue)
bright=str_to_num(Sbright)
life=str_to_num(Slife)
width=str_to_num(Swidth)
noise=str_to_num(Snoise)
set_tracer(id,red,green,blue,bright,life,width,noise)
}
}
public set_tracer(id,red,green,blue,bright,life,width,noise)
{
if(get_cvar_num("tr_on")) {
new weaponID = read_data(2)
new wAmmo = read_data(3)
new startorigin[3]
new endorigin[3]
get_user_origin(id,startorigin,1)
get_user_origin(id,endorigin,3)
if( g_nCurWeapon[id-1][0] != weaponID ) // User Changed Weapons..
{
g_nCurWeapon[id-1][0] = weaponID
g_nCurWeapon[id-1][1] = wAmmo
return PLUGIN_CONTINUE
}
if( g_nCurWeapon[id-1][1] < wAmmo ) // User Reloaded..
{
g_nCurWeapon[id-1][1] = wAmmo
return PLUGIN_CONTINUE
}
if( g_nCurWeapon[id-1][1] == wAmmo ) // User did something else, but didn't shoot..
return PLUGIN_CONTINUE
g_nCurWeapon[id-1][1] = wAmmo
g_nCurWeapon[id-1][0] = weaponID
if(get_cvar_num("tr_tracer")) {
message_begin(MSG_BROADCAST,SVC_TEMPENTITY) //tracer
write_byte(0) //TE_BEAMPOINTS
write_coord(startorigin[0]) //startorigin
write_coord(startorigin[1])
write_coord(startorigin[2])
write_coord(endorigin[0]) //endorigin
write_coord(endorigin[1])
write_coord(endorigin[2])
write_short(sprite) //sprite
write_byte(0) //starting frame
write_byte(10) //frame rate
write_byte(life) //life
write_byte(width) //line width
write_byte(noise) //noise
write_byte(red) //red
write_byte(green) //green
write_byte(blue) //blue
write_byte(bright) //brightness
write_byte(1) //scroll speed
message_end()
}
if(get_cvar_num("tr_square")) {
message_begin(MSG_BROADCAST,SVC_TEMPENTITY) //white squares
write_byte(15)
write_coord(startorigin[0]) //startorigin
write_coord(startorigin[1])
write_coord(startorigin[2])
write_coord(endorigin[0]) //endorigin
write_coord(endorigin[1])
write_coord(endorigin[2])
write_short(sprite) //sprite
write_byte(70) //count
write_byte(life) //life
write_byte(1) //scale
write_byte(0) //velocity along vector 10's
write_byte(0) //randomness of velocity in 10's
message_end()
return PLUGIN_CONTINUE
}
return PLUGIN_CONTINUE
}
return PLUGIN_CONTINUE
}