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 код:
Por Exemplo PHP код:
PHP код:
PHP код:
PHP код:
PHP код:
Por Exemplo PHP код:
PHP код:
PHP код:
Com essas dicas vocк podera economizar muitas linhas em seu gamemode ! Experiencia propria . |
enum pInfo {
Emprego
}
new PlayerInfo[MAX_PLAYERS][pInfo];
#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
};
#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;
}
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;
}
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;
}
public OnPlayerConnect(playerid)
{
SetTimerEx("Payday", 1000*60*30, true, "i", playerid);// 1000*60*30 = 30 Min logado
return true;
}
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;
}
enum MeuEmprego
{
bool:Civil,
bool:Caminhoneiro,
bool:Adivogado
}
new PlayerInfo[MAX_PLAYERS][MeuEmprego];
CMD:testando(playerid, params[])
{
if(PlayerInfo[playerid][Caminhoneiro] == false) return SendClientMessage(playerid, -1, "Nгo йs um caminhoneiro");
SendClientMessage(playerid, -1, "Sou caminhoneiro");
return true;
}
public OnPlayerSpawn(playerid)
{
if(PlayerInfo[playerid][Caminhoneiro] == true)
{
SetPlayerPos(playerid, Float:x,Float:y,Float:z);
// Outras Funзхes...
return true;
}
return 1;
}
pawn Код:
tб muito simples, poderia explicar como algum player de alguma dessas profissхes possa usar comandos especificos , tipo pawn Код:
isso pode parecer coisas simples , porйm sгo bem uteis para iniciantes. pawn Код:
|
Com essas dicas vocк podera economizar muitas linhas em seu gamemode ! Experiencia propria . |
Nomesp[MeuEmprego[playerid]]
MeuEmprego[MAX_PLAYERS];
#define Emprego0 1
#define Emprego1 2
#define CorEmprego0 -1
#define CorEmprego1 -1
Com essas dicas vocк poderб economizar muitas linhas em seu gamemode ! Experiencia propria .
|
Depende da organizaзгo, se um sistema й bem feito e organizado, pode ser utilizado diretivas(define), enumeradores(enum) vetores(new vector[]), arrays(new array[][]), enfim, basta ter organizaзгo.
Huuum, esta meio confuso isso ai, uma vez que: pawn Код:
pawn Код:
Quero dizer que й necessбrio atribuir o valor as variбveis e vetores, embora esteja funcionando, mesmo assim vai ser necessбrio definir um ID para X organizaзгo, caso contrario essa estrutura nгo vai funcionar muito bem. Reveja isso ai amigo... Voltou para ficar? hehe |
Sendo sincero, acho inъtil este tipo de tutorial, й como vocк ensinar um cego a atirar. O que quero dizer, й que nгo adianta chegar e jogar o cуdigo, e explicar com simples palavras o que faz.
Seria mil vezes mais ъtil explicar sobre variбveis(mesmo que jб exista milhares de tutoriais do tipo e os 'scripters' daqui nгo dгo valor, mas isto nгo vem ao caso). O problema principal do povo daqui, й que nгo querem aprender a programar, mas sim querem criar um servidor. Tenho quase certeza que 90% das pessoas que frequentam este fуrum nгo sabe o que й uma variбvel, mas se vocк falar: "Ah, й aquilo que guarda o ID da org do jogador", grande parte desses 95% vгo "saber", e dizer que й uma "new". Ou seja, antes de se ir pra prбtica, deve-se saber um pouco da teoria. Й como matemбtica, difнcil para alguns, fбcil para quem conhece suas "bases". Infelizmente essa й a realidade desse fуrum. Me desculpe caso lhe causei algum transtorno, nгo foi a minha intenзгo. |