05.06.2011, 22:53
(
Последний раз редактировалось Mauzen; 05.06.2011 в 22:53.
Причина: pawn tag fail
)
Better do it like this:
Or even better with a timer that sets TeleportAllowed[playerid] to 0 after a few seconds. But this way should also do it.
pawn Код:
new Float:LastPosition[MAX_PLAYERS][3];
new TeleportWarnings[MAX_PLAYERS];
new TeleportAllowed[MAX_PLAYERS];
public OnFilterScriptInit()
{
SetTimer("Hacks", 1000, true);
return 1;
}
forward Hacks();
public Hacks()
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
if(!IsPlayerInRangeOfPoint(i, 400.0, LastPosition[i][0], LastPosition[i][1], LastPosition[i][2]) && EnteredInterior[i] == 0 && GetPlayerState(i) != PLAYER_STATE_PASSENGER && GetPlayerSurfingVehicleID(i) == INVALID_VEHICLE_ID)
{
if (!TeleportAllowed[playerid]) {
SendClientMessage(i, 0xFF0000FF, "You hack :(");
TeleportWarnings[i] ++;
if(TeleportWarnings[i] >= 3)
{
BanEx(i, "Teleporting");
}
} else TeleportAllowed[playerid] = 0;
}
GetPlayerPos(i, LastPosition[i][0], LastPosition[i][1], LastPosition[i][2]);
}
}
return 1;
}
stock SetPlayerPosEx(playerid, Float:X, Float:Y, Float:Z, Float:angle, interiorid = 0)
{
TeleportAllowed[playerid] = 1;
SetPlayerPos(playerid, X, Y, Z);
SetPlayerFacingAngle(playerid, angle);
SetPlayerInterior(playerid, interiorid);
SetCameraBehindPlayer(playerid);
}