[Tutorial] Criando Profissхes RP / RPG
#1

Bem venho aqui ensinar aos novatos, como criar uma 'profissгo'. ( Tava sem nada pra pensei e pensei nessa ideia de merda ¬¬ , mais oque vale й a itenзгo. )
Esse tutorial vai ser ъtil pra quem estб comeзando um novo projeto.
Bem vamos Comeзar:

O Tutorial tem 4 Etapas.

1є Definindo as Profissхes / Criando.
2° Adicionando a Variavel
3є Criando Comandos para tal profissгo.
4є Setando Cores da Profissгo.

1-Definindo / Criando as Profissoes
pawn Код:
// Vou usar 2 profissхes como exemplo , seguindo elas : Desempregado, Cantor
#define PROF_DESEMPREGADO  1
#define PROF_CANTOR      2
//#define = Define algo no gamemode.
//PROF_DESEMPREGADO = Nome doque vai ser definindo , no caso estamos definindo um nome de uma profissгo
// 1 = O Nъmero da profissгo , pode ser qualquer um nъmero.
2- Adicionando a Variavel
pawn Код:
//Adicione isto no inicio do seu gamemode:
new Profissao[MAX_PLAYERS];
//A Variavel 'Profissao' Vamos usa-lб para checar se o player й da tal profissгo.
3-Criando um Comando para a profissгo.
pawn Код:
if(strcmp(cmdtext,"/desempregado", true) == 0)
    {
        if(Profissao[playerid] != PROF_DESEMPREGADO)
        {
            Profissao[playerid] = PROF_DESEMPREGADO;
        }
        else
        {
            SendClientMessage(playerid, -1,"Vocк jб й desempregado.");
        }
        return 1;
    }
// Explicando:
    /*if(strcmp(cmdtext,"/desempregado", true) == 0) // o : ' /desempregado ' serб o nome do comando usado , poder ser alterado.
    {// abre a chave do comando
        if(Profissao[playerid] != PROF_DESEMPREGADO) // Aqui vai checar se ele nгo й desempregado
        { // Chave- Abre
            Profissao[playerid] = PROF_DESEMPREGADO;// Vai Setar o Jogador Como Desempregado.
            SendClientMessage(playerid, -1, "Vocк virou desempregado xD ");// mensagem que ele vai receber ao ser setado como empregado
        }// Chave - Fecha
        else // else - Usada para checar funзхes que estгo ao contrario ex: Eu sou 'PM', e eu uso o comando: /vendermaconha , E o comando /vendermaconha sу gangsters podem usar, entгo a else nгo vai deixar eu usar o comando se eu nгo for um gangster.
        {// Chave - Abre
            SendClientMessage(playerid, -1,"Vocк jб й desempregado."); // Mensagem que o player vai receber caso ele jб seja desempregado
        }// Chave - Fecha
        return 1; // й recomendavel ter uma return antes da ultima chave , pode ser usada de : return 1; para return true; ou de return 0 ; para return false;
    }//fecha a chave do comando*/

    if(strcmp(cmdtext,"/cantor", true) == 0)
    {
        if(Profissao[playerid] != PROF_CANTOR)
        {
            Profissao[playerid] = PROF_CANTOR;
            SendClientMessage(playerid, -1, "Vocк virou cantor ! :D ");
        }
        else
        {
            SendClientMessage(playerid, -1,"Vocк jб й um cantor.");
        }
        return 1;
    }
/*  if(strcmp(cmdtext,"/cantor", true) == 0) // o : ' /cantor ' serб o nome do comando usado , poder ser alterado.
    {// abre a chave do comando
        if(Profissao[playerid] != PROF_CANTOR) // Aqui vai checar se ele nгo й desempregado
        { // Chave- Abre
            Profissao[playerid] = PROF_CANTOR;// Vai Setar o Jogador Como Cantor.
            SendClientMessage(playerid, -1, "Vocк virou cantor ! :D ");// mensagem que ele vai receber ao ser setado como empregado
        }// Chave - Fecha
        else // else - Usada para checar funзхes que estгo ao contrario ex: Eu sou 'PM', e eu uso o comando: /vendermaconha , E o comando /vendermaconha sу gangsters podem usar, entгo a else nгo vai deixar eu usar o comando se eu nгo for um gangster.
        {// Chave - Abre
            SendClientMessage(playerid, -1,"Vocк jб й um cantor."); // Mensagem que o player vai receber caso ele jб seja desempregado
        }// Chave - Fecha
        return 1; // й recomendavel ter uma return antes da ultima chave , pode ser usada de : return 1; para return true; ou de return 0 ; para return false;
    }//fecha a chave do comando*/
4-Setando as Cores das Profissхes..
pawn Код:
forward CarregarProfissao(playerid); // Forward para a callback 'CarregarProfissao'.
public CarregarProfissao(playerid) // Public , mais conhecida como "callback".
{// Chave da Callback - Abrindo
    if(Profissao[playerid] == PROF_DESEMPREGADO)// aqui vai checar se o jogador й desempregado , se ele for vai setar a cor "Branca" nele .
    { // Chave - Abre
        SetPlayerColor(playerid, -1); // SetPlayerColor usado para setar cores em jogadores . Usando: SetPlayerColor(playerid, COR); - Usei a cor "Branca" que no caso й -1.
    }// Chave- Fecha
    else if(Profissao[playerid] == PROF_CANTOR) // aqui vai checar se o jogador й cantor, caso for vai setar a cor "0x456EAF67" que no caso й cinza azul .
    {//Chave - Abre
        SetPlayerColor(playerid, 0x456EAF67);// SetPlayerColor usado para setar cores em jogadores . Ex de Uso: SetPlayerColor(playerid, COR); - Usei a cor "Cinza Azul" que no caso й "0x456EAF67".
    } // Chave - Fecha
    return 1;
}// Chave da CallBack - Fechando

/* //Pergunta : Como faзo para as cores das profissхes carregarem?
//R: Use a Callback : "OnPlayerSpawn"
public OnPlayerSpawn(playerid)
{
        CarregarProfissao(playerid);
    return 1;
}

//Pergunta: Como faзo para salvar as profissхes?
//R: Dependendo do seu sistema de registro , й so adaptar o tutorial com o seu sistema .
*/
Crйditos:
Y_Seven
Reply
#2

Vocк esqueceu do settimer, e a propуsito pra que usar um settimer nisto ?Nenhum. A cor apenas serб definida apуs o respawn com o seu code... Porйm Poderia ser usada no prуprio comando "/desempregado" e alйm do fato de vocк estar usando um processador de comandos lento, ao invйs de usar algo mais atual.

Bom, minha opiniгo й que este tutorial foi bem desnecessбrio, Basicamente й um cуdigo ъtil.

Este modo й bem mais simples e direto.
pawn Код:
if(strcmp(cmdtext,"/desempregado", true) == 0)
    {
        if(Profissao[playerid] == PROF_DESEMPREGADO ) return SendClientMessage(playerid, -1,"Vocк jб й desempregado.");        
        Profissao[playerid] = PROF_DESEMPREGADO;
        SetPlayerColor(playerid, -1);
        return 1;
    }
if(strcmp(cmdtext,"/cantor", true) == 0)
    {
        if(Profissao[playerid] == PROF_CANTOR) return SendClientMessage(playerid, -1,"Vocк jб й um cantor.");
        Profissao[playerid] = PROF_CANTOR;
        SendClientMessage(playerid, -1, "Vocк virou cantor ! :D ");
        SetPlayerColor(playerid, 0x456EAF67);        
        return 1;
    }
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)