PDA

View Full Version : Emitting sound problem


knekter
04-03-2004, 13:00
I recently made a tracer plugin, and I added sounds when a person fires. The problem is when I fire my gun, the sound plays, but loops forever until I either changeweapons, or hudswitch. Heres my code:

/////////////////////
#include <amxmodx>
/////////////////////
new StartOrigin[33][3]
new EndOrigin[33][3]
new laser
new g_LastWpn[32] = {0}
new g_LastClip[32] = {0}
/////////////////////
public plugin_init()
{
register_plugin("Laser Tracer","0.1","Knekter")
register_event("CurWeapon","shot_fired","be","1=1")
register_cvar("amx_tracers","1")
}
/////////////////////
public plugin_precache()
{
laser = precache_model("sprites/laserbeam.spr")
precache_sound("common/launch_select2.wav")
return PLUGIN_CONTINUE
}
public shot_fired(id)
{
if(get_cvar_num("amx_tracers")==0)
{
return PLUGIN_HANDLED
}
new clip, ammo
new wpnnum = get_user_weapon(id, clip, ammo)
if (g_LastWpn[id] != wpnnum || (clip + 1) != g_LastClip[id])
{
g_LastWpn[id] = wpnnum
g_LastClip[id] = clip
return PLUGIN_CONTINUE
}
g_LastWpn[id] = wpnnum
g_LastClip[id] = clip
new red = random_num(50,255)
new green = random_num(50,255)
new blue = random_num(50,255)
get_user_origin(id,StartOrigin[id]) // gets users current origin
get_user_origin(id,EndOrigin[id],3) // gets users eyes origin
message_begin( MSG_BROADCAST,SVC_TEMPENTITY)
write_byte(0) // number of temp event
write_coord(StartOrigin[id][0]) // x origin
write_coord(StartOrigin[id][1]) // y origin
write_coord(StartOrigin[id][2]) // z origin
write_coord(EndOrigin[id][0]) // eye x origin
write_coord(EndOrigin[id][1]) // eye y origin
write_coord(EndOrigin[id][2]) // eye z origin
write_short(laser) // sprite index
write_byte(1) // framestart
write_byte(5) // framerate
write_byte(2) // life
write_byte(10) // width
write_byte(0) // noise
write_byte(red) // r,g,b
write_byte(green) // r,g,b
write_byte(blue) // r,g,b
write_byte( 200 ) // brightness
write_byte( 200 ) // speed
message_end()
emit_sound(id,CHAN_ITEM,"common/launch_select2.wav",1.0,ATTN_NORM,1,PITCH_NORM)
return PLUGIN_HANDLED
}

knekter
04-05-2004, 16:19
nvm, i realized it was inside a loop, LOL it gets checked ever second :|