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
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;
}