Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Страница 1 из 2 1 2 ПоследняяПоследняя
Показано с 1 по 10 из 11
  1. #1
    Аватар для Дёня
    Пользователь

    Статус
    Оффлайн
    Регистрация
    17.03.2014
    Сообщений
    152
    Репутация:
    13 ±

    Как настроить античиты

    Приветствую всех!

    Вот у меня возникли 2 проблемы.


    1 проблема


    Как сделать, чтобы максимум с одного IP мог конектится не 2, а 1 игрок.
    Вот код:
    PHP код:
    new ip[2][16];
        
    GetPlayerIp(playerid,ip[0],16);
        for(new 
    iGetMaxPlayers(), x!= mi++)
        {
            if(!
    IsPlayerConnected(i) || == playerid) continue;
            
    GetPlayerIp(i,ip[1],16);
            if(!
    strcmp(ip[0],ip[1],true)) x++;
            if(
    2) return Kick(i);
        } 
    2 проблема


    Вот античит на починку авто читом, но при починке машины командой /repair(может юзать любой игрок) античит все равно кикает, как это исправить?

    Вот код:
      Открыть/закрыть

    PHP код:
    forward CheckForCheater(playerid);
    public 
    CheckForCheater(playerid)
    {
        if(!
    IsPlayerInRangeOfPoint(playerid,20,610.9915,-11.1024,1000.9219))
        {
            if(
    IsPlayerInAnyVehicle(playerid) && GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
            {
                if(!
    player_NoCheckTimeVeh[playerid])
                {
                    
    GetVehicleHealth(GetPlayerVehicleID(playerid),player_VehHealth[playerid]);
                    if(
    player_VehHealth[playerid] > HealthVeh[playerid])
                    {
                        if(
    IsPlayerInRangeOfPoint(playerid,7.5,2064.2842,-1831.4736,13.5469)) { player_NoCheckTimeVeh[playerid] = 3; return 1; }
                        if(
    IsPlayerInRangeOfPoint(playerid,7.5,487.6401,-1739.9479,11.1385)) { player_NoCheckTimeVeh[playerid] = 3; return 1; }
                        if(
    IsPlayerInRangeOfPoint(playerid,7.5,1024.8651,-1024.0870,32.1016)) { player_NoCheckTimeVeh[playerid] = 3; return 1; }
                        if(
    IsPlayerInRangeOfPoint(playerid,7.5,-1904.7019,284.5968,41.0469)) { player_NoCheckTimeVeh[playerid] = 3; return 1; }
                        if(
    IsPlayerInRangeOfPoint(playerid,7.5,-2425.7822,1022.1392,50.3977)) { player_NoCheckTimeVeh[playerid] = 3; return 1; }
                        if(
    IsPlayerInRangeOfPoint(playerid,7.5,-1420.5195,2584.2305,55.8433)) { player_NoCheckTimeVeh[playerid] = 3; return 1; }
                        if(
    IsPlayerInRangeOfPoint(playerid,7.5,-99.9417,1117.9048,19.7417)) { player_NoCheckTimeVeh[playerid] = 3; return 1; }
                        if(
    IsPlayerInRangeOfPoint(playerid,7.5,1975.2384,2162.5088,11.0703)) { player_NoCheckTimeVeh[playerid] = 3; return 1; }
                        if(
    IsPlayerInRangeOfPoint(playerid,7.5,720.0854,-457.8807,16.3359)) { player_NoCheckTimeVeh[playerid] = 3; return 1; }
                        
    format(GlobalInfo,sizeof(GlobalInfo),"[ Anti-Cheat ] '%s' был кикнут с сервера, причина [Repair Car-Hack]",PlayerName(playerid));
                        
    SendClientMessage(playerid0xFF0000AA"Вы были кикнуты за починку транспорта читом!");
                        
    SendClientMessageToAll(admin2GlobalInfo);
                        
    Kick(playerid);
                        }
                }
                else { 
    player_NoCheckTimeVeh[playerid] -= 1; }
                
    GetVehicleHealth(GetPlayerVehicleID(playerid),HealthVeh[playerid]);
            }

        }
        return 
    1;
    }

    public 
    OnPlayerStateChange(playeridnewstateoldstate)
    {
        if(
    newstate == PLAYER_STATE_DRIVER)
        {
            
    timer2[playerid] = SetTimerEx("CheckForCheater",1000,true,"i",playerid);
            
    player_NoCheckTimeVeh[playerid] = 1;
        }
        return 
    1;



    А вот команда, на починку:

    PHP код:
       if(strcmp(cmd"/repair"true) == || strcmp(cmd"/r"true) == 0)
       {
       if(!
    IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid,0xE7E6FFAA,"Вы должны быть в машине");
       
    RepairVehicle(GetPlayerVehicleID(playerid));
       
    Give_Money(playerid,-1000);
       
    PlayerPlaySound(playerid11500.00.00.0);
       
    SendClientMessage(playerid,COLOR_GREEN,"[CAR] Транспорт починен! ");
       return 
    1;
       } 

  2. #2
    Аватар для Spectrum
    Пользователь

    Статус
    Оффлайн
    Регистрация
    14.04.2014
    Адрес
    Omsk, Russia
    Сообщений
    349
    Репутация:
    49 ±
    if(x > 2)
    поменяй на 1
    Skype: sp3ctrum_attack

  3. Пользователь сказал cпасибо:
    Дёня (09.07.2014)
  4. #3
    Аватар для underwoker
    Пользователь

    Статус
    Оффлайн
    Регистрация
    07.03.2014
    Сообщений
    331
    Репутация:
    47 ±
    Выше уже сказали, но можешь использовать этот вариант.
    PHP код:
    new IP1[16],IP2[16],string[120];
        
    GetPlayerIp(playeridIP1sizeof(IP1));
        for (new 
    GetMaxPlayers()-1!= -1; --i)
        {
            if(
    playerid == || !IsPlayerConnected(i)) continue;
            
    GetPlayerIp(iIP2sizeof(IP2));
            if(!
    strcmp(IP1IP2true)) return Kick(i);
        } 
    А хотя какая разница, одно и тоже.
    "Власть, кровь, няш-мяш, кровь, власть, Крым наш!" - (c) Наталья Поклонская.

    Критик должен быть готов и способен в любой момент и по первому требованию занять место критикуемого им и выполнять его дело продуктивно и компетентно. В противном случае критика превращается в наглую, самодовлеющую силу и становится тормозом на пути прогресса. (с) AXE

  5. Пользователь сказал cпасибо:
    Дёня (09.07.2014)
  6. #4
    Аватар для Дёня
    Пользователь

    Статус
    Оффлайн
    Регистрация
    17.03.2014
    Сообщений
    152
    Репутация:
    13 ±
    Цитата Сообщение от underwoker Посмотреть сообщение
    Выше уже сказали, но можешь использовать этот вариант.
    PHP код:
    new IP1[16],IP2[16],string[120];
        
    GetPlayerIp(playeridIP1sizeof(IP1));
        for (new 
    GetMaxPlayers()-1!= -1; --i)
        {
            if(
    playerid == || !IsPlayerConnected(i)) continue;
            
    GetPlayerIp(iIP2sizeof(IP2));
            if(!
    strcmp(IP1IP2true)) return Kick(i);
        } 
    А хотя какая разница, одно и тоже.
    Спасибо Вам и Spectrum, а решение проблемы с античитом на починку автомобиля не подскажите?

  7. #5
    Аватар для L0ndl3m
    Пользователь

    Статус
    Оффлайн
    Регистрация
    19.10.2013
    Адрес
    Ярославль
    Сообщений
    1,366
    Репутация:
    774 ±
    Цитата Сообщение от Дёня Посмотреть сообщение
    решение проблемы с античитом на починку автомобиля не подскажите?
    В команду:
    PHP код:
    player_NoCheckTimeVeh[playerid] = 1

  8. Пользователь сказал cпасибо:
    Дёня (10.07.2014)
  9. #6
    Аватар для underwoker
    Пользователь

    Статус
    Оффлайн
    Регистрация
    07.03.2014
    Сообщений
    331
    Репутация:
    47 ±
    PHP код:
    player_NoCheckTimeVeh[playerid] = 1
    В команду добавь
    UPD: Londlem опередил.
    "Власть, кровь, няш-мяш, кровь, власть, Крым наш!" - (c) Наталья Поклонская.

    Критик должен быть готов и способен в любой момент и по первому требованию занять место критикуемого им и выполнять его дело продуктивно и компетентно. В противном случае критика превращается в наглую, самодовлеющую силу и становится тормозом на пути прогресса. (с) AXE

  10. Пользователь сказал cпасибо:
    Дёня (10.07.2014)
  11. #7
    Аватар для Дёня
    Пользователь

    Статус
    Оффлайн
    Регистрация
    17.03.2014
    Сообщений
    152
    Репутация:
    13 ±
    Спасибо Вам всем)

    +сы дал всем.
    Последний раз редактировалось Дёня; 12.07.2014 в 23:04.

  12. #8
    Аватар для Дёня
    Пользователь

    Статус
    Оффлайн
    Регистрация
    17.03.2014
    Сообщений
    152
    Репутация:
    13 ±
    Цитата Сообщение от Spectrum Посмотреть сообщение
    поменяй на 1
    Подниму старую тему.


    Поменяв с x>2 на x>1

    То кикает всех игроков, кроме того, кто успел зайти первым

  13. #9
    Аватар для underwoker
    Пользователь

    Статус
    Оффлайн
    Регистрация
    07.03.2014
    Сообщений
    331
    Репутация:
    47 ±
    Цитата Сообщение от Дёня Посмотреть сообщение
    Подниму старую тему.


    Поменяв с x>2 на x>1

    То кикает всех игроков, кроме того, кто успел зайти первым
    Ну значит у них IP одинаковые, не?
    Либо пробуй мой вариант, только я хз в чем будут отличия.
    "Власть, кровь, няш-мяш, кровь, власть, Крым наш!" - (c) Наталья Поклонская.

    Критик должен быть готов и способен в любой момент и по первому требованию занять место критикуемого им и выполнять его дело продуктивно и компетентно. В противном случае критика превращается в наглую, самодовлеющую силу и становится тормозом на пути прогресса. (с) AXE

  14. #10
    Аватар для Дёня
    Пользователь

    Статус
    Оффлайн
    Регистрация
    17.03.2014
    Сообщений
    152
    Репутация:
    13 ±
    Цитата Сообщение от underwoker Посмотреть сообщение
    Ну значит у них IP одинаковые, не?
    Либо пробуй мой вариант, только я хз в чем будут отличия.
    IP не одинаковые, это 100%, т.к. я из Казахстана, а тот кто зашел первый вообще с России.

    Сейчас попробую твой вариант.

 

 
Страница 1 из 2 1 2 ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •