Łap
#include <amxmodx>
#include <amxmisc>
#include <engine>
new const Float:fStrength = 500.0; // Sila odepchniecia
new const Float:fDistance = 200.0; // Jak blisko musi byc gracz, zeby zostac odepchnietym
new sprite_white;
public plugin_init()
{
register_plugin("NewPlugin", "v1.01", "Grzyboo")
register_clcmd("say /push", "Push");
}
public plugin_precache()
sprite_white = precache_model("sprites/white.spr") ;
public Push(id)
{
new iPlayers[33];
new num = find_sphere_class(id, "player", fDistance, iPlayers, 32);
new vOrigin[2][3], Float:fOrigin[2][3];
get_user_origin(id, vOrigin[0]);
entity_get_vector(id, EV_VEC_origin, fOrigin[0]);
for (new i=0; i < num; i++)
{
if(get_user_team(id) == get_user_team(iPlayers[i])) // Odpychajacy i odepchniety sa z jednego teamu ==> ignoruj
continue;
entity_get_vector(iPlayers[i], EV_VEC_origin, fOrigin[1]);
for(new b = 0; b <= 2; b++)
{
fOrigin[1][b] -= fOrigin[0][b];
if(fOrigin[1][b] >= 0)
fOrigin[1][b] += fStrength;
else
fOrigin[1][b] -= fStrength;
}
entity_set_vector(iPlayers[i], EV_VEC_velocity, fOrigin[1]);
}
//Efekt wizualny
message_begin( MSG_BROADCAST, SVC_TEMPENTITY, vOrigin[0] );
write_byte( TE_BEAMCYLINDER );
write_coord( vOrigin[0][0] );
write_coord( vOrigin[0][1] );
write_coord( vOrigin[0][2] );
write_coord( vOrigin[0][0] );
write_coord( vOrigin[0][1] + floatround(fDistance) );
write_coord( vOrigin[0][2] + floatround(fDistance) );
write_short( sprite_white );
write_byte( 0 ); // startframe
write_byte( 0 ); // framerate
write_byte( 10 ); // life
write_byte( 10 ); // width
write_byte( 255 ); // noise
write_byte( 255 ); // red
write_byte( 255 ); // green
write_byte( 255 ); // blue
write_byte( 128 ); // brightness
write_byte( 5 ); // speed
message_end();
}