[Tutorial] Iniciando sistema de emprego
#1

Quote:
Originally Posted by Don_Speed
Посмотреть сообщение
Sei que estou sumido , mas vim ajudar alguns

OBS:VARIAVEL - NEW UTILIZADA PARA GUARDAR INFORMAЗOES


E simples mas vai ajudar as pessoas que tem duvidas em relaзгo a isto.


Bom isso e muito facil de fazer , e uma variavel que salva o id do seu emprego!

Por Exemplo
PHP код:
new MeuEmprego[MAX_PLAYERS]; 
Para dar o nome ao emprego muitos usam uma define para cada numero mas a melhor coisa e usar uma variavel msm .

Por Exemplo
PHP код:
new NomesP[][80] = {
{
"Civil"},
{
"Caminhoneiro"},
{
"Advogado"}
}; 
Para carregar o nome da profissao que vocк esta no momento e simples
PHP код:
Nomesp[Variavel do emprego do jogador
Por Exemplo
PHP код:
Nomesp[MeuEmprego[playerid]] 
PHP код:
format(Donsizeof Don,"Vocк esta no emprego %s."Nomesp[Variavel do emprego do jogador]); 
Exemplo em uma msg
PHP код:
format(Donsizeof Don,"Vocк esta no emprego %s."Nomesp[MeuEmprego[playerid]]); 
Isso funciona tambem com as cores
Por Exemplo
PHP код:
new CorP[][80] = {
{
"0xFFFFFF22"},
{
"0xFFFFFF21"},
{
"0xFFFFFF20"}
}; 
PHP код:
SetPlayerColor(playeridCorP[Variavel do emprego do jogador]); 
Por Exemplo
PHP код:
SetPlayerColor(playeridCorP[MeuEmprego[playerid]]); 


Com essas dicas vocк podera economizar muitas linhas em seu gamemode ! Experiencia propria .
Venho atualizar meu tutorial para uma forma diferente!

Aprimeira coisa que hб necessidade de saber que irб precisar de UMA variavel para guardar o id do emprego do jogador.
Neste exemplo vou usar o mais comum .
PHP код:
enum pInfo {
     
Emprego
}
new 
PlayerInfo[MAX_PLAYERS][pInfo]; 
Agora vamos criar uma define para facilitar a vida , esta define ira estar a quantidade total de empregos.
Vamos usar uma enum para definir nome e salario de cada emprego.
PHP код:
#define MAX_EMPREGO   3 // Quatidade de emprego + desempregado (0)
enum pEmprego{
     
Nome[24], //Nome do emprego
     
Salario //Salario deste emprego (EX: recebera no payday)
}// Pode ser adicionado mais opзoes como cores e etc ...
new Empregos[MAX_EMPREGO][pEmprego] = { // Variavel que guarda as informaзoes
{"Desempregado"100}, // Nome , Salario
{"Entregador"900}, // Nome , Salario
{"Motorista"1000// Nome , Salario
}; 
Bom ja tenho a base do sistema.
Agora vamos fazer um comando para pegar emprego em dialog. ( LEMBRE-SE DE CRIAR A DEFINIЗГO OU A ENUM DA DIALOG )
neste exemplo usaremos zcmd
PHP код:
#define DIALOG_EMPREGO 544
command(pegarempregoplayeridparams[])
{
    new 
corda[100],String[100];
    if(
PlayerInfo[playerid][Emprego] > 0)return SendClientMessage(playerid, -1"Erro vocк ja possui emprego(/sairdoemprego).");// Se ja tiver emprego
    
for(new ds 1ds MAX_EMPREGOds++)// Loop tera que comeзar do 1 ja que 0 e desemprego
    
{
            
format(Stringsizeof String,"Emprego: %s | Salario: R$ %d,00\n"Empregos[ds][Nome], Empregos[ds][Salario]);// Nome , Salario aparecera na dialog
            
strcat(cordaString);//Corda para dialog para aparecer todas opзoes do loop
    
}
    
ShowPlayerDialog(playeridDIALOG_EMPREGODIALOG_STYLE_LIST"Empregos disponiveis"corda"Selecionar""Sair");
    return 
true;

O comando ja ficou algo mais limpo a resposta do dialog tambem e algo que pode se dizer facil.

PHP код:
public OnDialogResponse[playeriddialogidresponselistiteminputtext[]]
{
    switch(
dialogid)
    {
              case 
DIALOG_EMPREGO:
           {
                if(!
response)return true// Se apertar sair fecha dialog
                
                
new String[80];
                
format(Stringsizeof String,"{FFFFFF}Parabйns agora vocк trabalha de {FF0000}%s{FFFFFF}."Empregos[listitem+1][Nome]);
                
SendClientMessage(playerid, -1String);
                
                
PlayerInfo[playerid][Emprego] = listitem+1;// no dialoglist , ele da a lista comeзando do zero entгo hб necessidade de usar listitem+1
                // para dar o id correto do emprego selecionado
           
}
    }
    return 
true;

Ao meu ver chega ser inutil demonstar uma forma de fazer o /sairdoemprego , mas como sei como o povo e , ja que ja fui assim no comeзo.
PHP код:
command(sairdoempregoplayeridparams[])
{
    if(
PlayerInfo[playerid][Emprego] == 0)return SendClientMessage(playerid, -1"Erro vocк nгo possui emprego.");// Verifica se ja nгo e desempregado
    
SendClientMessage(playerid, -1"Agora vocк esta desempregrado.");
    
PlayerInfo[playerid][Emprego] = 0;
    return 
true;

Agora para demonstrar para um simples sistema de payday.
Vou fazer algo basico ja que isso varia da ideial para cada gamemode.
Vamos criar um settimerex para ele receber este payday.
PHP код:
public OnPlayerConnect(playerid)
{
     
SetTimerEx("Payday"1000*60*30true"i"playerid);// 1000*60*30 = 30 Min logado
     
return true;

Vamos fazer esta resposta basica para demonstrar como funciona.
PHP код:
forward Payday(playerid);
public 
Payday(playerid)
{
     new 
String[80];
     
SendClientMessage(playerid, -1"PAYDAY:");
     
     
format(Stringsizeof String"Emprego: %s",Empregos[PlayerInfo[playerid][Emprego]][Nome]); // Puxa da Variavel PlayerInfo[playerid][Emprego] o id de seu emprego
     
SendClientMessage(playerid, -1String);
     
     
format(Stringsizeof String"Salario: R$ %d,00",Empregos[PlayerInfo[playerid][Emprego]][Salario]);// Puxa da Variavel PlayerInfo[playerid][Emprego] o valor de seu pagamento
     
SendClientMessage(playerid, -1String);
     
     
GiveplayerMoney(playerid, +Empregos[PlayerInfo[playerid][Emprego]][Salario]);// Puxa da Variavel PlayerInfo[playerid][Emprego]o valor de seu pagamento e adiciona
     
return true;

Nгo e a melhor , nгo e a mais eficaz , mas e a que achei mais facil para ser feito .
Uso este metodo em meu gamemode.
PS: Pode ser adicionado mais opзoes neste sistema de emprego , Level necessario , Estudo , Cor entre outros ...


Nгo sou obrigado a agradar a todos , se vim cagar no topico nem digita.
Vlw Flw
Reply


Messages In This Thread
Iniciando sistema de emprego - by Don_Speed - 31.03.2014, 16:46
Re: Iniciando sistema de emprego - by BieeelEvolution - 31.03.2014, 17:28
Re: Iniciando sistema de emprego - by Lipe_Stronda - 31.03.2014, 17:45
Re: Iniciando sistema de emprego - by Don_Speed - 31.03.2014, 17:48
Re: Iniciando sistema de emprego - by shittt - 31.03.2014, 18:23
Re: Iniciando sistema de emprego - by Schocc - 31.03.2014, 19:05
Re: Iniciando sistema de emprego - by Dolby - 31.03.2014, 20:07
Re: Iniciando sistema de emprego - by Axll - 31.03.2014, 21:37
Re: Iniciando sistema de emprego - by Don_Speed - 07.04.2014, 09:34
Re: Iniciando sistema de emprego - by Lucas-Fc - 29.05.2014, 00:42

Forum Jump:


Users browsing this thread: 1 Guest(s)