SA-MP Forums Archive
[Ajuda] Duvida - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Português/Portuguese (https://sampforum.blast.hk/forumdisplay.php?fid=34)
+---- Thread: [Ajuda] Duvida (/showthread.php?tid=576150)



Duvida - LucasDias - 01.06.2015

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")



Re: Duvida - Dayvison_ - 01.06.2015

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


Re: Duvida - Bruno13 - 01.06.2015

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.


Re: Duvida - LucasDias - 01.06.2015

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


Re: Duvida - Dayvison_ - 01.06.2015

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 



Re: Duvida - LucasDias - 01.06.2015

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 ?


Re: Duvida - Dayvison_ - 01.06.2015

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...