SA-MP Forums Archive
[Include] Server-Side Money - Sem R$, Sem complicaзгo. - 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)
+----- Forum: Lançamentos/Releases (https://sampforum.blast.hk/forumdisplay.php?fid=56)
+----- Thread: [Include] Server-Side Money - Sem R$, Sem complicaзгo. (/showthread.php?tid=244573)



Server-Side Money - Sem R$, Sem complicaзгo. - steki. - 27.03.2011

Introduзгo.

Sempre teve esse negуcio de hackear dinheiro e tals, entгo eu fiz isso (Eu sei que tem um monte).
Demorou por volta de 45 Minutos, mas nada muito complicado.

Funзoes.

Bem, eu fui criar natives e deu maior rolo >.< entгo, vai as forwards mesmo.

PHP код:
forward MoneyUpdate(); // Ele atualiza o dinheiro do player e checa se o dinheiro esta diferente. As funзхes estгo dentro de um loop while e tem um timer nele desde o Init do GM e й executado a cada 5 seg.
forward MoneyUpdateForPlayer(playerid); // Ele apenas atualiza o dinheiro pro player.
forward MoneyCheckForPlayer(playeridcheckedid); // Checa se o dinheiro tб diferente do server. Se maior, alerta o admin se for menor, executa O MoneyUpdateForPlayer
forward SetPlayerServerMoney(playeridammount); // Seta a grana server side e atualiza ele
forward GivePlayerServerMoney(playeridammount); // mesma coisa, sу que dб a grana
forward ResetPlayerServerMoney(playerid); // e aqui ele reseta 
Crйditos.

Crйditos: [iPs] e [iPs] Miki. tbh nгo sei se estou mesmo na iPs.

Download.

PHP код:

#include <a_samp>
new Money[MAX_PLAYERS];
new 
UpdateTimer;
forward MoneyUpdate();
forward MoneyUpdateForPlayer(playerid);
forward MoneyCheckForPlayer(playeridcheckedid);
forward SetPlayerServerMoney(playeridammount);
forward GivePlayerServerMoney(playeridammount);
forward ResetPlayerServerMoney(playerid);
public 
MoneyUpdate()
{
    new 
i;
    while(
MAX_PLAYERS)
    {
        if(
GetPlayerMoney(i) > Money[i])
        {
            new 
ii;
            while(
ii MAX_PLAYERS)
            {
                if(
IsPlayerAdmin(ii))
                {
                    new 
str[80], str2[50], pName[21];
                    
GetPlayerName(ipName21);
                    
format(str80" -- O Player %s pode estar usando Cheat de Grana"pName);
                    
format(str250" -- Client Side Money: %d | Server Side Money"GetPlayerMoney(i), Money[i]);
                    
SendClientMessage(ii0xFFFFAAAAstr);
                    
SendClientMessage(ii0xFFFFAAAAstr2);
                }
            }
        }
        
ResetPlayerMoney(i);
        
GivePlayerMoney(iMoney[i]);
    }
}
public 
MoneyUpdateForPlayer(playerid)
{
    
ResetPlayerMoney(playerid);
    
GivePlayerMoney(playeridMoney[playerid]);
}
public 
SetPlayerServerMoney(playeridammount)
{
    
Money[playerid] = ammount;
    
MoneyUpdateForPlayer(playerid);
}
public 
GivePlayerServerMoney(playeridammount)
{
    
Money[playerid] += ammount;
    
MoneyUpdateForPlayer(playerid);
}
public 
ResetPlayerServerMoney(playerid)
{
    
Money[playerid] = 0;
    
MoneyUpdateForPlayer(playerid);
}
public 
MoneyCheckForPlayer(playeridcheckedid)
{
    new 
CMoneySMoneypName[21];
    
GetPlayerName(checkedidpName21);
    
CMoney GetPlayerMoney(checkedid);
    
SMoney Money[checkedid];
    
// Aqui, eu criei variaveis locais pra nгo fazer consultas Get repetidamente
    
if(CMoney SMoney)
    {
        new 
str[80];
        
format(str80"[!] - %s.  [Client-Side: %d | Server-Side: %d]"pNameCMoneySMoney);
        
SendClientMessage(playerid0xFFFFAAAAstr);
    }
    else 
MoneyUpdateForPlayer(checkedid);
}
public 
OnGameModeInit()
{
    print(
"========================================");
    print(
"| ServerSide Money Carregado           |");
    print(
"========================================");
    print(
"= por: [iPs] Miki ======================");
    
    
UpdateTimer SetTimer("MoneyUpdate"5000true);
    return 
1;
}
public 
OnGameModeExit()
{
    
KillTimer(UpdateTimer);
    return 
1;

Por favor, nгo retire os creditos, =)

Faзa bom proveito.


Re: Server-Side Money - Sem R$, Sem complicaзгo. - Strong_ADM - 27.03.2011

Muito bom, ontem mesmo eu estava pensando em fazer um anti money hack seguindo esta lуgica hehe, уtimo trabalho.


Re: Server-Side Money - Sem R$, Sem complicaзгo. - steki. - 27.03.2011

Sim, muito obrigado. Tentei fazer algo simples e leve e fбcil de usar, nгo tem muita zica.

#define GivePlayerMoney GivePlayerServerMoney

E assim por diante :'D


Re: Server-Side Money - Sem R$, Sem complicaзгo. - Falcon. - 27.03.2011

Ficou muito bom.
Уtimo trabalho


Re: Server-Side Money - Sem R$, Sem complicaзгo. - steki. - 27.03.2011

Obrigado. Vou dar uma revirada no forum em busca de inspiraзгo.


Re: Server-Side Money - Sem R$, Sem complicaзгo. - Link_ - 02.04.2011

Qual em lugar de qual?

tipo
GetPlayerMoney = ?
GivePlayerMonet = ?
resetPlayerMoney = ?


Re: Server-Side Money - Sem R$, Sem complicaзгo. - JonathanFeitosa - 02.04.2011

Jб Tem Vбrios assim. Nгo Achei Necessбrio Na Minha Opiniгo


Re: Server-Side Money - Sem R$, Sem complicaзгo. - Link_ - 02.04.2011

jonathan tem varios mais tem uns que n pega no 0.3c ou no b


Re: Server-Side Money - Sem R$, Sem complicaзгo. - pGibson - 14.04.2011

Quote:
Originally Posted by Jonathan_Feitosa
Посмотреть сообщение
Jб Tem Vбrios assim. Nгo Achei Necessбrio Na Minha Opiniгo
Okay then


Re: Server-Side Money - Sem R$, Sem complicaзгo. - sakraye23 - 16.06.2011

tem que substituir os giveplayermoney, setplayermoney e etc por quais linhas? n consegui entender.