14.09.2016, 23:30
(
Последний раз редактировалось JPedro; 15.09.2016 в 18:00.
)
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:
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
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
@EditMaioria 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(playerid, 5000);
}
......
}
return 1;
}
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", 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;
}
Agradecimentos ao FIN4L por me avisar sobre os macros