Bom, sou iniciante em peão e ainda não aprendi muita coisa.. Mas estou sempre tentando adquirir conhecimento e repassar o mesmo..
Então, eu vim hoje criar um tutorial simples de como começar a criar seu sistema de administração no SA:MP.
Bom, para começar você precisa criar uma variável do tipo global para armazenar o nível de administrador do jogador.
peão Код:Então, eu vim hoje criar um tutorial simples de como começar a criar seu sistema de administração no SA:MP.
Bom, para começar você precisa criar uma variável do tipo global para armazenar o nível de administrador do jogador.
- Código:
//No topo do script:
new iAdmin [ MAX_PLAYERS ] ;
/*
Explicação:
new = Cria a variável.
iAdmin = Nome da variável.
MAX_PLAYERS = Total de jogadores.
; = Encerra a linha.
*/
Depois de ter feito isso, vamos na callback OnPlayerConnect.
( Procure por público OnPlayerConnect )
Quando estiver nela, vamos verificar se o jogador está conectado ao administrador ou nгo.
Para isso faz o seguinte:
peão Код:( Procure por público OnPlayerConnect )
Quando estiver nela, vamos verificar se o jogador está conectado ao administrador ou nгo.
Para isso faz o seguinte:
- Código:
public OnPlayerConnect ( playerid ) {
novo arquivo [ 70 ] , snd [ MAX_PLAYER_NAME ] ;
GetPlayerName ( playerid, snd, sizeof snd ) ;
formato ( arquivo, tamanho do arquivo, "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( arquivo ) ) {
iAdmin [ playerid ] = DOF2_GetInt ( arquivo, "Admin" ) ;
}
/*
Explicação:
- Código:
DOF2_FileExists = Checa se o arquivo existe.
DOF2_GetInt = Geta o valor inteiro da linha Admin do arquivo definido pelo formato.
*/
retorna verdadeiro;
}
Isso irá checar se na pasta Administradores hÁ o nome do jogador que se conectou.
Se houver irá definir o valor na variável iAdmin.
Mas aí você pergunta, como definir o administrador?
Simples! Caso esteja usando o iCMD, obtenha um callback OnPlayerCommandText e siga os passos:
peão Код:Se houver irá definir o valor na variável iAdmin.
Mas aí você pergunta, como definir o administrador?
Simples! Caso esteja usando o iCMD, obtenha um callback OnPlayerCommandText e siga os passos:
- Código:
public OnPlayerCommandText ( playerid, commandid, params [ ] ) { // Cria um callback.
switch ( commandid ) {
case iscmd ( "s,e,t,a,d,m" ) : {
novo id; // Variavel que irá armazenar o id do jogador desejado!
novo nível; // irá armazenar o nível de administrador.
novo arquivo [ 70 ] , snd [ MAX_PLAYER_NAME ] ;
if ( sscanf ( parametros, "ui",id,nivel ) )
return SendClientMessage ( playerid, 0xC0C0C0AA, "Use: /setadm [playerid] [nivel]" ) ;
GetPlayerName ( id, snd, sizeof snd ) ;
formato ( arquivo, tamanho do arquivo, "Administradores/%s.ini" , snd ) ;
if ( ! DOF2_FileExists ( arquivo ) ) {
DOF2_CreateFile ( arquivo ) ; // caso o nome dele não esteja na pasta administradores.
}
DOF2_SetInt ( arquivo, "Admin" , nível ) ; // irá setar na linha Admin o valor do nível desejado.
DOF2_SalvarArquivo ( ) ; // salva e fecha o arquivo.
iAdmin [ id ] = nível; // irá definir o nível para ele!
retornar verdadeiro;
}
}
retorna falso;
}
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 seja legal!
peão Код: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 seja legal!
- Código:
//----------------- 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 ) ;
}
}
retorna verdadeiro;
}
case iscmd ( "k,i,c,k" ) : {
nova 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 ) ;
retornar verdadeiro;
}
Creditos: Imput