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] Iniciando o sistema de emprego

    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] Iniciando o sistema de emprego Empty [Tutorial] Iniciando o sistema de emprego

    Mensagem por Weslley_Script Qui 27 Abr 2023 - 17:24

    Citar:

    Postado originalmente por Don_Speed
    [Tutorial] Iniciando o sistema de emprego Viewpost
    Sei que estou sumido , mas vim ajudar alguns [Tutorial] Iniciando o sistema de emprego Smile

    OBS:VARIAVEL - NEW UTILIZADA PARA GUARDAR INFORMAÇÕES

    E simples mas vai ajudar as pessoas que tem dúvidas em relação a isso.


    Bom isso e muito facil de fazer , e uma variavel que salva o id do seu emprego!

    Por exemplo

    PHP como:

    Código:
    new MeuEmprego[MAX_PLAYERS]; 
    [size]

    Para dar o nome ao emprego muitos usam uma define para cada número mas a melhor coisa e usam uma variável msm .

    Por exemplo

    PHP como:

    [/size]
    Código:
    new NomesP[][80] = {
    {"Civil"},
    {"Caminhoneiro"},
    {"Advogado"}
    }; 
    [size]

    Para carregar o nome da profissão que você está no momento e simples

    PHP como:

    [/size]
    Código:
    Nomesp[Variavel do emprego do jogador] 
    [size]

    Por exemplo

    PHP como:

    [/size]
    Código:
    Nomesp[MeuEmprego[playerid]] 
    [size]


    PHP como:

    [/size]
    Código:
    format(Don, sizeof Don,"Vocк esta no emprego %s.", Nomesp[Variavel do emprego do jogador]); 
    [size]

    Exemplo em uma mensagem

    PHP como:

    [/size]
    Código:
    format(Don, sizeof Don,"Vocк esta no emprego %s.", Nomesp[MeuEmprego[playerid]]); 
    [size]

    Isso funciona também com as cores
    Por Exemplo

    PHP como:

    [/size]
    Código:
    new CorP[][80] = {
    {"0xFFFFFF22"},
    {"0xFFFFFF21"},
    {"0xFFFFFF20"}
    }; 
    [size]


    PHP como:

    [/size]
    Código:
    SetPlayerColor(playerid, CorP[Variavel do emprego do jogador]); 
    [size]

    Por exemplo

    PHP como:

    [/size]
    Código:
    SetPlayerColor(playerid, CorP[MeuEmprego[playerid]]); 
    [size]



    Com essas dicas você pode economizar muitas linhas em seu modo de jogo! Experiência própria.
    [/size]
    Vendo atualizar meu tutorial para uma forma diferente!

    Aprimeira coisa que há necessidade de saber que vai precisar de UMA variável para salvar o id do emprego do jogador.
    Neste exemplo vou usar o mais comum.

    PHP como:

    Código:
    enum pInfo {
         Emprego
    }
    new PlayerInfo[MAX_PLAYERS][pInfo]; 

    Agora vamos criar uma definição para facilitar a vida , esta definição ira estar a quantidade total de empregos.
    Vamos usar uma enumeração para definir o nome e o salário de cada emprego.

    PHP como:

    Código:
    #define MAX_EMPREGO   3 // Quatidade de emprego + desempregado (0)
    enum pEmprego{
         Nome[24], //Nome do emprego
         Salario //Salario deste emprego (EX: recebera no payday)
    }// Pode ser adicionado mais opзoes como cores e etc ...
    new Empregos[MAX_EMPREGO][pEmprego] = { // Variavel que guarda as informaзoes
    {"Desempregado", 100}, // Nome , Salario
    {"Entregador", 900}, // Nome , Salario
    {"Motorista", 1000} // Nome , Salario
    }; 

    Bom ja tenho a base do sistema.
    Agora vamos fazer um comando para pegar emprego em diálogo. ( LEMBRE-SE DE CRIAR A DEFINIÇÃO OU A ENUM DA DIALOG )
    neste exemplo usaremos zcmd

    PHP como:

    Código:
    #define DIALOG_EMPREGO 544
    command(pegaremprego, playerid, params[])
    {
        new corda[100],String[100];
        if(PlayerInfo[playerid][Emprego] > 0)return SendClientMessage(playerid, -1, "Erro vocк ja possui emprego(/sairdoemprego).");// Se ja tiver emprego
        for(new ds = 1; ds < MAX_EMPREGO; ds++)// Loop tera que comeзar do 1 ja que 0 e desemprego
        {
                format(String, sizeof String,"Emprego: %s | Salario: R$ %d,00\n", Empregos[ds][Nome], Empregos[ds][Salario]);// Nome , Salario aparecera na dialog
                strcat(corda, String);//Corda para dialog para aparecer todas opзoes do loop
        }
        ShowPlayerDialog(playerid, DIALOG_EMPREGO, DIALOG_STYLE_LIST, "Empregos disponiveis", corda, "Selecionar", "Sair");
        return true;


    O comando ja ficou algo mais limpo a resposta do dialog tambem e algo que pode se facil dizer.


    PHP como:

    Código:
    public OnDialogResponse[playerid, dialogid, response, listitem, inputtext[]]
    {
        switch(dialogid)
        {
                  case DIALOG_EMPREGO:
               {
                    if(!response)return true; // Se apertar sair fecha dialog
                    
                    new String[80];
                    format(String, sizeof String,"{FFFFFF}Parabйns agora vocк trabalha de {FF0000}%s{FFFFFF}.", Empregos[listitem+1][Nome]);
                    SendClientMessage(playerid, -1, String);
                    
                    PlayerInfo[playerid][Emprego] = listitem+1;// no dialoglist , ele da a lista comeзando do zero entгo hб necessidade de usar listitem+1
                    // para dar o id correto do emprego selecionado
               }
        }
        return true;


    Ao meu ver chega ser inutil demonstar uma forma de fazer o /sairdoemprego , mas como sei como o povo e , ja que ja fui assim no comeзo.

    PHP como:

    Código:
    command(sairdoemprego, playerid, params[])
    {
        if(PlayerInfo[playerid][Emprego] == 0)return SendClientMessage(playerid, -1, "Erro vocк nгo possui emprego.");// Verifica se ja nгo e desempregado
        SendClientMessage(playerid, -1, "Agora vocк esta desempregrado.");
        PlayerInfo[playerid][Emprego] = 0;
        return true;


    Agora para demonstrar para um sistema simples de payday.
    Vou fazer algo basico ja que isso varia da ideial para cada gamemode.
    Vamos criar um settimerex para ele receber este dia de pagamento.

    PHP como:

    Código:
    public OnPlayerConnect(playerid)
    {
         SetTimerEx("Payday", 1000*60*30, true, "i", playerid);// 1000*60*30 = 30 Min logado
         return true;


    Vamos fazer esta resposta básica para demonstrar como funciona.

    PHP como:

    Código:
    forward Payday(playerid);
    public Payday(playerid)
    {
         new String[80];
         SendClientMessage(playerid, -1, "PAYDAY:");
         
         format(String, sizeof String, "Emprego: %s",Empregos[PlayerInfo[playerid][Emprego]][Nome]); // Puxa da Variavel PlayerInfo[playerid][Emprego] o id de seu emprego
         SendClientMessage(playerid, -1, String);
         
         format(String, sizeof String, "Salario: R$ %d,00",Empregos[PlayerInfo[playerid][Emprego]][Salario]);// Puxa da Variavel PlayerInfo[playerid][Emprego] o valor de seu pagamento
         SendClientMessage(playerid, -1, String);
         
         GiveplayerMoney(playerid, +Empregos[PlayerInfo[playerid][Emprego]][Salario]);// Puxa da Variavel PlayerInfo[playerid][Emprego]o valor de seu pagamento e adiciona
         return true;


    Não é o melhor, não é o mais eficaz, mas é o que achei mais fácil para ser feito.
    Uso este método em meu modo de jogo.
    PS: Pode ser adicionado mais opções neste sistema de emprego , Nível necessário , Estudo , Cor entre outros ...


    Não sou obrigado a agradar a todos , se vim cagar no tópico nem digita.
    Vlw Flw
    Creditos: Don Speed



    [Tutorial] Iniciando o sistema de emprego D07Xwqb
    [Tutorial] Iniciando o sistema de emprego Yjab9HN

      Data/hora atual: Qua 8 maio 2024 - 17:44