Привет, сегодня покажу как сделать Анти-Чит от любителей телепортироваться на серверах SA-MP. Сделаем мы это простым методом. При спавне игрока записываем его подлинные координаты, дальше уже по проверке записываем. Держим код: Код 1. Объявим переменные для всех игроков с подлинными координатами: newFloat:acX[MAX_PLAYERS], Float:acY[MAX_PLAYERS], Float:acZ[MAX_PLAYERS], TimeTP[MAX_PLAYERS]; PHP newFloat:acX[MAX_PLAYERS], Float:acY[MAX_PLAYERS], Float:acZ[MAX_PLAYERS], TimeTP[MAX_PLAYERS]; 2. Создаём стоковую функцию в самом конце мода: stock SetPlayerPosAC(playerid, Float:x, Float:y, Float:z) { acX[playerid] = x, acY[playerid] = y, acZ[playerid] = z; SetPlayerPos(playerid, x, y, z); return 1; } PHP stock SetPlayerPosAC(playerid, Float:x, Float:y, Float:z) { acX[playerid] = x, acY[playerid] = y, acZ[playerid] = z; SetPlayerPos(playerid, x, y, z); return 1; } 3. Теперь в своём моде везде функции SetPlayerPos заменяем на SetPlayerPosAC или просто добавим к ним 'AC'. 4. Пропишите в паблик OnPlayerConnect: SetPVarInt(playerid, "TPEnable", 0); TimeTP[playerid] = SetTimerEx("ScanTPcheat", 1000, true, "i", playerid); PHP SetPVarInt(playerid, "TPEnable", 0); TimeTP[playerid] = SetTimerEx("ScanTPcheat", 1000, true, "i", playerid); 5. В паблик OnPlayerSpawn пропишите: SetPVarInt(playerid, "TPEnable", 1); PHP SetPVarInt(playerid, "TPEnable", 1); 6. В паблик OnPlayerDisconnect пропишите: KillTimer(TimeTP[playerid]); PHP KillTimer(TimeTP[playerid]); 7. В самый низ мода: forward ScanTPcheat(playerid); public ScanTPcheat(playerid) { if(GetPVarInt(playerid, "TPEnable") == 1) { if(GetPlayerDistanceFromPoint(playerid, acX[playerid], acY[playerid], acZ[playerid]) > 100.0) Kick(playerid); // Если игрок далеко от своих подлиных координатов чем на 100 метров, тогда кикаем его. else GetPlayerPos(playerid, acX[playerid], acY[playerid], acZ[playerid]); // Иначе их записываем в подлиные координаты. new Float:X, Float:Y, Float:Z; // Переменные для записи координатов игрока. GetPlayerPos(playerid, X, Y, Z); // Записываем координаты игрока в переменные. if(!IsPlayerInRangeOfPoint(playerid, 5.0, X, Y, Z)) Kick(playerid); } return 1; } PHP forward ScanTPcheat(playerid); public ScanTPcheat(playerid) { if(GetPVarInt(playerid, "TPEnable") == 1) { if(GetPlayerDistanceFromPoint(playerid, acX[playerid], acY[playerid], acZ[playerid]) > 100.0) Kick(playerid); // Если игрок далеко от своих подлиных координатов чем на 100 метров, тогда кикаем его. else GetPlayerPos(playerid, acX[playerid], acY[playerid], acZ[playerid]); // Иначе их записываем в подлиные координаты. new Float:X, Float:Y, Float:Z; // Переменные для записи координатов игрока. GetPlayerPos(playerid, X, Y, Z); // Записываем координаты игрока в переменные. if(!IsPlayerInRangeOfPoint(playerid, 5.0, X, Y, Z)) Kick(playerid); } return 1; } Критикуйте новичка, и критикуешь - предлагай. Я не против сердечек и слов 'Спасибо' :)