[Ajuda] Duvida
#1

Eu poderia evitar estar formas de hack de dinheiro definindo meu " GivePlayerMoney" "GetPlayerMoney" etc, desta forma ??

pawn Код:
#define     GivePlayerGrana(%0,%1) SetPVarInt(%0,"Money",GetPlayerGrana(%0)+%1),GivePlayerMoney(%0,%1)
#define     ResetPlayerGrana(%0) SetPVarInt(%0,"Money",0),ResetPlayerMoney(%0)
#define     GetPlayerGrana(%0) GetPVarInt(%0,"Money")
Reply
#2

Hmm, isto ajudaria SIM, mas nгo e um anti cheat se quiser hm fala que eu posto aqui, nгo й algo complicado
Reply
#3

Basicamente sim, bastaria adicionar esta validaзгo:
pawn Код:
//Exemplo
public OnPlayerConnect(playerid)
{
    SetTimerEx("CheckMoney", 1000, true, "i", playerid);
    return 1;
}

forward CheckMoney(playerid);
public CheckMoney(playerid)
{
    if(!ValidateMoney(playerid)) Ban(playerid);

}


ValidadeMoney(playerid)
{
    if(GetPlayerMoney(playerid) != GetPlayerGrana(playerid)) return false;
    return true;
}
Mas eu aconselharia mais a estudar e se basear pelo mйtodo hook.
Reply
#4

Quote:
Originally Posted by Day_
Посмотреть сообщение
Hmm, isto ajudaria SIM, mas nгo e um anti cheat se quiser hm fala que eu posto aqui, nгo й algo complicado
Se puder postar uma base pra eu ter uma ideia agradeзo, pois nisto de anti money hack sou novo :X
Reply
#5

PHP код:
new Money[MAX_PLAYERS];  
public 
OnPlayerUpdate(playerid// OU TIMER
{
    if(
Money[playerid] != GetPlayerMoney(playerid))  
    {
        
SetPlayerMoney(playerid,Money[playerid]);
    }
    return 
true;  
}  
public 
OnPlayerConnect(playerid)  
{  
    
ResetPlayerMoney(playerid);  
    return 
true;  
}  
  
stock _GivePlayerMoney(playeridvalor)  
{  
    
Money[playerid] += valor;  
    
GivePlayerMoney(playeridvalor);  
    return 
true;  
}  
stock _ResetPlayerMoney(playerid)  
{  
    
Money[playerid] = 0;  
    
ResetPlayerMoney(playerid);  
    return 
true;  
}  
stock SetPlayerMoney(playerid,valor)  
{
    
ResetPlayerMoney(playerid);
    
GivePlayerMoney(playeridvalor);
    return 
true;  
}
#if defined _ALS_GivePlayerMoney
    #undef GivePlayerMoney
#else
    #define _ALS_GivePlayerMoney
#endif
 
#define GivePlayerMoney _GivePlayerMoney
#if defined _ALS_ResetPlayerMoney
    #undef ResetPlayerMoney
#else
    #define _ALS_ResetPlayerMoney
#endif
 
#define ResetPlayerMoney _ResetPlayerMoney 
Reply
#6

Quote:
Originally Posted by Day_
Посмотреть сообщение
PHP код:
new Money[MAX_PLAYERS];  
public 
OnPlayerUpdate(playerid// OU TIMER
{
    if(
Money[playerid] != GetPlayerMoney(playerid))  
    {
        
SetPlayerMoney(playerid,Money[playerid]);
    }
    return 
true;  
}  
public 
OnPlayerConnect(playerid)  
{  
    
ResetPlayerMoney(playerid);  
    return 
true;  
}  
  
stock _GivePlayerMoney(playeridvalor)  
{  
    
Money[playerid] += valor;  
    
GivePlayerMoney(playeridvalor);  
    return 
true;  
}  
stock _ResetPlayerMoney(playerid)  
{  
    
Money[playerid] = 0;  
    
ResetPlayerMoney(playerid);  
    return 
true;  
}  
stock SetPlayerMoney(playerid,valor)  
{
    
ResetPlayerMoney(playerid);
    
GivePlayerMoney(playeridvalor);
    return 
true;  
}
#if defined _ALS_GivePlayerMoney
    #undef GivePlayerMoney
#else
    #define _ALS_GivePlayerMoney
#endif
 
#define GivePlayerMoney _GivePlayerMoney
#if defined _ALS_ResetPlayerMoney
    #undef ResetPlayerMoney
#else
    #define _ALS_ResetPlayerMoney
#endif
 
#define ResetPlayerMoney _ResetPlayerMoney 
Eu poderia fazer isto como include? mas nгo afetaria minha definiзгo de Giveplayermoney para giveplayercash ?
Reply
#7

Quote:
Originally Posted by LucasDias
Посмотреть сообщение
Eu poderia fazer isto como include? mas nгo afetaria minha definiзгo de Giveplayermoney para giveplayercash ?
Nгo afetaria.. Mas tambйm nao funcionaria com aquela definicao. Vocк pode usar somente este so mudando a variavel para a PVAR que vocк quer...
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)