I dont know what the problem here is , it is supposed to get the nade origins then add effects and sprites. But the origin is extremly messed up and picks a random place on a map and does the effects , and no effects are dont to my nades .Thanks for the help
Code:
#include <amxmodx>
#include <fakemeta_util>
new g_Switch;
new g_Mode[8];
new g_Fire;
new g_HE_Fx;
new g_SG_Fx;
new g_FB_Fx;
new g_FireWorks;
new g_Smoke;
new Lightning;
public plugin_init()
{
register_plugin("He Effects","0.1","The Specialist");
g_Switch = register_cvar("he_switch","1");
g_HE_Fx = register_cvar("he_fx","a");
g_SG_Fx = register_cvar("sg_fx","a");
g_FB_Fx = register_cvar("fb_fx","a");
register_forward(FM_PlayerPreThink,"GrenadeEffects");
}
public GrenadeEffects(id)
{
if(get_pcvar_num(g_Switch))
{
new HE = fm_find_ent_by_model(-1,"grenade","w_hegrenade.mdl");
new HE_Origin[3];
new HE_Owner = pev(HE,pev_owner);
new g_iMode = read_flags(g_Mode);
get_pcvar_string(g_HE_Fx,g_Mode,7);
pev(HE,pev_origin,HE_Origin);
if(g_iMode & 1 )
{
message_begin(MSG_BROADCAST ,SVC_TEMPENTITY);
write_byte(TE_BEAMFOLLOW)
write_short(HE)
write_short(g_Fire)
write_byte(10)
write_byte(2)
write_byte(0)
write_byte(0)
write_byte(0)
write_byte(250)
message_end();
}
if(g_iMode & 2 )
{
message_begin(MSG_BROADCAST ,SVC_TEMPENTITY);
write_byte(TE_BEAMFOLLOW)
write_short(HE)
write_short(g_FireWorks)
write_byte(10)
write_byte(2)
write_byte(0)
write_byte(0)
write_byte(0)
write_byte(250)
message_end();
}
if(g_iMode & 4 )
{
message_begin(MSG_BROADCAST ,SVC_TEMPENTITY);
write_byte(TE_SMOKE);
engfunc(EngFunc_WriteCoord,HE_Origin[0]);
engfunc(EngFunc_WriteCoord,HE_Origin[1]);
engfunc(EngFunc_WriteCoord,HE_Origin[2]);
write_short(g_Smoke);
write_byte(255);
write_byte(0);
message_end();
}
if(g_iMode & 8 )
{
message_begin(MSG_BROADCAST ,SVC_TEMPENTITY);
write_byte(TE_ELIGHT);
write_short(HE);
engfunc(EngFunc_WriteCoord,HE_Origin[0]);
engfunc(EngFunc_WriteCoord,HE_Origin[1]);
engfunc(EngFunc_WriteCoord,HE_Origin[2]);
engfunc(EngFunc_WriteCoord,10);
write_byte(250);
write_byte(250);
write_byte(250);
write_byte(10);
write_coord(10);
message_end();
}
if(g_iMode & 16 )
{
message_begin( MSG_BROADCAST, SVC_TEMPENTITY)
write_byte(TE_BEAMENTS);
write_short(HE_Owner);
write_short(HE);
write_short(Lightning);
write_byte(0)
write_byte(0);
write_byte(25);
write_byte(30);
write_byte(10);
write_byte(255);
write_byte(255);
write_byte(255)
write_byte(255);
write_byte(0);
message_end()
}
if( g_iMode & 32)
{
message_begin( MSG_BROADCAST, SVC_TEMPENTITY);
write_byte(TE_SPARKS)
engfunc(EngFunc_WriteCoord,HE_Origin[0]);
engfunc(EngFunc_WriteCoord,HE_Origin[1]);
engfunc(EngFunc_WriteCoord,HE_Origin[2]);
message_end();
}
}
FlashEffects(id);
}
public FlashEffects(id)
{
if(get_pcvar_num(g_Switch))
{
new FB = fm_find_ent_by_model(-1,"grenade","w_flashbang.mdl");
new FB_Origin[3];
new FB_Owner = pev(FB,pev_owner);
new g_iMode = read_flags(g_Mode);
get_pcvar_string(g_FB_Fx,g_Mode,7);
pev(FB,pev_origin,FB_Origin);
if(g_iMode & 1 )
{
message_begin(MSG_BROADCAST ,SVC_TEMPENTITY);
write_byte(TE_BEAMFOLLOW)
write_short(FB)
write_short(g_Fire)
write_byte(10)
write_byte(2)
write_byte(0)
write_byte(0)
write_byte(0)
write_byte(250)
message_end();
}
if(g_iMode & 2 )
{
message_begin(MSG_BROADCAST ,SVC_TEMPENTITY);
write_byte(TE_BEAMFOLLOW)
write_short(FB)
write_short(g_FireWorks)
write_byte(10)
write_byte(2)
write_byte(0)
write_byte(0)
write_byte(0)
write_byte(250)
message_end();
}
if(g_iMode & 4 )
{
message_begin(MSG_BROADCAST ,SVC_TEMPENTITY);
write_byte(TE_SMOKE);
engfunc(EngFunc_WriteCoord,FB_Origin[0]);
engfunc(EngFunc_WriteCoord,FB_Origin[1]);
engfunc(EngFunc_WriteCoord,FB_Origin[2]);
write_short(g_Smoke);
write_byte(255);
write_byte(0);
message_end();
}
if(g_iMode & 8 )
{
message_begin(MSG_BROADCAST ,SVC_TEMPENTITY);
write_byte(TE_ELIGHT);
write_short(FB);
engfunc(EngFunc_WriteCoord,FB_Origin[0]);
engfunc(EngFunc_WriteCoord,FB_Origin[1]);
engfunc(EngFunc_WriteCoord,FB_Origin[2]);
engfunc(EngFunc_WriteCoord,10);
write_byte(250);
write_byte(250);
write_byte(250);
write_byte(10);
write_coord(10);
message_end();
}
if(g_iMode & 16 )
{
message_begin( MSG_BROADCAST, SVC_TEMPENTITY)
write_byte(TE_BEAMENTS);
write_short(FB_Owner);
write_short(FB);
write_short(Lightning);
write_byte(0)
write_byte(0);
write_byte(25);
write_byte(30);
write_byte(10);
write_byte(255);
write_byte(255);
write_byte(255)
write_byte(255);
write_byte(0);
message_end()
}
if( g_iMode & 32)
{
message_begin( MSG_BROADCAST, SVC_TEMPENTITY);
write_byte(TE_SPARKS)
engfunc(EngFunc_WriteCoord,FB_Origin[0]);
engfunc(EngFunc_WriteCoord,FB_Origin[1]);
engfunc(EngFunc_WriteCoord,FB_Origin[2]);
message_end();
}
}
SmokeEffects(id);
return;
}
public SmokeEffects(id)
{
if(get_pcvar_num(g_Switch))
{
new SG = fm_find_ent_by_model(-1,"grenade","w_smokegrenade.mdl");
new SG_Origin[3];
new SG_Owner = pev(SG,pev_owner);
new g_iMode = read_flags(g_Mode);
get_pcvar_string(g_SG_Fx,g_Mode,7);
pev(SG,pev_origin,SG_Origin);
if(g_iMode & 1 )
{
message_begin(MSG_BROADCAST ,SVC_TEMPENTITY);
write_byte(TE_BEAMFOLLOW)
write_short(SG)
write_short(g_Fire)
write_byte(10)
write_byte(2)
write_byte(0)
write_byte(0)
write_byte(0)
write_byte(250)
message_end();
}
if(g_iMode & 2 )
{
message_begin(MSG_BROADCAST ,SVC_TEMPENTITY);
write_byte(TE_BEAMFOLLOW)
write_short(SG)
write_short(g_FireWorks)
write_byte(10)
write_byte(2)
write_byte(0)
write_byte(0)
write_byte(0)
write_byte(250)
message_end();
}
if(g_iMode & 4 )
{
message_begin(MSG_BROADCAST ,SVC_TEMPENTITY);
write_byte(TE_SMOKE);
engfunc(EngFunc_WriteCoord,SG_Origin[0]);
engfunc(EngFunc_WriteCoord,SG_Origin[1]);
engfunc(EngFunc_WriteCoord,SG_Origin[2]);
write_short(g_Smoke);
write_byte(255);
write_byte(0);
message_end();
}
if(g_iMode & 8 )
{
message_begin(MSG_BROADCAST ,SVC_TEMPENTITY);
write_byte(TE_ELIGHT);
write_short(SG);
engfunc(EngFunc_WriteCoord,SG_Origin[0]);
engfunc(EngFunc_WriteCoord,SG_Origin[1]);
engfunc(EngFunc_WriteCoord,SG_Origin[2]);
engfunc(EngFunc_WriteCoord,10);
write_byte(250);
write_byte(250);
write_byte(250);
write_byte(10);
write_coord(10);
message_end();
}
if(g_iMode & 16 )
{
message_begin( MSG_BROADCAST, SVC_TEMPENTITY)
write_byte(TE_BEAMENTS);
write_short(SG_Owner);
write_short(SG);
write_short(Lightning);
write_byte(0)
write_byte(0);
write_byte(25);
write_byte(30);
write_byte(10);
write_byte(255);
write_byte(255);
write_byte(255)
write_byte(255);
write_byte(0);
message_end()
}
if( g_iMode & 32)
{
message_begin( MSG_BROADCAST, SVC_TEMPENTITY);
write_byte(TE_SPARKS)
engfunc(EngFunc_WriteCoord,SG_Origin[0]);
engfunc(EngFunc_WriteCoord,SG_Origin[1]);
engfunc(EngFunc_WriteCoord,SG_Origin[2]);
message_end();
}
}
return 0;
}
public plugin_precache()
{
g_FireWorks = precache_model("sprites/fireworkbest.spr");
g_Fire = precache_model("sprites/flame.spr");
g_Smoke = precache_model("sprites/steam1.spr");
Lightning = precache_model("sprites/lgtning.spr");
}