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

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 код:
#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(playerid5000);
        }
        ......
    }
    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 код:
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"50000x000000FF}, // Coloque as informaзхes do emprego na ordem do enumador, primeiro o nome, depois o salбrio e a cor.
    
{"Motoboy"40000x090580FF},
    {
"Carteiro"20000x19558AFF}
};
// 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(playerideInfo[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(playerideInfo[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 , 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
Reply


Messages In This Thread
Sistema de Profissхes/Emprego Dinвmico - by JPedro - 14.09.2016, 23:30
Respuesta: Sistema de Profissхes/Emprego Dinвmico - by SammyJ - 14.09.2016, 23:41
Re: Sistema de Profissхes/Emprego Dinвmico - by pWesley - 14.09.2016, 23:51
Re: Sistema de Profissхes/Emprego Dinвmico - by ipsLuan - 15.09.2016, 00:26
Re: Sistema de Profissхes/Emprego Dinвmico - by JPedro - 15.09.2016, 00:30
Re: Sistema de Profissхes/Emprego Dinвmico - by Carlos001 - 15.09.2016, 00:35
Re: Sistema de Profissхes/Emprego Dinвmico - by TheBob - 15.09.2016, 01:19
Re: Sistema de Profissхes/Emprego Dinвmico - by lucas_mdr1235 - 15.09.2016, 03:03
Re: Sistema de Profissхes/Emprego Dinвmico - by F1N4L - 15.09.2016, 11:18
Re: Sistema de Profissхes/Emprego Dinвmico - by PeterLinkson - 15.09.2016, 17:31
Re: Sistema de Profissхes/Emprego Dinвmico - by JPedro - 15.09.2016, 17:31
Re: Sistema de Profissхes/Emprego Dinвmico - by PeterLinkson - 15.09.2016, 17:42
Re: Sistema de Profissхes/Emprego Dinвmico - by F1N4L - 15.09.2016, 17:47
Re: Sistema de Profissхes/Emprego Dinвmico - by JPedro - 15.09.2016, 17:49
Re: Sistema de Profissхes/Emprego Dinвmico - by F1N4L - 15.09.2016, 17:52
Re: Sistema de Profissхes/Emprego Dinвmico - by JPedro - 15.09.2016, 18:00
Re: Sistema de Profissхes/Emprego Dinвmico - by PT - 16.09.2016, 10:03
Re: Sistema de Profissхes/Emprego Dinвmico - by TheM4st3r - 17.09.2016, 12:30
Re: Sistema de Profissхes/Emprego Dinвmico - by Carlos001 - 17.09.2016, 13:26

Forum Jump:


Users browsing this thread: 4 Guest(s)