08.08.2012, 21:42
How to: Jobs
Нndice
• Introduзгo
• Conceito
• Primeiros passos
• Dar privilйgios
• Pagamento
• Conclusгo
• Outros
• Crйditos
Introduзгo
Sejam bem vindos a um novo tutorial, este tutorial iremos abordar o tema de criaзгo de empregos, que й usado por servidores RP/G, entгo esteja atento porque isto nгo й nenhum quebra cabeзas.Нndice
• Introduзгo
• Conceito
• Primeiros passos
• Dar privilйgios
• Pagamento
• Conclusгo
• Outros
• Crйditos
Introduзгo
Conceito
O meu conceito para criar um sistema de empregos й apenas usar uma variavel que declara o emprego e usar uma enumeraзгo que declara os id's dos empregos, entгo vamos ao trabalho.Primeiros Passos
Os primeiros passos sгo muito simples, comeзando pela declaraзгo da variavel inicial, neste caso como tipico de todos os gamemodes, existe um enum, ou seja, uma enumeraзгo chamada pInfo, entгo caso existe essa enum, voce terб que fazer istopawn Код:
enum pInfo{
..., //as variaveis que voce jб tem definidas
pJobs
};
Caso voce nгo tenha um enum e queira fazer um cуdigo a parte, voce pode fazer assim
pawn Код:
new player_jobs[MAX_PLAYERS];
pawn Код:
enum {
PLAYER_JOB_DESEMPREGADO, //ID = 0
PLAYER_JOB_ADVOGADO, //ID = 1
PLAYER_JOB_MECANICO, //ID = 2
PLAYER_JOB_TAXISTA, //ID = 3
PLAYER_JOB_ENTRAGA_PIZZAS, //ID = 4
PLAYER_JOB_TRAFFICANTE_DROGAS, //ID = 5
PLAYER_JOB_TRAFFICANTE_ARMAS //ID = 6
}
Eu acho mais complexo usar enum, mas tudo bem, fica ao seu critйrio.
Dar privilйgios
Dar privilйgios nгo й algo complicado, vocк apenas terб que usar a variбvel e definir um valor para ela.Com enum:
pawn Код:
PlayerInfo[playerid][pJobs] = PLAYER_JOB_MECANICO //definimos o valor da variavel para 3
pawn Код:
player_jobs[playerid] = PLAYER_JOB_MECANICO //definimos o valor da variavel para 3
Com enum:
pawn Код:
if(PlayerInfo[playerid][pJobs] == PLAYER_JOB_MECANICO)
SendClientMessage(playerid,-1,"Vocк й mecвnico!");
else
SendClientMessage(playerid,-1,"Vocк nгo й mecвnico!");
pawn Код:
if(player_jobs[playerid] == PLAYER_JOB_MECANICO)
SendClientMessage(playerid,-1,"Vocк й mecвnico!");
else
SendClientMessage(playerid,-1,"Vocк nгo й mecвnico!");
Pagamento
Quando se trata ao pagamento basta pensar nas quantias que voce deseja dar, eu no meu caso uso uma enumeraзгo, veja.pawn Код:
enum {
PAY_JOB_DESEMPREGADO = 100,
PAY_JOB_ADVOGADO = 500,
PAY_JOB_MECANICO = 372,
PAY_JOB_TAXISTA = 217,
PAY_JOB_ENTRAGA_PIZZAS = 174,
PAY_JOB_TRAFFICANTE_DROGAS = 348,
PAY_JOB_TRAFFICANTE_ARMAS = 438
};
Entгo, agora temos que aplicar em pratica, normalmente em todos os servidores usamos uma callback chamada Payday, entгo usando o operador == e a nossa enumeraзгo com os salбrios, obtemos o seguinte cуdigo
pawn Код:
public Payday(){
for(new i; i<GetMaxPlayers(); ++i){
if(PlayerInfo[i][pJobs] == PLAYER_JOB_DESEMPREGADO)
GivePlayerMoney(playerid,PAY_JOB_DESEMPREGADO)
else if(PlayerInfo[i][pJobs] == PLAYER_JOB_ADVOGADO)
GivePlayerMoney(playerid,PAY_JOB_ADVOGADO)
else if(PlayerInfo[i][pJobs] == PLAYER_JOB_TAXISTA)
GivePlayerMoney(playerid,PAY_JOB_TAXISTA)
//O resto do seu codigo...
}
}
Conclusгo
Entгo este foi o nosso tutorial, espero que isto ajude-vos a entender mais sobre PAWN e como criar um sistema de empregos simples.
Outros
Caso voce esteja disposto a aprender mais pode ver alguns tutoriais que eu recomendo.
How to: bcmd
Dicas e Truques de Optimizaзхes
Sistema de Level com Respeito
Formataзгo de Strings
Optimizaзхes
MySQL
Crйditos
- BlueX
- Criador do tutorial
- [iPs]TeaM
- Melhor equipe de programaзгo
- SA-MP Team
- Passado \ Presente \ Futuro