Kilead Samp
Bem Vindo a : Kilead Samp
Poste seus projetos,aqui!
e Seja Feliz!

Participe do fórum, é rápido e fácil

Kilead Samp
Bem Vindo a : Kilead Samp
Poste seus projetos,aqui!
e Seja Feliz!
Kilead Samp
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Você não está conectado. Conecte-se ou registre-se

[TUTORIAL] Criando sistema de Administraçao em DF2 - ZCMD - SSCAN

Ir para baixo  Mensagem [Página 1 de 1]

Leo_Gangster

Leo_Gangster
Admin

Vamos usar neste sistema as seguintes includes que podem ser encontradas no google:




DOF2 - ZCMD - SSCANF

Começando:
Primeiro iremos criar uma variável para hospedar o nível de administrador e a variavel que irá hospedar se o administrador está trabalhando ou não. (caso não saiba oque é uma variável você precisa saber o básico antes deste tutorial, então procure o tutorial do garfild.)


pawn Código:


new Administrador[MAX_PLAYERS];
/*
Explicação:
new = Cria a variável.
Administrador = Nome da variável.
MAX_PLAYERS = Numero maximo de players do servidor.
*/

new Trabalhando[MAX_PLAYERS];
// A Explicação da primeira variavel se encaixa nessa tambem..

Agora iremos entender algumas funções do DOF2:


pawn Código:


DOF2_GetString // Geta um valor de uma string (como o valor %s).
DOF2_SetString // Seta um valor de uma string.
DOF2_GetInt // Geta um valor numerico.
DOF2_SetInt // Seta um valor numerico.
DOF2_CreateFile // Cria um arquivo.
DOF2_FileExists // Checa se um arquivo existe.
DOF2_SaveFile // Salva um arquivo.

Agora vamos usar a Callback public OnPlayerConnect para criar/carregar os dados da pasta Admins/NOME DO PLAYER.ini


pawn Código:


public OnPlayerConnect(playerid) {
Trabalhando[playerid] = 0; // Caso o player seja administrador entrar em modo jogo..
new file[70]; // Variavel que irá hospedar os dados do player.
new snd[MAX_PLAYER_NAME]; // Variavel que irá hospedar o nome do player.
GetPlayerName(playerid, snd, sizeof snd); // Função que geta o nome do player e hospeda na variavel snd.
format(file,sizeof file,"Admins/%s.ini",snd); // Irá hospedar os dados do arquivo Admins/nomedoplayer.ini na variavel file.
if(DOF2_FileExists(file)) { // Se o arquivo existir..
Administrador[playerid] = DOF2_GetInt(file,"Admin");
/*
Aqui irá hospedar o valor da linha 'Admin' do arquivo hospedado na variavel 'file' na variavel Administrador que criamos no começo..
*/

}
else if(!DOF2_FileExists(file)) { // Se o arquivo não existir..
DOF2_CreateFile(file); // Cria o arquivo hospedado na variavel file.
DOF2_SetInt(file,"Admin",0); // Seta a linha 'Admin' para o valor '0' que seria sem admin.
DOF2_SaveFile(); // Irá salvar o arquivo acima.

Administrador[playerid] = DOF2_GetInt(file,"Admin");
/*
Acima criamos e carregamos o arquivo ao mesmo tempo..
*/

}
return true;
}

Agora vamos para a ultima parte que são os comandos. É bem simples, basta usar a seguinte função nos comandos:


pawn Código:


if(Administrador[playerid] == 0) return SendClientMessage(playerid,0xC0C0C0AA,"Você não é um administrador!");
// Isso checa se o player que executou o comando é administrador ou não..

Agora basta criar sua criatividade.

Veja alguns comandos:

(/admins - /trabalhar - /kick) - É só uma base para você.


pawn Código:


CMD:admins(playerid,params[]) {
#pragma unused params
new string[128];
for(new x = 0; x < MAX_PLAYERS; x++) {
if(Administrador[i] >= 1) {
format(string, sizeof string, "• Admin: %s Nivel: [Normal] Modo: [%s]",Trabalhando[i] ? ("Trabalhando") : ("Jogando"));
SendClientMessage(playerid, -1, string);
}
if(IsPlayerAdmin(i)) {
format(string, sizeof string, "• Admin: %s Nivel: [RCON] Modo: [%s]",Trabalhando[i] ? ("Trabalhando") : ("Jogando"));
SendClientMessage(playerid, -1, string);
}
}
return 1;
}

CMD:trabalhar(playerid,params[]) {
#pragma unused params
new string[128], snd[MAX_PLAYER_NAME];
GetPlayerName(playerid, snd, sizeof snd);
if(Administrador[playerid] == 0 || !IsPlayerAdmin(playerid)) return SendClientMessage(playerid,0xC0C0C0AA,"Você não é um administrador!");
if(Trabalhando[playerid] == 0) {
SetPlayerHealth(playerid, cellmax);
Trabalhando[playerid] = 1;
}
else if(Trabalhando[playerid] == 1) {
SetPlayerHealth(playerid, 100);
Trabalhando[playerid] = 0;
}
format(string, sizeof string, ">> O Administrador %s acaba de %s.",snd,Trabalhando[playerid] ? ("entrar no modo trabalho") : ("saiu do modo trabalho"));
SendClientMessageToAll(-1,string);
return 1;
}

CMD:kick(playerid,params[]) {
new id,motivo[128],string[128],snd[MAX_PLAYER_NAME];
if(Administrador[playerid] == 0 || !IsPlayerAdmin(playerid)) return SendClientMessage(playerid,0xC0C0C0AA,"Você não é um administrador!");
if(Trabalhando[playerid] == 0) return SendClientMessage(playerid, 0xC0C0C0AA, "Use: /trabalhar");
if(sscanf(params,"us",id,motivo)) return SendClientMessage(playerid, 0xC0C0C0AA, "Use: /kick [playerid] [motivo]");
GetPlayerName(id,snd,sizeof snd);
format(string, sizeof string, ">> O Player %s foi kickado por %s.",snd,motivo);
SendClientMessageToAll(-1,string);
Kick(id);
return 1;
}


Creditos:HumildadeAgain


https://kilead-samp.forumeiros.com

Ir para o topo  Mensagem [Página 1 de 1]

Permissões neste sub-fórum
Não podes responder a tópicos