Citar:
Vendo atualizar meu tutorial para uma forma diferente!
Aprimeira coisa que há necessidade de saber que vai precisar de UMA variável para salvar o id do emprego do jogador.
Neste exemplo vou usar o mais comum.
PHP como:
Agora vamos criar uma definição para facilitar a vida , esta definição ira estar a quantidade total de empregos.
Vamos usar uma enumeração para definir o nome e o salário de cada emprego.
PHP como:
Bom ja tenho a base do sistema.
Agora vamos fazer um comando para pegar emprego em diálogo. ( LEMBRE-SE DE CRIAR A DEFINIÇÃO OU A ENUM DA DIALOG )
neste exemplo usaremos zcmd
PHP como:
O comando ja ficou algo mais limpo a resposta do dialog tambem e algo que pode se facil dizer.
PHP como:
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 como:
Agora para demonstrar para um sistema simples de payday.
Vou fazer algo basico ja que isso varia da ideial para cada gamemode.
Vamos criar um settimerex para ele receber este dia de pagamento.
PHP como:
Vamos fazer esta resposta básica para demonstrar como funciona.
PHP como:
Não é o melhor, não é o mais eficaz, mas é o que achei mais fácil para ser feito.
Uso este método em meu modo de jogo.
PS: Pode ser adicionado mais opções neste sistema de emprego , Nível necessário , Estudo , Cor entre outros ...
Não sou obrigado a agradar a todos , se vim cagar no tópico nem digita.
Vlw Flw
Aprimeira coisa que há necessidade de saber que vai precisar de UMA variável para salvar o id do emprego do jogador.
Neste exemplo vou usar o mais comum.
PHP como:
- Código:
enum pInfo {
Emprego
}
new PlayerInfo[MAX_PLAYERS][pInfo];
Agora vamos criar uma definição para facilitar a vida , esta definição ira estar a quantidade total de empregos.
Vamos usar uma enumeração para definir o nome e o salário de cada emprego.
PHP como:
- Código:
#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 diálogo. ( LEMBRE-SE DE CRIAR A DEFINIÇÃO OU A ENUM DA DIALOG )
neste exemplo usaremos zcmd
PHP como:
- Código:
#define DIALOG_EMPREGO 544
command(pegaremprego, playerid, params[])
{
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 = 1; ds < MAX_EMPREGO; ds++)// Loop tera que comeзar do 1 ja que 0 e desemprego
{
format(String, sizeof String,"Emprego: %s | Salario: R$ %d,00\n", Empregos[ds][Nome], Empregos[ds][Salario]);// Nome , Salario aparecera na dialog
strcat(corda, String);//Corda para dialog para aparecer todas opзoes do loop
}
ShowPlayerDialog(playerid, DIALOG_EMPREGO, DIALOG_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 facil dizer.
PHP como:
- Código:
public OnDialogResponse[playerid, dialogid, response, listitem, inputtext[]]
{
switch(dialogid)
{
case DIALOG_EMPREGO:
{
if(!response)return true; // Se apertar sair fecha dialog
new String[80];
format(String, sizeof String,"{FFFFFF}Parabйns agora vocк trabalha de {FF0000}%s{FFFFFF}.", Empregos[listitem+1][Nome]);
SendClientMessage(playerid, -1, String);
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 como:
- Código:
command(sairdoemprego, playerid, params[])
{
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 sistema simples de payday.
Vou fazer algo basico ja que isso varia da ideial para cada gamemode.
Vamos criar um settimerex para ele receber este dia de pagamento.
PHP como:
- Código:
public OnPlayerConnect(playerid)
{
SetTimerEx("Payday", 1000*60*30, true, "i", playerid);// 1000*60*30 = 30 Min logado
return true;
}
Vamos fazer esta resposta básica para demonstrar como funciona.
PHP como:
- Código:
forward Payday(playerid);
public Payday(playerid)
{
new String[80];
SendClientMessage(playerid, -1, "PAYDAY:");
format(String, sizeof String, "Emprego: %s",Empregos[PlayerInfo[playerid][Emprego]][Nome]); // Puxa da Variavel PlayerInfo[playerid][Emprego] o id de seu emprego
SendClientMessage(playerid, -1, String);
format(String, sizeof String, "Salario: R$ %d,00",Empregos[PlayerInfo[playerid][Emprego]][Salario]);// Puxa da Variavel PlayerInfo[playerid][Emprego] o valor de seu pagamento
SendClientMessage(playerid, -1, String);
GiveplayerMoney(playerid, +Empregos[PlayerInfo[playerid][Emprego]][Salario]);// Puxa da Variavel PlayerInfo[playerid][Emprego]o valor de seu pagamento e adiciona
return true;
}
Não é o melhor, não é o mais eficaz, mas é o que achei mais fácil para ser feito.
Uso este método em meu modo de jogo.
PS: Pode ser adicionado mais opções neste sistema de emprego , Nível necessário , Estudo , Cor entre outros ...
Não sou obrigado a agradar a todos , se vim cagar no tópico nem digita.
Vlw Flw
Creditos: Don Speed