SSGamers - 12 Anos online por você.

#SSGamers - A Comunidade que mais crescer no brasil!

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

SSGamers - 12 Anos online por você.

#SSGamers - A Comunidade que mais crescer no brasil!

SSGamers - 12 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 Profissхes/Emprego Dinвmico

    Weslley_Script
    Weslley_Script
    SS - Fundador
    SS - Fundador


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

    [Tutorial] Sistema de Profissхes/Emprego Dinвmico Empty [Tutorial] Sistema de Profissхes/Emprego Dinвmico

    Mensagem por Weslley_Script Dom 2 Abr 2023 - 13:06

    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гo etc....

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

    PHP код:

    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 terб que adicionar o Salбrio, Cor, Nome da Profissao, id da profissao e outros.


    Deste jeito que eu vou trazer neste tutorial ficarб um pouco dinвmico na hora que for adicionar novos empregos a sua gamemode

    PHP код:

    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 ъtilidade, caso tenha alguma sugestгo ou critica etc... sу deixar abaixo [Tutorial] Sistema de Profissхes/Emprego Dinвmico 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



    [Tutorial] Sistema de Profissхes/Emprego Dinвmico D07Xwqb
    [Tutorial] Sistema de Profissхes/Emprego Dinвmico Yjab9HN

      Data/hora atual: Qua 8 maio 2024 - 7:56