Raised This Month: $ Target: $400
 0% 

Weird Origin Problem


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
The Specialist
BANNED
Join Date: Nov 2006
Old 12-12-2006 , 05:03   Weird Origin Problem
Reply With Quote #1

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"); }
The Specialist is offline
Send a message via AIM to The Specialist
jim_yang
Veteran Member
Join Date: Aug 2006
Old 12-12-2006 , 05:10   Re: Weird Origin Problem
Reply With Quote #2

why do you use FM_PlayerPreThink forward ?
__________________
Project : CSDM all in one - 99%
<team balancer#no round end#entity remover#quake sounds#fake full#maps management menu#players punishment menu#no team flash#colored flashbang#grenade trails#HE effect#spawn protection#weapon arena#weapon upgrade#auto join#no weapon drop#one name>
jim_yang is offline
dutchmeat
Senior Member
Join Date: Sep 2006
Old 12-12-2006 , 05:14   Re: Weird Origin Problem
Reply With Quote #3

First of all, where did you defined all the temp effects,
and why don't you use the normal write_coord?
And you should use prethink for that.

message_begin(MSG_BROADCAST ,SVC_TEMPENTITY);
write_byte(TE_SMOKE);
write_coord(HE_Origin[0]);
write_coord(HE_Origin[1]);
write_coord(HE_Origin[2]);
write_short(g_Smoke);
write_byte(255);
write_byte(0);
message_end();
__________________
before you criticize someone, you should walk a mile in their shoes. that way, when you criticize them, you're a mile away and you have their shoes.
dutchmeat is offline
The Specialist
BANNED
Join Date: Nov 2006
Old 12-12-2006 , 05:15   Re: Weird Origin Problem
Reply With Quote #4

Wel I needed some way to check for thrown grenades at all time using fakemeta . Is there a better way ?

OFF TOPIC : Hello Jim

Fakemta doesnt have a prethink only playerprethink or playerposthink.
and when usuing fakemta you should use the engfunc version of write coord.
The Specialist is offline
Send a message via AIM to The Specialist
dutchmeat
Senior Member
Join Date: Sep 2006
Old 12-12-2006 , 06:12   Re: Weird Origin Problem
Reply With Quote #5

damn fakemeta junkies, ehmm...

Float!
Code:
  new Float:origin[3];   pev(id, pev_origin, origin);
__________________
before you criticize someone, you should walk a mile in their shoes. that way, when you criticize them, you're a mile away and you have their shoes.
dutchmeat is offline
jim_yang
Veteran Member
Join Date: Aug 2006
Old 12-12-2006 , 07:09   Re: Weird Origin Problem
Reply With Quote #6

try FM_SetModel forward, or forward grenade_throw(id, grenadeid, wpid) of <csx>
__________________
Project : CSDM all in one - 99%
<team balancer#no round end#entity remover#quake sounds#fake full#maps management menu#players punishment menu#no team flash#colored flashbang#grenade trails#HE effect#spawn protection#weapon arena#weapon upgrade#auto join#no weapon drop#one name>
jim_yang is offline
dutchmeat
Senior Member
Join Date: Sep 2006
Old 12-12-2006 , 08:15   Re: Weird Origin Problem
Reply With Quote #7

Like i said, pev(id, pev_origin should be a float.
__________________
before you criticize someone, you should walk a mile in their shoes. that way, when you criticize them, you're a mile away and you have their shoes.
dutchmeat is offline
VEN
Veteran Member
Join Date: Jan 2005
Old 12-12-2006 , 11:18   Re: Weird Origin Problem
Reply With Quote #8

Me and P34nut already said you that origin is a float vector and even showed how to retrieve it. Also WriteCoord accepts a float value.
VEN is offline
The Specialist
BANNED
Join Date: Nov 2006
Old 12-12-2006 , 16:34   Re: Weird Origin Problem
Reply With Quote #9

Hmmm, this wont let me connect to my server . But theres no run time errors. Any ideas ? I changed the origins to floats .

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; new Float:  SG_Origin[3]; new Float: HE_Origin[3]; new Float: FB_Origin[3]; public plugin_init() {  register_plugin("Advanced Nade 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,"HeNadeEffects"); } public  HeNadeEffects() {  if(get_pcvar_num(g_Switch))  {   new HE = fm_find_ent_by_model(-1,"grenade","w_hegrenade.mdl");     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(8)    write_short(HE)    write_short(g_Fire)    write_byte(10)    write_byte(10)    write_byte(250)    write_byte(250)    write_byte(250)    write_byte(250)    message_end();   }   if(g_iMode & 2 )   {    message_begin(MSG_BROADCAST ,SVC_TEMPENTITY);    write_byte(8)    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(5);    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(28);    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(8);    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(9)    engfunc(EngFunc_WriteCoord,HE_Origin[0]);    engfunc(EngFunc_WriteCoord,HE_Origin[1]);    engfunc(EngFunc_WriteCoord,HE_Origin[2]);    message_end();   }  }  FlashEffects(); } public FlashEffects() {  if(get_pcvar_num(g_Switch))  {   new FB = fm_find_ent_by_model(-1,"grenade","w_flashbang.mdl");     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(8)    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(8)    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(5);    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(28);    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(8);    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(9)    engfunc(EngFunc_WriteCoord,FB_Origin[0]);    engfunc(EngFunc_WriteCoord,FB_Origin[1]);    engfunc(EngFunc_WriteCoord,FB_Origin[2]);    message_end();   }  }  SmokeEffects();  return; } public SmokeEffects() {  if(get_pcvar_num(g_Switch))  {   new SG = fm_find_ent_by_model(-1,"grenade","w_smokegrenade.mdl");     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(8)    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(8)    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(5);    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(28);    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(8);    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(9)    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"); }
The Specialist is offline
Send a message via AIM to The Specialist
dutchmeat
Senior Member
Join Date: Sep 2006
Old 12-12-2006 , 16:40   Re: Weird Origin Problem
Reply With Quote #10

maybe because of the 'return 0;'
in client_prethink (forwarded from public SmokeEffects)?

If this is not the case, you should try using one function at the time, so only HE for now...
__________________
before you criticize someone, you should walk a mile in their shoes. that way, when you criticize them, you're a mile away and you have their shoes.
dutchmeat is offline
Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 06:52.


Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Theme made by Freecode