Silly coded...
PHP Code:
new const gwatterBallClassname[] = "watterball";
new gLaserSprite;
#define write_coord_f(%0) ( engfunc( EngFunc_WriteCoord, %0 ) )
public ClientCommand_Createwatter ( const Player, const Level, const Cid )
{
if ( !cmd_access( Player, Level, Cid, 1 ) )
{
return PLUGIN_HANDLED;
}
new Float:Origin[3];
new Entity;
pev( Player, pev_origin, Origin );
if ( ( Entity = create_entity( "info_target" ) ) )
{
set_pev( Entity, pev_classname, gwatterBallClassname );
engfunc( EngFunc_SetSize , Entity, Float:{ -311.0, -1.0, -1.0 }, Float:{ 311.0, 1.0, 1.0 } );
engfunc( EngFunc_SetOrigin, Entity, Origin );
set_pev( Entity, pev_effects, EF_BRIGHTFIELD );
set_pev( Entity, pev_solid, SOLID_BBOX );
set_pev( Entity, pev_movetype, MOVETYPE_TOSS );
set_pev( Entity, pev_owner, Player );
set_pev( Entity, pev_nextthink, get_gametime() + 0.1 );
}
return PLUGIN_HANDLED_MAIN;
}
public ClientCommand_Killwatter ( const Player, const Level, const Cid )
{
if ( cmd_access( Player, Level, Cid, 1 ) )
{
remove_entity_name( gwatterBallClassname );
return PLUGIN_HANDLED_MAIN;
}
return PLUGIN_HANDLED;
}
public CwatterBall_Think ( const Entity )
{
if ( !is_valid_ent( Entity ) )
{
return;
}
static Float:Origin[3];
static Float:TestEnd[3];
static Float:EndPos[3];
pev( Entity, pev_origin, Origin );
TestEnd[0] = random_float( -5000.0, 5000.0 );
TestEnd[1] = random_float( -5000.0, 5000.0 );
TestEnd[2] = random_float( 0.0, 5000.0 );
trace_line( Entity, Origin, TestEnd, EndPos );
message_begin( MSG_BROADCAST, SVC_TEMPENTITY );
write_byte( TE_BEAMCYLINDER )
write_coord_f( Origin[0] );
write_coord_f( Origin[1] );
write_coord_f( Origin[2] + 200.0 );
write_coord_f( EndPos[0] );
write_coord_f( EndPos[1] );
write_coord_f( EndPos[2] );
write_short( gLaserSprite );
write_byte( 255 ); //Start frame 0
write_byte( 255 ); //Frame rate 0
write_byte( 20 ); //Life 10
write_byte( 10); //Width 20
write_byte( 255); //noise 300
write_byte( random_num(1,255) ); //R
write_byte( random_num(1,255) ); //G
write_byte( random_num(1,255) ); //B
write_byte( 255 ); //brightness 200
write_byte( 5 ); //Scroll 30
message_end(); //End
set_pev( Entity, pev_nextthink, get_gametime() + 0.25 );
}