SA-MP Forums

Go Back   SA-MP Forums > Non-English > Languages > Português/Portuguese > Lançamentos/Releases

Reply
 
Thread Tools Display Modes
Old 19/02/2013, 08:13 PM   #1
HumildadeAgain
Huge Clucker
 
HumildadeAgain's Avatar
 
Join Date: Jan 2013
Location: Somewhere Far User
Posts: 459
Reputation: 1
Default Criando seu sistema basico de administração!

Introdução
Olá tudo bom?
Eu não sou muito experiente então não venha com chingamentos e ofensas pois não irei nem ligar..

Vamos usar neste sistema as seguintes includes que podem ser encotradas no tio ******:
DOF2 - ZCMD - SSCANF

Começando
Primeiro iremos criar uma variável para hospedar o nivel 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 basico antes deste tutorial, então procure o tutorial do garfild.)
Code:
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:
Code:
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
Code:
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:
Code:
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
Olhe 3 comandos (/admins - /trabalhar - /kick) sem explicações(é só uma base para você)..
Code:
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;
}

Espero que gostem! Abraços HumildadeAgain.

Last edited by HumildadeAgain; 19/02/2013 at 10:09 PM.
HumildadeAgain is offline   Reply With Quote
Old 19/02/2013, 08:35 PM   #2
Gii
High-roller
 
Gii's Avatar
 
Join Date: Jun 2012
Location: Céu
Posts: 1,626
Reputation: 192
Default Re: Criando seu sistema basico de administração!

Faltou:

Code:
public OnPlayerConnect(playerid) {
	
	Trabalhando[playerid] = 0;  
	return true;
}

Modo incorreto.

