AntiMoneyCheat_J(playerid)
{
new clientmoney = GetPlayerMoney(playerid);
if(clientmoney < 0) return SetPlayerMoney_J(playerid,0);
if(clientmoney == Player[playerid][pCash]) return true;
if(clientmoney < Player[playerid][pCash] || clientmoney > Player[playerid][pCash]) return SetPlayerMoney_J(playerid,Player[playerid][pCash]);
return true;
}
stock GiveCash(playerid, cash)
{
GivePlayerMoney(playerid, cash);
return PlayerInfo[playerid][pCash] += cash;
}
stock ResetCash(playerid)
{
PlayerInfo[playerid][pCash] = 0;
ResetPlayerMoney(playerid);
return 1;
}
stock SetCash(playerid, cash)
{
PlayerInfo[playerid][pCash] = cash;
ResetPlayerMoney(playerid);
GivePlayerMoney(playerid, cash);
return 1;
}
stock GetCash(playerid) return PlayerInfo[playerid][pCash];
|
Бессмысленная функция, которая только нагрузку дает......
Braga style |
|
Никогда не юзайте GetPlayerMoney. Хранишь деньги на серверной стороне в тойже Player[playerid][pCash]. И брать инфо, сколько денег с нее же Player[playerid][pCash]. При передаче отъеме денег делать тоже самое с этой переменной.
И античитов на деньги пруд пруди. Вот тебе пример Код:
stock GiveCash(playerid, cash)
{
GivePlayerMoney(playerid, cash);
return PlayerInfo[playerid][pCash] += cash;
}
stock ResetCash(playerid)
{
PlayerInfo[playerid][pCash] = 0;
ResetPlayerMoney(playerid);
return 1;
}
stock SetCash(playerid, cash)
{
PlayerInfo[playerid][pCash] = cash;
ResetPlayerMoney(playerid);
GivePlayerMoney(playerid, cash);
return 1;
}
stock GetCash(playerid) return PlayerInfo[playerid][pCash];
|
|
Мне не нужен новый мне нужно чтобы проверили.
Я просто сомневаюсь что это был чит,мне кажется взлом базы, так как у игрока были деньги в переменной. А читом обычным нельзя ни как изменить скриптовую переменную. Может есть у кого идеи как это могло произойти, база или чит? |
|
Может быть в сохранении аккаунта деньги ты записываешь не с переменной а с кол-ва денег у игрока? (GetPlayerMoney).
|