Требуется помощь Античит на деньги.
#1

Сегодня на мой сервер зашёл игрок, и раздал всем деньги, на руках у него было около 1кк.

Скрипт античита:

Функция вшита в OnPlayerUpdate.

PHP код:
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;

Reply
#2

Никогда не юзайте 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];
Reply
#3

Мне не нужен новый мне нужно чтобы проверили.
Я просто сомневаюсь что это был чит,мне кажется взлом базы, так как у игрока были деньги в переменной.
А читом обычным нельзя ни как изменить скриптовую переменную.

Может есть у кого идеи как это могло произойти, база или чит?
Reply
#4

del
UPD: Упс! Опоздал
Reply
#5

Бессмысленная функция, которая только нагрузку дает......
Braga style
Reply
#6

Quote:
Originally Posted by Tumba
Посмотреть сообщение
Бессмысленная функция, которая только нагрузку дает......
Braga style
по моему ты не в курсе для чего она.
Reply
#7

Quote:
Originally Posted by cm666
Посмотреть сообщение
Никогда не юзайте 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];
примерно таким способом и делал, я не уверен что это чит, скорее через базу происходило всё, спасибо за помощь.
Reply
#8

Quote:
Originally Posted by James_Braga
Посмотреть сообщение
Мне не нужен новый мне нужно чтобы проверили.
Я просто сомневаюсь что это был чит,мне кажется взлом базы, так как у игрока были деньги в переменной.
А читом обычным нельзя ни как изменить скриптовую переменную.

Может есть у кого идеи как это могло произойти, база или чит?
Может быть в сохранении аккаунта деньги ты записываешь не с переменной а с кол-ва денег у игрока? (GetPlayerMoney).
Reply
#9

Quote:
Originally Posted by Maikkk
Посмотреть сообщение
Может быть в сохранении аккаунта деньги ты записываешь не с переменной а с кол-ва денег у игрока? (GetPlayerMoney).
Очень смешно
Reply
#10

Quote:
Originally Posted by James_Braga
Посмотреть сообщение
Очень смешно
А хрен его, все может быть
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)