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.

    Sistema de Profissões/Emprego Dinamico

    Weslley_Script
    Weslley_Script
    SS - Fundador
    SS - Fundador


    Steam Steam : WeslleySSGames
    Zello : WeslleySSGames
    Mensagens : 11625
    Moedas : 1032880
    Data de inscrição : 06/10/2011
    Idade : 28
    Localização : Brasil

    Sistema de Profissões/Emprego Dinamico Empty Sistema de Profissões/Emprego Dinamico

    Mensagem por Weslley_Script Qua 22 maio 2019 - 13:29

    Fui ajudar um amigo a colocar umas novas profissões no gamemode e vi que ele usava um jeito, digamos que chato de adicionar novas profissões, ou seja, fica aquele sobe e desce para adicionar cor, salбrio, nome da profissões etc....

    Maioria dos gamemodes que encontro para download na comunidade sempre fazem suas profissões mais ou menos deste jeito:



    Código:
    #define PROF_TAXISTA (0) // Definir o ID da profissao 

    #define COR_TAXISTA 0x000000FF // Definir a Cor 

    enum PlayerInfo 

        pProfissao, // Variavel do emprego 
    }; 

    new pInfo[MAX_PLAYERS][PlayerInfo]; 

    stock PayDay(playerid) 

        switch(pInfo[playerid][pProfissao])  
        { 
            case PROF_TAXISTA: // Adicionar o Salбrio 
            { 
                SendClientMessage(playerid, -1, "vc й um taxista e recebeu 5mil de salбrio"); 
                GivePlayerMoney(playerid, 5000); 
            } 
            ...... 
        } 
        return 1; 
    }  

    Isto é um jeito chato pois toda hora que vocк for adicionar uma nova profissão tera que adicionar o Salario, Cor, Nome da Profissao, id da profissao e outros.


    Deste jeito que eu vou trazer neste tutorial ficara um pouco dinamico na hora que for adicionar novos empregos a sua gamemode 



    Código:
    enum PlayerInfo 

        pProfissao, // Variavel do emprego 
    }; 

    new pInfo[MAX_PLAYERS][PlayerInfo]; 

    // ===================================================================== 

    enum EmpregoInfo // criaremos este enumerador e adicionamos as variaveis a baixo 

        eName[24], // Variavel do Nome da Profissao/Emprego 
        eSalario, // Variavel do Salбrio 
        eCor, // e a da cor 
    }; 

    // Aqui estб a array com as informaзхes de cada profissao, o primeiro parametro deixaremos sem valor pois sempre que adicionamos uma nova linha  
    // Nгo precisaremos alterar o valor a cada vez que acrescentar uma nova profissao 
    new eInfo[][EmpregoInfo] = 

        {"Taxista", 5000, 0x000000FF}, // Coloque as informaзхes do emprego na ordem do enumador, primeiro o nome, depois o salбrio e a cor. 
        {"Motoboy", 4000, 0x090580FF}, 
        {"Carteiro", 2000, 0x19558AFF} 
    }; 


    // OBS: o ID do emprego serб de acordo na ordem da array, Ex: o ID do Carteiro й 2 e o Taxista й 0 (A Lista sempre comeзa do 0), e o Motoboy й 1 
    // quando definir o valor da variavel do emprego pInfo[playerid][pProfissao] vocк usarб o numero no qual a profissao se encontra na lista, no caso 
    // queremos setar o jogador para a profissao de motoboy usaremos: pInfo[playerid][pProfissao] = 1; 
    // lembrando, que vocк pode usar macros para definir o id de cada profissгo, #define motoboy 1 
    // ai vocк nгo se confunde quando setar alguma profissгo, ao inves de usar pInfo[playerid[pProfissao] = 1; 
    // vocк pode usar pInfo[playerid][pProfissao] = motoboy; para setar a profisssгo 

    // Feito isso poderemos fazer o sistema de pagamento sem precisar ficar checando profissao por profissao 

    stock PayDay(playerid) 

        new profissaoid = pInfo[playerid][pProfissao]; // para ficar mais simples, irei criar uma variavel chamada profissaoid e setarei o valor dela com o valor da variavel do emprego 
         
        printf("Voce й um %s e recebeu: %i de salбrio", eInfo[profissaoid][eName], eInfo[profissaoid][eSalario]); 
        GivePlayerMoney(playerid, eInfo[profissaoid][eSalario]); // aqui iremos dar o dinheiro ao jogador, o valor dele serб pego na array e o parametro profissaoid й o id ou ordem que ele fica na lista 
        return 1; 


    public OnPlayerSpawn(playerid) 

        SetPlayerColor(playerid, eInfo[pInfo[playerid][pProfissao]][eCor]);  
        // Setamos a cor do jogador OBS: ao inves de criar uma variavel e setaro valor dela com o valor da variavel de emprego 
        // eu jб coloquei a variavel do id do emprego direto no parametro da variavel de cor 
        return 1; 
    }  


    Espero que o tutorial tenha sido de boa utilidade, caso tenha alguma sugestão ou critica etc...  deixar abaixo Sistema de Profissões/Emprego Dinamico Biggrin, espero que eu tenha ajudado e tentei explicar o maximo que eu pude, se estiver algo de errado por favor me avisar

    @Edit

    Agradecimentos ao FIN4L por me avisar sobre os macros
    Creditos: JPedro



    Sistema de Profissões/Emprego Dinamico D07Xwqb
    Sistema de Profissões/Emprego Dinamico Yjab9HN

      Data/hora atual: Qui 7 Nov 2024 - 15:54