Привет, сегодня покажу как сделать Анти-Чит от любителей телепортироваться на серверах SA-MP.
Сделаем мы это простым методом. При спавне игрока записываем его подлинные координаты, дальше уже по проверке записываем. Держим код:
Критикуйте новичка, и критикуешь - предлагай.
Сделаем мы это простым методом. При спавне игрока записываем его подлинные координаты, дальше уже по проверке записываем. Держим код:
1. Объявим переменные для всех игроков с подлинными координатами:
2. В паблик OnPlayerUpdate (каждый раз) вставим такой код:
3. Создаём стоковую функцию в самом конце мода:
4. Теперь в своём моде везде функции SetPlayerPos заменяем на SetPlayerPosAC или просто добавим к ним 'AC'.
C++:
new Float:acX[MAX_PLAYERS], Float:acY[MAX_PLAYERS], Float:acZ[MAX_PLAYERS];
C++:
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); // Если игрок не рядом с собой в радиусе 5 метров, то возможно у него обход. Кикаем.
return 1;
C++:
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;
}
Критикуйте новичка, и критикуешь - предлагай.
Последнее редактирование: