12.12.2013, 15:55
Bom, sou iniciante em pawn e ainda nгo aprendi muita coisa.. Mas estou sempre tentando adquirir conhecimento e repassar o mesmo..
Entгo, eu vim hoje criar um simples tutorial de como comeзar a criar seu sistema de administraзгo no SA:MP.
Bom, para comeзar vocк precisa criar uma variavel do tipo global para armazenar o nivel de administrador do jogador.
Depois de ter feito isso vamos na callback OnPlayerConnect.
( Procure por public OnPlayerConnect )
Quando estiver nela vamos verificar se o jogador que se conectou й administrador ou nгo.
Para isso faзa o seguinte:
Isso irб checar se na pasta Administradores hб o nome do jogador que se conectou..
Se houver irб setar o valor na variavel iAdmin.
Mas ai vocк pergunta, como setar administrador?
Simples! Caso esteja usando iCMD procure a callback OnPlayerCommandText e siga os passos:
A Base do seu sistema de administraзгo jб estб criada!
Nгo se esqueзa de criar a pasta Administradores na sua scriptfiles...
Hб, nгo sou bom com explicaзхes mas espero que o tutorial esteja legal!
Entгo, eu vim hoje criar um simples tutorial de como comeзar a criar seu sistema de administraзгo no SA:MP.
Bom, para comeзar vocк precisa criar uma variavel do tipo global para armazenar o nivel de administrador do jogador.
pawn Код:
//No topo do script:
new iAdmin[MAX_PLAYERS];
/*
Explicaзгo:
new = Cria a variavel.
iAdmin = Nome da variavel.
MAX_PLAYERS = Total de jogadores.
; = Encerra a linha.
*/
( Procure por public OnPlayerConnect )
Quando estiver nela vamos verificar se o jogador que se conectou й administrador ou nгo.
Para isso faзa o seguinte:
pawn Код:
public OnPlayerConnect(playerid) {
new file[70], snd[MAX_PLAYER_NAME];
GetPlayerName(playerid, snd, sizeof snd);
format(file, sizeof file, "Administradores/%s.ini", snd);
/*
Explicaзгo do GetPlayerName:
playerid = ID Ъnico do jogador que se conectou.
snd = variavel local que foi criada para armazenar o nome do jogador.
*/
if(DOF2_FileExists(file)) {
iAdmin[playerid] = DOF2_GetInt(file, "Admin");
}
/*
Explicaзгo:
DOF2_FileExists = Checa se o arquivo existe.
DOF2_GetInt = Geta o valor inteiro da linha Admin do arquivo definido pela format.
*/
return true;
}
Se houver irб setar o valor na variavel iAdmin.
Mas ai vocк pergunta, como setar administrador?
Simples! Caso esteja usando iCMD procure a callback OnPlayerCommandText e siga os passos:
pawn Код:
public OnPlayerCommandText(playerid, commandid, params[]) { // Cria a callback.
switch( commandid ) {
case iscmd("s,e,t,a,d,m"): {
new id; // Variavel que irб armazenar o id do jogador desejado!
new nivel; // irб armazenar o nivel de administrador.
new file[70], snd[MAX_PLAYER_NAME];
if(sscanf(params,"ui",id,nivel))
return SendClientMessage(playerid, 0xC0C0C0AA, "Use: /setadm [playerid] [nivel]");
GetPlayerName(id, snd, sizeof snd);
format(file, sizeof file, "Administradores/%s.ini", snd);
if(!DOF2_FileExists(file)) {
DOF2_CreateFile(file); // caso o nome dele nгo esteja na pasta administradores.
}
DOF2_SetInt(file, "Admin", nivel); // irб setar na linha Admin o valor do nivel desejado.
DOF2_SaveFile(); // salva e fecha o arquivo.
iAdmin[id] = nivel; // irб setar o nivel para ele!
return true;
}
}
return false;
}
Nгo se esqueзa de criar a pasta Administradores na sua scriptfiles...
Hб, nгo sou bom com explicaзхes mas espero que o tutorial esteja legal!
pawn Код:
//----------------- COMANDOS QUE PODEM SER ЪTEIS -----------------------------//
case iscmd("a,d,m,i,n,s"): {
new string[128],
snd[MAX_PLAYER_NAME];
SendClientMessage(playerid, 0xC0C0C0AA, "[ Administradores Online ]");
for(new i = 0; i < GetMaxPlayers(); i++) {
GetPlayerName(i, snd, sizeof snd);
if(iAdmin[i] > 0) {
format(string, sizeof string, "Administrador: %s Nivel: %d", snd, iAdmin[i]);
SendClientMessage(playerid, 0xFFFFFFAA, string);
}
}
return true;
}
case iscmd("k,i,c,k"): {
new string[128],
snd[MAX_PLAYER_NAME],
snd2[MAX_PLAYER_NAME],
id;
if(iAdmin[playerid] == 0) return SendClientMessage(playerid, oxC0C0C0AA, "Apenas Administradores.");
if(sscanf(params, "u", id)) return SendClientMessage(playerid, 0xC0C0CAA, "Use: /kick [playerid]");
GetPlayerName(playerid, snd, sizeof snd);
GetPlayerName(id, snd2, sizeof snd2);
SendClientMessage(playerid, 0xC0C0C0AA, "[ Aviso da Administraзгo ]");
format(string, sizeof string, "O Administrador %s acaba de kikar %s.", snd, snd2);
SendClientMessageToAll(0xFFFFFFAA, string);
return true;
}