В начало мода:
PHP код:
#define MAX_MONEY 1 // максимально разрешенная разница между настоящими и читерскими деньгами
new Money[MAX_PLAYERS];
forward AntiMoneyHack();
Создадим таймер
PHP код:
public AntiMoneyHack() { // © Seif
for( new i = 0, money; i != MAX_PLAYERS; i++ ) {
if( !IsPlayerConnected( i ) || IsPlayerNPC( playerid ) )
continue ; // пропускает ботов и не подключенных игроков
money = GetPlayerMoney(i); // записываем в переменную значение денег игрока
if( money > Money[i] ) { // если произошло несовпадение
if( ( money - Money[i] ) > MAX_MONEY ) { // и разница между истинными деньгами и начитеренными больше значения MAX_MONEY
SetPlayerCash( i, Money[i] ); // устанавливаем игроку его истинные деньги
}
}
}
}
В OnPlayerConnect:
PHP код:
ResetPlayerCash(playerid);
Создадим Stocks
PHP код:
stock GivePlayerCash(playerid, amount) {
Money[playerid] += amount;
return GivePlayerMoney(playerid, amount);
}
stock SetPlayerCash(playerid, amount) {
Money[playerid] = amount;
ResetPlayerMoney(playerid);
return GivePlayerMoney(playerid, amount);
}
stock ResetPlayerCash(playerid) {
Money[playerid] = 0;
return ResetPlayerMoney(playerid);
}
stock GetPlayerCash(playerid)
return Money[playerid];
В public OnGameModeInit
PHP код:
SetTimer("AntiMoneyHack", 1000, true); // создаем таймер с переодичностью повтора в 1 секунду
Итак, осталось только заменить функции GivePlayerMoney, GetPlayerMoney, SetPlayerMoney, ResetPlayerMoney на GivePlayerCash, GetPlayerCash, SetPlayerCash, ResetPlayerCash
Автор античита: Seif
Автор урока: я