Thread: [Include] [INC] Money Anticheat
View Single Post
Old 13/05/2010, 06:43 PM   #71
lost13
Gangsta
 
Join Date: Aug 2009
Posts: 760
Reputation: 5
Default Re: [INC] Money Anticheat

вот выкладывал я на другом сайте =/ античит непробиваемый одно но как и у всех хороших античитов не поиграть в казино только как ктото сказал "себе в убыток" и он нелюбит стант бонусы =/ + нужно сделать проверку на такси но только 1 раз иначе античит будет уязвим, например можно сделать при посадке в такси playersmoneys[playerid] = GetPlayerMoney(playerid);

Анти-чит на деньги
ВНИМАНИЕ!: Скрипт не будет корректно работать со сторонними фильтрскриптами в которых даются или отнимаются деньги! следует добавить этот скрипт во все сторонние фильтрскрипты!

и так начнём урок создание простейшего и эффективного анти чита на деньги.
создадим переменную в которой будем хранить денежки игроков:

PHP код:
new playersmoneys[MAX_PLAYERS];
Далее в OnPlayerDisConnect засунем

PHP код:
playersmoneys[playerid] = 0;
Потом (можно в самом низу мода) создаём свои функции денег:

PHP код:
stock GiveServerMoney(playerid,amout)//дает деньги от сервера
{
GivePlayerMoney(playerid,amout);
playersmoneys[playerid] = GetPlayerMoney(playerid);//сохраняем деньги в нашу переменную
return 1;
}

stock ResetServerMoney(playerid)//отбирает деньги
{
GivePlayerMoney(playerid,-GetPlayerMoney(playerid));
playersmoneys[playerid] = GetPlayerMoney(playerid);//сохраняем деньги в нашу переменную
return 1;
}
Дальше заменяем GivePlayerMoney и ResetPlayerMoney на новые функции

Далее создаём таймер или вставляем этот код в OnPlayerUpdate:

PHP код:
if(GetPlayerMoney(playerid) > playersmoneys[playerid]/* && !IsPlayerAdmin(playerid)*/)//раскомментируйте если нехотите чтобы кикало админов
{
ResetPlayerMoney(playerid);
GiveServerMoney(playerid,lostmoneys[playerid]);
for(new i; i < MAX_PLAYERS; i++)
if(IsPlayerConnected(i) && playerid != i){
format(str,sizeof(str),"\"%s\" был кикнут администратором \"Server\". (Причина: Денежный чит)",GetName(playerid));
SendClientMessage(i,red,str);}
SendClientMessage(playerid,red,"Вы были кикнуты администратором \"Server\". (Причина: Денежный чит)");
TogglePlayerControllable(playerid,0);
Kick(playerid);//если хотите чтобы банило замените на Ban(playerid);
return 1;
}
Всё античит готов, урок закончен всем спасибо

P.S. Античит проверим пицотраз рабочий 100% если у вас есть какие то ошибки(которых быть не может) то, попробуйте всё сделать руками!
__________________
lost13 is offline   Reply With Quote