И так сегодня я вам расскажу как создать анти-чит на деньги. Для начала создадим массив, в котором будут храниться наши деньги.
Code
new Cash[MAX_PEOPLE];
Сделаем обнуление денег в массиве, при заходе нового игрока. Добавляем в
Code
public OnPlayerConnect(playerid)
Строку
Code
Cash[playerid]=0;
Теперь создадим новые функции, для наших новых денег. В любую часть мода вставляем:
Code
GivePlayerCash(playerid, money)// Функция, чтоб прибавить денег к текущим деньгам { Cash[playerid] += money; ResetPlayerMoney(playerid);//Забираем все визуальное бабло GivePlayerMoney(playerid,Cash[playerid]);//Выдаем визуальное бабло return Cash[playerid]; } SetPlayerCash(playerid, money)// Функция, чтоб установить новое количество денег { Cash[playerid] = money; ResetPlayerMoney(playerid);//Забираем все визуальное бабло GivePlayerMoney(playerid,Cash[playerid]);///Выдаем визуальное бабло return Cash[playerid]; } ResetPlayerCash(playerid)// Убираем все деньги у пользователя { Cash[playerid] = 0; ResetPlayerMoney(playerid);//Забираем все визуальное бабло GivePlayerMoney(playerid,Cash[playerid]);//Выдаем визуальное бабло return Cash[playerid]; } GetPlayerCash(playerid)// Узнаем, сколько денег осталось у игрока { return Cash[playerid]; }
Теперь можно заменить все стандартные функции:
Code
GivePlayerMoney
на
Code
GivePlayerCash
Code
ResetPlayerMoney
на
Code
ResetPlayerCash
Code
GetPlayerCash
на
Code
GetPlayerMoney
И использовать в дальнейшем только функции, которые мы с вами создали.
Теперь не пройдет не один читер, желающий сделать себе денег. Для того, что бы при читерстве не прибавлялись визуально деньги, можно добавить в
Code
OnPlayerSpawn
Code
ResetPlayerMoney(i);//Визуально забираем все деньги GivePlayerMoney(i,Cash[i]);//Устанавливаем визуально настоящую сумму
И при последующем спавне у него счетчик денег вернёться нужное положение.
Теперь всё готово. Желаем вам приятной игры на сервере.
Теперь создадим новые функции, для наших новых денег. В любую часть мода вставляем: Code
GivePlayerCash(playerid, money)// Функция, чтоб прибавить денег к текущим деньгам { Cash[playerid] += money; ResetPlayerMoney(playerid);//Забираем все визуальное бабло GivePlayerMoney(playerid,Cash[playerid]);//Выдаем визуальное бабло return Cash[playerid]; } SetPlayerCash(playerid, money)// Функция, чтоб установить новое количество денег { Cash[playerid] = money; ResetPlayerMoney(playerid);//Забираем все визуальное бабло GivePlayerMoney(playerid,Cash[playerid]);///Выдаем визуальное бабло return Cash[playerid]; } ResetPlayerCash(playerid)// Убираем все деньги у пользователя { Cash[playerid] = 0; ResetPlayerMoney(playerid);//Забираем все визуальное бабло GivePlayerMoney(playerid,Cash[playerid]);//Выдаем визуальное бабло return Cash[playerid]; } GetPlayerCash(playerid)// Узнаем, сколько денег осталось у игрока { return Cash[playerid]; }
как это создал теперь заменяешь их...)потом у себя там при передаче и т.п заменяешь деньги)
C:\Users\AVPC\Ravens Final\gamemodes\larp.pwn(80500) : warning 203: symbol is never used: "GetPlayerCash" C:\Users\AVPC\Ravens Final\gamemodes\larp.pwn(80500) : warning 203: symbol is never used: "GivePlayerCash" C:\Users\AVPC\Ravens Final\gamemodes\larp.pwn(80500) : warning 203: symbol is never used: "ResetPlayerCash" C:\Users\AVPC\Ravens Final\gamemodes\larp.pwn(80500) : warning 203: symbol is never used: "SetPlayerCash"