Nгo deveria existir tutorial para criar um determinado sistema, vocк apenas precisa usar a logica e programaзгo que qualquer sistema pode ser formado.
Vamos lб, lуgica do sistema de empregos em script:
pawn Код:
/*
Precisamos, primeiramente, definir quais sгo os empregos existentes, para isso,
vamos usar um enumerador (enum) para classificar em ordem crescente cada uma.
*/
enum // Cria o enumerador.
{
DESEMPREGADO, // Nгo possui emprego.
JORNALISTA // Emprego de exemplo.
}
/*
Agora precisamos de uma maneira para saber qual o emprego do jogador em questгo,
entгo vamos criar uma variбvel que armazene isso.
*/
new playerEmprego[MAX_PLAYERS]; // [ new > cria a variбvel ] [ playerEmprego > nome da variбvel ] [ MAX_PLAYERS > Para todos os ID's ]
/*
Bom, quando o jogador entrar no servidor ele serб um desempregado, nгo terб emprego.
Vamos definir entгo na primeira callback(publio) que й chamada ao se conectar.
*/
public OnPlayerConnect(playerid)
{
playerEmprego[playerid] = DESEMPREGADO; // Acredito que nгo precise de explicaзгo.
return true;
}
/*
Agora, como pegar o emprego? Simples! Vamos criar um comando chamado '/jornalista'
para que o jogador se torne um.
Entгo vamos criar o comando.
*/
CMD:jornalista(playerid) // cria o comando.
{
playerEmprego[playerid] = JORNALISTA; // Definimos o emprego do jogador como jornalista.
SendClientMessage(playerid, -1, "Parabйns pelo seu novo emprego!"); // Mensagem de felicitaзхes.
return true;
}
/*
Poxa, mas agora como criamos uma funзгo para esse emprego?
Vamos, fazer um comando que verifique se o jogador pertence ao emprego e realize alguma funзгo.
*/
CMD:noticia(playerid, params[]) // Criamos o comando.
{
new text[128]; // Variбvel do tipo String para armazenar a noticia.
if(playerEmprego[playerid] != JORNALISTA) // Se o jogador nгo for um jornalista.
return SendClientMessage(playerid, -1, "| x ERRO x | --> Vocк nгo й um jornalista."); // Retorna uma mensagem de erro.
if(sscanf(params, "s", text)) // Verifica se o jogador digitou a noticia.
return SendClientMessage(playerid, -1, "| x ERRO x | --> Digite uma noticia."); // Se nгo houver digitado irб retornar essa mensagem de erro.");
SendClientMessageToAll(-1, text); // Envia a noticia para todos.
return true/
}
Explicaзгo rбpida.