I made something but it slaps me when I'm close to the beams, like, I'm within the radius but stay close to them, it slaps me. Also when I'm in the radius but in the sky.
PHP Code:
#include < amxmodx >
#include < fakemeta >
#include < xs >
new const g_szSprite[ ] = "sprites/laserbeam.spr";
new g_iSprite;
public plugin_init( )
{
register_clcmd( "say /sphere", "OnSphere" );
register_clcmd( "say /remove", "OnRemove" );
}
public plugin_precache( )
{
g_iSprite = precache_model( g_szSprite );
}
public OnSphere( id )
{
set_task( 1.0, "RenewSphere", 666, .flags="b" );
}
public OnRemove( id )
{
remove_task( 666 );
}
public RenewSphere( )
{
new Float:fOrigin_Center[3] = {-8.5, -0.0, -487.4};
const divides = 128;
new Float:fOrigin[3];
new Float:fAngle[3], Float:AngleMulScalar = (360.0 / divides), Float:fVector[3];
const Float:Radius = 2000.0;
for(new i; i < divides; i++)
{
angle_vector(fAngle, ANGLEVECTOR_RIGHT, fVector);
xs_vec_mul_scalar(fVector, Radius, fVector);
xs_vec_add(fOrigin_Center, fVector, fOrigin);
CreateBeam( fOrigin );
fAngle[1] += AngleMulScalar;
}
// check if other players are out and slap them.
new ent = -1, players[32], pnum, ignore[33];
while( (ent = engfunc(EngFunc_FindEntityInSphere, ent, fOrigin_Center, Radius)) > 0)
{
if(is_user_alive(ent))
{
ignore[ent] = true;
}
}
get_players(players,pnum,"a")
for(new i,player; i < pnum; i++)
{
player = players[i];
if(ignore[player]) continue;
user_slap(player, random_num(2,10));
}
}
CreateBeam( Float:fOrigin[ 3 ] )
{
message_begin( MSG_BROADCAST, SVC_TEMPENTITY )
write_byte( TE_BEAMPOINTS )
engfunc( EngFunc_WriteCoord, fOrigin[ 0 ] )
engfunc( EngFunc_WriteCoord, fOrigin[ 1 ] )
engfunc( EngFunc_WriteCoord, fOrigin[ 2 ] )
engfunc( EngFunc_WriteCoord, fOrigin[ 0 ] )
engfunc( EngFunc_WriteCoord, fOrigin[ 1 ] )
engfunc( EngFunc_WriteCoord, 4000.0 )
write_short( g_iSprite )
write_byte( 1 )
write_byte( 5 )
write_byte( 30 )
write_byte( 60 )
write_byte( 0 )
write_byte( 255 )
write_byte( 0 )
write_byte( 0 )
write_byte( 127 )
write_byte( 1 )
message_end( );
}
__________________