Code:
CMD:trabalhar(playerid,params[]) {
    #pragma unused params

Modo correto

Code:
CMD:trabalhar(playerid) {

@edit

Code:
new Trabalhando[MAX_PLAYERS];

//MAX_PLAYERS não seria o número maximo de players neste caso, mas sim o tamanho do índice de seu vetor! Tornando único um valor para cada jogador de seu servidor!


@edit2

Code:
 if(Administrador[playerid] == 0 && !IsPlayerAdmin(playerid)) //no caso se analisar pela tabela verdade as duas condições devem ser verdadeiras!

//use


 if(Administrador[playerid] == 0 || !IsPlayerAdmin(playerid))


@edit3

Modo lento.

Code:
for(new x = 0; x < MAX_PLAYERS; x++)

Modo mais rapido
Code:
static i;
for ( i = GetMaxPlayers() - 1; i > -1; i-- )
__________________
The NewRPG em desenvolvimento ...
Gii is offline   Reply With Quote
Old 19/02/2013, 09:03 PM   #3
HumildadeAgain
Huge Clucker
 
HumildadeAgain's Avatar
 
Join Date: Jan 2013
Location: Somewhere Far User
Posts: 459
Reputation: 1
Default Re: Criando seu sistema basico de administração!

Quote:
Originally Posted by Programador_Macabro View Post
Faltou:

Code:
public OnPlayerConnect(playerid) {
	
	Trabalhando[playerid] = 0;  
	return true;
}

Modo incorreto.

Code:
CMD:trabalhar(playerid,params[]) {
    #pragma unused params

Modo correto

Code:
CMD:trabalhar(playerid) {

@edit

Code:
new Trabalhando[MAX_PLAYERS];

//MAX_PLAYERS não seria o número maximo de players neste caso, mas sim o tamanho do índice de seu vetor! Tornando único um valor para cada jogador de seu servidor!


@edit2

Code:
 if(Administrador[playerid] == 0 && !IsPlayerAdmin(playerid)) //no caso se analisar pela tabela verdade as duas condições devem ser verdadeiras!

//use


 if(Administrador[playerid] == 0 || !IsPlayerAdmin(playerid))


@edit3

Modo lento.

Code:
for(new x = 0; x < MAX_PLAYERS; x++)

Modo mais rapido
Code:
static i;
for ( i = GetMaxPlayers() - 1; i > -1; i-- )
Desculpas os erros,
Não conhecia o loop mais rapido,
Esqueci do trabalhando,
E só tentei ajudar..
HumildadeAgain is offline   Reply With Quote
Old 19/02/2013, 09:05 PM   #4
NuTShoT
Gangsta
 
NuTShoT's Avatar
 
Join Date: Dec 2012
Location: Los Santos ;)
Posts: 568
Reputation: 2
Default Re: Criando seu sistema basico de administração!

Olá HumildadeAgain!

Muito bom. Reputado.

Vlw!
NuTShoT is offline   Reply With Quote
Old 19/02/2013, 09:18 PM   #5
Gii
High-roller
 
Gii's Avatar
 
Join Date: Jun 2012
Location: Céu
Posts: 1,626
Reputation: 192
Default Re: Criando seu sistema basico de administração!

Quote:
Originally Posted by HumildadeAgain View Post
Desculpas os erros,
Não conhecia o loop mais rapido,
Esqueci do trabalhando,
E só tentei ajudar..


Ok tenho uma forma mais otimizada para o comando /admins, porem tenho uma pequena duvida quanto a opereção ternaria, quando tiver certeza posto o código para você

Fora isto o tutorial esta muito simples, mas esta bom.
__________________
The NewRPG em desenvolvimento ...
Gii is offline   Reply With Quote
Old 19/02/2013, 09:34 PM   #6
HumildadeAgain
Huge Clucker
 
HumildadeAgain's Avatar
 
Join Date: Jan 2013
Location: Somewhere Far User
Posts: 459
Reputation: 1
Default Re: Criando seu sistema basico de administração!

Quote:
Originally Posted by NuTShoT View Post
Olá HumildadeAgain!

Muito bom. Reputado.

Vlw!
Obrigado amigo!
Quote:
Originally Posted by Programador_Macabro View Post
Ok tenho uma forma mais otimizada para o comando /admins, porem tenho uma pequena duvida quanto a opereção ternaria, quando tiver certeza posto o código para você

Fora isto o tutorial esta muito simples, mas esta bom.
Tambem tenho dúvidas sobre operação tenária kk'
Mas obrigado pelo elogio e pela correção!
HumildadeAgain is offline   Reply With Quote
Old 19/02/2013, 09:55 PM   #7
s4kuL
High-roller
 
s4kuL's Avatar
 
Join Date: Apr 2012
Posts: 1,109
Reputation: 156
Default Re: Criando seu sistema basico de administração!

not bad
__________________
Procuro pessoas que desejam participar de um projeto do modo BattleGrounds (solo)
s4kuL is offline   Reply With Quote
Old 19/02/2013, 09:59 PM   #8
HumildadeAgain
Huge Clucker
 
HumildadeAgain's Avatar
 
Join Date: Jan 2013
Location: Somewhere Far User
Posts: 459
Reputation: 1
Default Re: Criando seu sistema basico de administração!

Quote:
Originally Posted by s4kuL View Post
not bad
Thanks!
HumildadeAgain is offline   Reply With Quote
Old 19/02/2013, 10:04 PM   #9
Rodrigo_Avenged
Huge Clucker
 
Join Date: Oct 2011
Posts: 416
Reputation: 15
Default Re: Criando seu sistema basico de administração!

Muito bom o tutorial ! dar muito bem para entender , e criar outros sistemas . +rep. ..
Rodrigo_Avenged is offline   Reply With Quote
Old 19/02/2013, 10:07 PM   #10
HumildadeAgain
Huge Clucker
 
HumildadeAgain's Avatar
 
Join Date: Jan 2013
Location: Somewhere Far User
Posts: 459
Reputation: 1
Default Re: Criando seu sistema basico de administração!

Quote:
Originally Posted by Rodrigo_Avenged View Post
Muito bom o tutorial ! dar muito bem para entender , e criar outros sistemas . +rep. ..
Valeu amigo!
HumildadeAgain is offline   Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
[Ajuda] [Criando GM] Básico,intermediário,avançado. patolino Português/Portuguese 4 04/11/2012 06:13 PM
[Tutorial] Criando Organizações - [ Modo Básico ] Duun Lançamentos/Releases 5 31/10/2012 10:20 PM
[Tutorial] Sistema de Registro + Profissão + Sistema de Administração Nake01 Lançamentos/Releases 19 02/03/2012 10:30 PM
[Ajuda] Criando TDM básico Jason_King Português/Portuguese 11 08/09/2011 12:46 AM
[Tutorial] Criando comando em dcmd [Nível Básico] Macintosh Lançamentos/Releases 15 18/07/2011 05:40 PM


All times are GMT. The time now is 06:43 PM.


Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.