[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
[Урок] Античит на оружие
GameR_SaHekДата: Вторник, 11.06.2013, 14:45 | Сообщение # 1
Группа: Пользователи
Сообщений: 22
Репутация: 32767
Пишем античит на оружие.
Сначала создаем массив для всех игрокок и на все оружие. 
Код
new Weapons[MAX_PLAYERS][47];

Теперь обнуляем массив игрока
В паблик OnPlayerConnect

Код
[i]for(new i=0;i<47;i++) Weapons[playerid]=0;//обнуление[/i]

Теперь защиту от ложных срабатываний, например когда садимся в авто:
В паблик OnPlayerStateChange


Код
[i]if(newstate == PLAYER_STATE_DRIVER || newstate == PLAYER_STATE_PASSENGER)   
            {   
                new model = GetVehicleModel(GetPlayerVehicleID(playerid));   
                switch(model)   
                {   
                    case 592,577,511,512,520,593,553,476,519,460,513,548,425,417,487,488,497,563,447,469:Weapons[playerid][46]= 1;   
                    case 457: Weapons[playerid][2]= 1;   
                    case 596,597,598,599: Weapons[playerid][25]= 1;   
                }   
            }[/i]


Теперь саму проверку:
В паблик OnPlayerUpdate


Код
[i]new weap = GetPlayerWeapon(playerid);   
            if(weap != 0 && !Weapons [playerid][weap]&& weap != 40)   
            {   
                    //Действие например кик   
                    Kick(playerid);   
            }[/i]

Теперь сток через которое мы даем оружие 
Код
stock GiveWeapon(player,weapid,ammo)  
{  
Weapons[player][weapid]= 1;  
GivePlayerWeapon(player,weapid,ammo);  
return ;  
}

Теперь нужно заменить все GivePlayerWeapon на GiveWeapon  
Через дефайн не будет работать проверено.  
Например код: #define GivePlayerWeapon GiveWeapon


Не работает. Заменять все надо в ручную.



  • Страница 1 из 1
  • 1
Поиск: