[Tutorial] Sistema de Pagamento
#7

Quote:
Originally Posted by Raayzeck
Посмотреть сообщение
Olб pessoal.

Bom, a cada dia que passa adquirimos novos membros no fуrum sa-mp e com a simples intenзгo de criar um servidor RP/G, e bom, para evitarmos que fiquem simplesmente pegando um gamemode postado aqui, faзa uma simples ediзгo e lance o mesmo, eu estou criando alguns tutoriais bem simples porйm que pode ajudar alguns novatos.

O que й
Bom, o sistema de "pagamento" tambйm conhecido como sistema de "payday" й o salбrio que toda a hora exata (11:00, 12:00, 13:00, e assim sucessivamente) ele faz um pagamento do salбrio para o jogador.

O que й necessбrio
Bom, pode ser feito de vбrias maneiras, porйm, nesse tutorial estarei utilizando a include Foreach e a include ZCMD, ambas sгo fбceis de serem utilizadas.

Vamos comeзar entгo, primeiramente adicione no topo de seu gamemode
PHP код:
#include zcmd
#include foreach 
Agora vamos comeзar o sistema de verdade.

Na public OnGameModeInit()
vamos adicionar o timer
PHP код:
SetTimer("Pagamento"1000true); // Pagamento й a callback que serб chamada 
Agora, em um lugar junto com as suas outras publics vamos criar a public do pagamento.

PHP код:
forward Pagamento(); // Criarmos uma funзгo com public & forward й mais vantajoso, alem de poder ser chamada com CallRemote(Local)Function & SetTimer(Ex), tambйm й rбpida.
public Pagamento()
{
    foreach(
Playeri// loop do foreach
    
{
        new 
string[128]; // Vai formatar o "SendClientMessage"
        
new salario 750 random(1000); // Valor random do salбrio, minimo de 750 e mбximo de 1000
        
new HourMinuteSecond// Cria a variavel das horas
        
gettime(HourMinuteSecond); // Pega o tempo
        
if(IsPlayerConnected(i)) // Verifica se o player estб conectado
        
{
            if(
Minute == && Second == 0// Verifica se o minuto estб em 00 e o segundo tambйm
            
{
                
format(stringsizeof(string), "ATENЗГO: AGORA SГO %d:00 HORAS!"Hour); // Diz que horas sгo com a variavel "Hour"
                
SendClientMessage(i, -1string); // Formataзгo
                
SendClientMessage(i,-1"|_____  PAGAMENTO  _____|"); // SCM dizendo que й o pagamento, (caso queira mudar as cores, mude o "-1")
                
format(stringsizeof(string), "Salario: R$%d   Imposto: -R$50"salarionormal);  // Diz quanto o jogador ganhou do salбrio e diz o valor do imposto.
                
SendClientMessage(i, -1string); // Formataзгo
                
format(stringsizeof(string), "Plano de saъde: -R$250"); // SCM dizendo valor do plano, sem funзгo, apenas diz o valor, igual ao imposto.
                
SendClientMessage(i, -1string); // Formataзгo
                
GivePlayerMoney(playeridsalarionormal); // Adiciona o salбrio randomico que o jogador ganhou
                
GivePlayerMoney(playerid, -300); // Retira o valor do imposto + plano de saъde do jogador, 250+50 = 300
            
}
        }
    }
    return 
1// Retorna ao valor

Agora vamos criar um pagamento manual, para os administradores poderem aplicar a hora que quiser. Vamos lб, iremos criar uma nova public agora, porйm, nгo teremos mais a funзгo das horas.

PHP код:
forward PagamentoManual(); // Criarmos uma funзгo com public & forward й mais vantajoso, alem de poder ser chamada com CallRemote(Local)Function & SetTimer(Ex), tambйm й rбpida.
public PagamentoManual()
{
    foreach(
Playeri// loop do foreach
    
{
        new 
string[128]; // Vai formatar o "SendClientMessage"
        
new salario 750 random(1000); // Valor random do salбrio, minimo de 750 e mбximo de 1000
        
if(IsPlayerConnected(i)) // Verifica se o player estб conectado
        
{
            
format(stringsizeof(string), "ATENЗГO: AGORA SГO %d:00 HORAS!"Hour); // Diz que horas sгo com a variavel "Hour"
            
SendClientMessage(i, -1string); // Formataзгo
            
SendClientMessage(i,-1"|_____  PAGAMENTO  _____|"); // SCM dizendo que й o pagamento, (caso queira mudar as cores, mude o "-1")
            
format(stringsizeof(string), "Salario: R$%d   Imposto: -R$50"salarionormal);  // Diz quanto o jogador ganhou do salбrio e diz o valor do imposto.
            
SendClientMessage(i, -1string); // Formataзгo
            
format(stringsizeof(string), "Plano de saъde: -R$250"); // SCM dizendo valor do plano, sem funзгo, apenas diz o valor, igual ao imposto.
            
SendClientMessage(i, -1string); // Formataзгo
            
GivePlayerMoney(playeridsalarionormal); // Adiciona o salбrio randomico que o jogador ganhou
            
GivePlayerMoney(playerid, -300); // Retira o valor do imposto + plano de saъde do jogador, 250+50 = 300
        
}
    }
    return 
1// Retorna ao valor

Agora o comando

PHP код:
CMD:pagamentomanual(playeridparams[])
{
    if (
IsPlayerAdmin(playerid)) //Verifica se o jogador й um administrador logado na rcon
        
{
            
PagamentoManual(playerid); // Chama a public PagamentoManual(), fazendo com que ela seja ativa de imediato
            
SendClientMessageToAll(playerid, -1"Um administrador vez um PaydayManual");
        }
        else 
// verifica se o player nгo й administrador
        
{
            
SendClientMessage(playerid, -1"Vocк nгo pode usar este comando!"); // retorna a mensagem para o player se ele nгo estб logado na rcon
        
}
    return 
true// retorna ao valor

Bom, o tutorial й basicamente isso, eu nгo sei explicar muito bem porйm tentei deixar bem dinвmico e fбcil de entender, entгo й isso, atй a prуxima pessoal.
Posso estб enganado, mas porque vocк colocou if (IsPlayerConnected (i)), se o foreach jб percorre os players conectados ? (Posso estб enganado) porйm, bom trabalho, irб ajudar vбrios.
Reply


Messages In This Thread
Sistema de Pagamento - by Raayzeck - 12.09.2018, 14:53
Re: Sistema de Pagamento - by HelderPT - 12.09.2018, 15:12
Re: Sistema de Pagamento - by Raayzeck - 12.09.2018, 21:17
Re: Sistema de Pagamento - by ipsLuan - 12.09.2018, 21:20
Re: Sistema de Pagamento - by Malandrin - 12.09.2018, 21:28
Re: Sistema de Pagamento - by Raayzeck - 12.09.2018, 22:12
Re: Sistema de Pagamento - by zF3lKy3 - 12.09.2018, 22:50
Re: Sistema de Pagamento - by ipsLuan - 12.09.2018, 23:18
Re: Sistema de Pagamento - by humildadeforever - 13.09.2018, 00:55
Re: Sistema de Pagamento - by zF3lKy3 - 13.09.2018, 01:45

Forum Jump:


Users browsing this thread: 1 Guest(s)