AlliedModders

AlliedModders (https://forums.alliedmods.net/index.php)
-   Scripting Help (https://forums.alliedmods.net/forumdisplay.php?f=11)
-   -   Remove On New Round (https://forums.alliedmods.net/showthread.php?t=126613)

edgaras85 05-11-2010 15:03

Remove On New Round
 
PHP Code:

#include <amxmodx>
#include <engine>
#include <fakemeta>
#define VERSION "1.1"
new const g_szClassname[] = "colored_smokenade";
new 
g_szSmokeSprites];
new 
g_Cvar_Enabled;
public 
plugin_init( ) {
 
register_plugin"Colored Smoke"VERSION"xPaw" );
 
 
register_cvar"colored_smoke"VERSIONFCVAR_SERVER FCVAR_SPONLY );
 
set_cvar_string"colored_smoke"VERSION );
 
 
g_Cvar_Enabled register_cvar"sv_colored_smoke""1" );
 
 
register_forwardFM_EmitSound"FwdEmitSound" );
 
register_touchg_szClassname"worldspawn""FwdTouch_FakeSmoke" );
 
register_thinkg_szClassname"FwdThink_FakeSmoke" );
}
public 
plugin_precache( ) {
 
g_szSmokeSprites] = precache_model"sprites/gas_puff_01y.spr" );
 
g_szSmokeSprites] = precache_model"sprites/gas_puff_01r.spr" );
 
g_szSmokeSprites] = precache_model"sprites/gas_puff_01b.spr" );
 
g_szSmokeSprites] = precache_model"sprites/gas_puff_01g.spr" );
 
g_szSmokeSprites] = precache_model"sprites/gas_puff_01m.spr" );
 
g_szSmokeSprites] = precache_model"sprites/gas_puff_01o.spr" );
 
 
precache_sound"weapons/grenade_hit1.wav" );
}
public 
FwdEmitSoundiOrigEntiChannel, const szSample[], Float:fVolFloat:fAttniFlagsiPitch ) {
 new 
iCvar get_pcvar_numg_Cvar_Enabled );
 if( 
iCvar ) {
  static const 
szSmokeSound[] = "weapons/sg_explode.wav";
  
  if( 
equalszSampleszSmokeSound ) ) {
   
// cache origin, angles and model
   
new Float:vOrigin], Float:vAngles], szModel64 ], iOwner;
   
iOwner entity_get_edictiOrigEntEV_ENT_owner );
   
entity_get_vectoriOrigEntEV_VEC_originvOrigin );
   
entity_get_vectoriOrigEntEV_VEC_anglesvAngles );
   
entity_get_stringiOrigEntEV_SZ_modelszModelcharsmaxszModel ) );
   
   
// remove entity from world
   
entity_set_vectoriOrigEntEV_VEC_originFloat:{ 9999.99999.99999.9 } );
   
entity_set_intiOrigEntEV_INT_flagsFL_KILLME );
   
   
// create new entity
   
new iEntity create_entity"info_target" );
   if( 
iEntity ) {
    
entity_set_stringiEntityEV_SZ_classnameg_szClassname );
    
    
entity_set_originiEntityvOrigin );
    
entity_set_vectoriEntityEV_VEC_anglesvAngles );
    
    
entity_set_intiEntityEV_INT_movetypeMOVETYPE_TOSS );
    
entity_set_intiEntityEV_INT_solidSOLID_BBOX );
    
    
entity_set_floatiEntityEV_FL_nextthinkget_gametime( ) + 21.5 );
    
entity_set_floatiEntityEV_FL_gravity0.5 );
    
entity_set_floatiEntityEV_FL_friction0.8 );
    
    
entity_set_modeliEntityszModel );
    
    new 
Float:vVelocity];
    
vVelocity] = random_float( -220.0220.0 );
    
vVelocity] = random_float( -220.0220.0 );
    
vVelocity] = random_float(  200.0300.0 );
    
