Загрузка...

Анти-Чит на Телепорт. [Pawn]

Тема в разделе GTA SAMP создана пользователем yollee_inactive522250 1 ноя 2018. (поднята 1 ноя 2018) 461 просмотр

  1. yollee_inactive522250
    yollee_inactive522250 Автор темы 1 ноя 2018 12 28 июл 2018
    Привет, сегодня покажу как сделать Анти-Чит от любителей телепортироваться на серверах SA-MP.

    Сделаем мы это простым методом. При спавне игрока записываем его подлинные координаты, дальше уже по проверке записываем. Держим код:

    1. Объявим переменные для всех игроков с подлинными координатами:
    PHP
    newFloat:acX[MAX_PLAYERS], Float:acY[MAX_PLAYERS], Float:acZ[MAX_PLAYERS], TimeTP[MAX_PLAYERS];
    2. Создаём стоковую функцию в самом конце мода:
    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:
    PHP
    SetPVarInt(playerid, "TPEnable", 0);
    TimeTP[playerid] = SetTimerEx("ScanTPcheat", 1000, true, "i", playerid);
    5. В паблик OnPlayerSpawn пропишите:
    PHP
    SetPVarInt(playerid, "TPEnable", 1);
    6. В паблик OnPlayerDisconnect пропишите:
    PHP
    KillTimer(TimeTP[playerid]);
    7. В самый низ мода:
    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;
    }

    Критикуйте новичка, и критикуешь - предлагай.
    Я не против сердечек и слов 'Спасибо' :)
     
    1 ноя 2018 Изменено
  2. wacwac
    wacwac 1 ноя 2018 0 22 окт 2018
    Здравствуйте при заходе на сервер сразу кикает как исправить?
     
  3. yollee_inactive522250
    yollee_inactive522250 Автор темы 1 ноя 2018 12 28 июл 2018
    Сейчас все исправлю
     
  4. yollee_inactive522250
    yollee_inactive522250 Автор темы 1 ноя 2018 12 28 июл 2018
    Исправлено, переделайте все заново. Метод сделан по другому, сейчас фиксит ложные вызовы.
     
  5. wacwac
    wacwac 1 ноя 2018 0 22 окт 2018
    спасибо уже лучше но когда входишь иногда кикакает иногда нет
     
Загрузка...
Top