13.05.2010, 17:47
(
Last edited by lost13; 14/09/2010 at 05:17 PM.
)
Анти-чит на деньги
ВНИМАНИЕ!: Скрипт не будет корректно работать со сторонними фильтрскриптами в которых даются или отнимаются деньги! следует добавить этот скрипт во все сторонние фильтрскрипты!
и так начнём урок создание простейшего и эффективного анти чита на деньги.
создадим переменную в которой будем хранить денежки игроков:
Дальше заменяем GivePlayerMoney и ResetPlayerMoney на новые функции
Далее создаём таймер или вставляем этот код в OnPlayerUpdate:
Всё античит готов, урок закончен всем спасибо
P.S. Античит проверен пицотраз рабочий 100% если у вас есть какие то ошибки(которых быть не может) то, попробуйте всё сделать руками!
ВНИМАНИЕ!: Скрипт не будет корректно работать со сторонними фильтрскриптами в которых даются или отнимаются деньги! следует добавить этот скрипт во все сторонние фильтрскрипты!
и так начнём урок создание простейшего и эффективного анти чита на деньги.
создадим переменную в которой будем хранить денежки игроков:
Code:
new playersmoneys[MAX_PLAYERS]; Далее в OnPlayerDisConnect засунем playersmoneys[playerid] = 0; Потом (можно в самом низу мода) создаём свои функции денег: 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; }
Далее создаём таймер или вставляем этот код в OnPlayerUpdate:
Code:
if(GetPlayerMoney(playerid) > playersmoneys[playerid]/* && !IsPlayerAdmin(playerid)*/)//раскомментируйте если нехотите чтобы кикало админов { ResetPlayerMoney(playerid); GiveServerMoney(playerid,playersmoneys[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% если у вас есть какие то ошибки(которых быть не может) то, попробуйте всё сделать руками!