entity_set_vectoriEntityEV_VEC_velocityvVelocity );
    
    
emit_soundiEntityiChannelszSamplefVolfAttniFlagsiPitch );
    
    
// Create fake smoke
    
new iSmoke;
    
    if( 
iCvar == )
     
iSmoke get_user_teamiOwner ); // i did indexes as team, 1 - red, 2 - blue, 3 - green( spec oO )
    
else
     
iSmoke random_num0);
    
    
// Store the smoke number in entity, we will use it later
    
entity_set_intiEntityEV_INT_iuser4iSmoke );
    
    
message_beginMSG_BROADCASTSVC_TEMPENTITY );
    
write_byteTE_FIREFIELD );
    
engfuncEngFunc_WriteCoordvOrigin] );
    
engfuncEngFunc_WriteCoordvOrigin] );
    
engfuncEngFunc_WriteCoordvOrigin] + 50 );
    
write_short100 );
    
write_shortg_szSmokeSpritesiSmoke ] );
    
write_byte100 );
    
write_byteTEFIRE_FLAG_ALPHA );
    
write_byte1000 );
    
message_end();
    
    
message_beginMSG_BROADCASTSVC_TEMPENTITY );
    
write_byteTE_FIREFIELD );
    
engfuncEngFunc_WriteCoordvOrigin] );
    
engfuncEngFunc_WriteCoordvOrigin] );
    
engfuncEngFunc_WriteCoordvOrigin] + 50 );
    
write_short150 );
    
write_shortg_szSmokeSpritesiSmoke ] );
    
write_byte10 );
    
write_byteTEFIRE_FLAG_ALPHA TEFIRE_FLAG_SOMEFLOAT );
    
write_byte1000 );
    
message_end( );
   }
  }
 }
}
public 
FwdTouch_FakeSmokeiEntityiWorld ) {
 if( !
is_valid_entiEntity ) )
  return 
PLUGIN_CONTINUE;
 
 
// Bounce sound
 
emit_soundiEntityCHAN_VOICE"weapons/grenade_hit1.wav"0.25ATTN_NORM0PITCH_NORM );
 
 new 
Float:vVelocity];
 
entity_get_vectoriEntityEV_VEC_velocityvVelocity );
 
 if( 
vVelocity] <= 0.0 && vVelocity] <= 0.0 ) {
  new 
Float:vOrigin];
  new 
iSmoke entity_get_intiEntityEV_INT_iuser4 );
  
entity_get_vectoriEntityEV_VEC_originvOrigin );
  
  
// Make small smoke near grenade on ground
  
message_beginMSG_BROADCASTSVC_TEMPENTITY );
  
write_byteTE_FIREFIELD );
  
engfuncEngFunc_WriteCoordvOrigin] );
  
engfuncEngFunc_WriteCoordvOrigin] );
  
engfuncEngFunc_WriteCoordvOrigin] + 10 );
  
write_short);
  
write_shortg_szSmokeSpritesiSmoke ] );
  
write_byte);
  
write_byteTEFIRE_FLAG_ALLFLOAT TEFIRE_FLAG_ALPHA );
  
write_byte30 );
  
message_end();
 }
 
 return 
PLUGIN_CONTINUE;
}
public 
FwdThink_FakeSmokeiEntity ) {
 if( !
is_valid_entiEntity ) )
  return 
PLUGIN_CONTINUE;
 
 
remove_entityiEntity );
 
 return 
PLUGIN_CONTINUE;


How to remove this smoke grenade on new round, because its stays... even new round...

wrecked_ 05-11-2010 15:37

Re: Remove On New Round
 
What stays? The sprite? Or the grenade when it's thrown transfers in to the new round?

edgaras85 05-11-2010 15:38

Sprite(smoke colored)

EDIT:

Forgot to say there can be more than one sg...

Flick3rR 02-16-2015 18:36

Re: Remove On New Round
 
It's actually still interesting for me if it's possible to remove the sprite which was set from the message. That should be cool to know, but I still think it's impossible.


All times are GMT -4. The time now is 03:38.

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