K-e-n-t, попробуй:
[pwn]
#define MAX_PLAYERS_SPEED MAX_PLAYERS
forward ABroadCast (color,const string[],level);
forward AntiTeleport ();
forward IsPlane (carid); public IsPlane(carid)
{
new model;
model = GetVehicleModel(carid);
if((model==417)||(model==425)||(model==447)||(model==460)||(model==464)||(model==469)||(model==476)||(model==487)||(model==488)||(model== 497)||(model==511)||(model==512)||(model==513)||(model==519)||(model==520)||(model==548)||(model==553)||(model==563)||(model==577)||(model== 592)||(model==593))
{
return 1;
}
return 0;
}
public ABroadCast(color,const string[],level)
{
for(new i = 0; i <= MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i) == 1)
{
if ((IsPlayerAdmin(i)) || PlayerInfo[i][pAdmin] >= level)
{
SendClientMessage(i, color, string);
printf("%s", string);
}
}
}
return 1;
}
public AntiTeleport()
{
new plname[MAX_PLAYER_NAME];
new string[256];
new Float:maxspeed = 175.0;
for(new i = 0; i <= MAX_PLAYERS_SPEED; i++)
{
if(IsPlayerConnected(i) == 1 && (GetPlayerState(i) == 2))
{
GetPlayerPos(i, TelePos[i][3], TelePos[i][4], TelePos[i][5]);
if(TelePos[i][5] > 550.0)
{
TelePos[i][0] = 0.0;
TelePos[i][1] = 0.0;
}
//printf("player %d\n x = %f\n y = %f\n z = %f\n x2 = %f\n y2 = %f\n z2 = %f\n",i, PlayerPos[i][0],PlayerPos[i][1],PlayerPos[i][2],PlayerPos[i][3],PlayerPos[i][4],PlayerPos[i][5]);
if(TelePos[i][0] != 0.0)
{
new Float:xdist = TelePos[i][3]-TelePos[i][0];
new Float:ydist = TelePos[i][4]-TelePos[i][1];
new Float:sqxdist = xdist*xdist;
new Float:sqydist = ydist*ydist;
new Float:distance = (sqxdist+sqydist)/31;
if(distance > maxspeed)
{
new tmpcar = GetPlayerVehicleID(i);
new currentveh;
if(!IsPlane(tmpcar)) //исключает игроков на самолете
{
GetPlayerName(i, plname, sizeof(plname));
currentveh = GetVehicleModel(GetPlayerVehicleID(i));
format(string, 256, " Внимание. Превышение скорости: Скорость %s[%d] составила %.0f KmH, %d",plname,i,distance,currentveh);
ABroadCast(COLOR_YELLOW,string,1);
if(Warn[i] < 75)
{
Warn[i]+=25;
GetPlayerName(i, plname, sizeof(plname));
format(string, sizeof (string), " Предупреждение!!! %s вы подозреваетесь в использовании чита на полет. (%d)", plname,Warn[i]);
SendClientMessage(i,COLOR_YELLOW,string);
}
else if(Warn[i] >= 75)
{
Kick(i);
}
}
}
}
if(TelePos[i][5] < 550.0 && TelePos[i][3] != 0.0)
{
TelePos[i][0] = TelePos[i][3];
TelePos[i][1] = TelePos[i][4];
}
}
}
}[/pwn]
если конечно ниче не забыл... но из многих мест вырезал, мог ченить и пропустить, еси че спрашивай.