SSGamers - 13 Anos online por você.

#SSGamers - A Comunidade que mais crescer no brasil!

Participe do fórum, é rápido e fácil

SSGamers - 13 Anos online por você.

#SSGamers - A Comunidade que mais crescer no brasil!

SSGamers - 13 Anos online por você.

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.
Chegou o novo tema 6.5.5 - SSGamers - Servidores online de qualidade - Aproveite e entre para nossa comunidade, inscreva-se já! - Ouça nossa web radio - Veja nossas novidades - Participe dos nossos setores de jogos online - Parcerias aberta fale já com um administrador.

    [Tutorial] Sistema de Pagamento

    Weslley_Script
    Weslley_Script
    SS - Fundador
    SS - Fundador


    Steam Steam : WeslleySSGames
    Zello : WeslleySSGames
    Mensagens : 11644
    Moedas : 1032955
    Data de inscrição : 06/10/2011
    Idade : 29
    Localização : Brasil

    [Tutorial] Sistema de Pagamento Empty [Tutorial] Sistema de Pagamento

    Mensagem por Weslley_Script Sex 17 Mar 2023 - 10:29

    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


    Código:
    #include zcmd
    #include foreach 

    Agora vamos comeзar o sistema de verdade.

    Na public OnGameModeInit()
    vamos adicionar o timer


    Código:
    SetTimer("Pagamento", 1000, true); // Pagamento й a callback que serб chamada 

    Agora, em um lugar junto com as suas outras publics vamos criar a public do pagamento.

    Código:
    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(Player, i) // 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 Hour, Minute, Second; // Cria a variavel das horas
            gettime(Hour, Minute, Second); // Pega o tempo
            if(IsPlayerConnected(i)) // Verifica se o player estб conectado
            {
                if(Minute == 0 && Second == 0) // Verifica se o minuto estб em 00 e o segundo tambйm
                {
                    format(string, sizeof(string), "ATENЗГO: AGORA SГO %d:00 HORAS!", Hour); // Diz que horas sгo com a variavel "Hour"
                    SendClientMessage(i, -1, string); // Formataзгo
                    SendClientMessage(i,-1, "|_____  PAGAMENTO  _____|"); // SCM dizendo que й o pagamento, (caso queira mudar as cores, mude o "-1")
                    format(string, sizeof(string), "Salario: R$%d   Imposto: -R$50", salarionormal);  // Diz quanto o jogador ganhou do salбrio e diz o valor do imposto.
                    SendClientMessage(i, -1, string); // Formataзгo
                    format(string, sizeof(string), "Plano de saъde: -R$250"); // SCM dizendo valor do plano, sem funзгo, apenas diz o valor, igual ao imposto.
                    SendClientMessage(i, -1, string); // Formataзгo
                    GivePlayerMoney(i, salarionormal); // Adiciona o salбrio randomico que o jogador ganhou
                    GivePlayerMoney(i, -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.



    Código:
    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(Player, i) // 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 1750
            if(IsPlayerConnected(i)) // Verifica se o player estб conectado
            {
                format(string, sizeof(string), "ATENЗГO: OCORREU UM PAGAMENTO ESPECIAL!"); 
                SendClientMessage(i, -1, string); // Formataзгo
                SendClientMessage(i,-1, "|_____  PAGAMENTO  _____|"); // SCM dizendo que й o pagamento, (caso queira mudar as cores, mude o "-1")
                format(string, sizeof(string), "Salario: R$%d   Imposto: -R$50", salarionormal);  // Diz quanto o jogador ganhou do salбrio e diz o valor do imposto.
                SendClientMessage(i, -1, string); // Formataзгo
                format(string, sizeof(string), "Plano de saъde: -R$250"); // SCM dizendo valor do plano, sem funзгo, apenas diz o valor, igual ao imposto.
                SendClientMessage(i, -1, string); // Formataзгo
                GivePlayerMoney(i, salarionormal); // Adiciona o salбrio randomico que o jogador ganhou
                GivePlayerMoney(i, -300); // Retira o valor do imposto + plano de saъde do jogador, 250+50 = 300
            }
        }
        return 1; // Retorna ao valor


    Agora o comando



    Código:
    CMD:pagamentomanual(playerid, params[])
    {
        if (IsPlayerAdmin(playerid)) //Verifica se o jogador й um administrador logado na rcon
            {
                PagamentoManual(); // Chama a public PagamentoManual(), fazendo com que ela seja ativa de imediato
                SendClientMessageToAll( -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.


    Creditos: Raayzeck



    [Tutorial] Sistema de Pagamento D07Xwqb
    [Tutorial] Sistema de Pagamento Yjab9HN

      Data/hora atual: Qua 27 Nov 2024 - 3:39