Desvendando o DOF2 - Joao Pedro - 14.03.2013
Olб pessoal.
Muitas pessoas podem ter dъvidas de como usar a include
dof2. Nesse tutorial estarei tirando esse misticismo de que й algo complicado, como vemos em muitas comunidade de SA-MP. Apуs ler e entender esse tutorial, vocк estarб apto a desenvolver qualquer tipo de sistema que queira armazenar dados.
O que й
DOF2 й uma include responsбvel por gerenciamento de dados armazenados em arquivos. Ele й muito utilizado em sistemas de registro, salvamento, empresas, etc...
Aonde encontrar
Infelizmente, nгo encontrei o tуpico oficial do DOF2, todavia vocк pode encontralo
clicando aqui.
Como instalar
1) Faзa o download do arquivo.
Click aqui.
2) Salve o arquivo na pasta
pawno/includes com o nome de
DOF2.inc. DOF2 em maiъsculo e a extensгo .inc.
3) Na parte de includes no seu gamemode, normalmente no topo, inclua a include inserindo o cуdigo abaixo:
Pronto. Seguindo esses 3 passos vocк tem o DOF2 instalado e pronto para ser usado.
Funcionalidade
O sistema de armazenamento e identificaзгo dos dados em DOF2 funciona no formato:
CHAVE=
VALOR
CHAVE: й o identificador de cada valor. Vocк nгo pode ter chaves com o mesmo nome. Vocк sempre se referencia a ela quando quer recuperar algum valor.
VALOR: й o valor propriamente dito.
Vocк pode imaginar esse sistema como um sistema de variбvel aonde a
chave й o nome da variбvel e o
valor й o valor da variбvel.
PS: Vocкs podem encontrar muito no cabeзalho das funзхes a palavra:
key[], que se refere a
chave;
Comandos bбsicos
Vamos agora entrar na parte dos comandos bбsicos. Nesse tutorial irei ensinar a vocкs o uso dos comandos que acho que vocкs tem a maior chance de usar. Existem diversos outros comandos, todavia, nгo os acho pertinentes.
DOF2_CreateFile(file[],password[]="")
Cria um arquivo.
Exemplo de uso:
Code:
new str[128], name[32];
GetPlayerName(playerid, name. sizeof(name));
format(str, sizeof(str), "contas/%s.ini", name);
DOF2_CreateFile(str);
DOF2_FileExists(file[])
Verifica se um arquivo existe. Retorna
true se existir e
false caso contrбrio.
Exemplo de uso:
Code:
new str[128], name[32];
GetPlayerName(playerid, name. sizeof(name));
format(str, sizeof(str), "contas/%s.ini", name);
if(!DOF2_FileExists(str) DOF2_CreateFile(str);
DOF2_RenameFile(oldfile[],newfile[])
Renomeia um arquivo.
Exemplo de uso:
Code:
new str[128], new[128];
format(str, sizeof(str), "contas/joao.ini");
format(new, sizeof(new), "contas/pedro.ini");
DOF2_CreateFile(str);
DOF2_RenameFile(str, new);
DOF2_RemoveFile(file[])
Deleta um arquivo.
Exemplo de uso:
Code:
new str[128];
format(str, sizeof(str), "contas/joao.ini");
DOF2_RemoveFile(str);
DOF2_CopyFile(filetocopy[],newfile[])
Copia o conteъdo de um arquivo e cria um novo arquivo a partir desse conteъdo.
Exemplo de uso:
Code:
new str[128], new[128];
format(str, sizeof(str), "contas/joao.ini");
format(new, sizeof(new), "contas/pedro.ini");
DOF2_CreateFile(str);
DOF2_CopyFile(str, new);
DOF2_SaveFile()
Salva o conteъdo do arquivo que estб sendo trabalhado.
Exemplo de uso:
Code:
new str[128];
format(str, sizeof(str), "contas/joao.ini");
DOF2_CreateFile(str);
DOF2_SaveFile();
DOF2_GetString(file[],key[],tag[]="")
DOF2_GetInt(file[],key[],tag[]="")
DOF2_GetFloat(file[],key[],tag[]="")
DOF2_GetBool(file[],key[],tag[]="")
Comandos que recebem um tipo de valor do arquivo: literal, numйrico, fracionбrio e booleano (string, int, float e boolean).
Exemplo de uso:
Code:
new str[128], nome[32], idade, Float:salario;
format(str, sizeof(str), "contas/joao.ini");
nome = DOF2_GetString(str, "name");
idade = DOF2_GetInt(str, "age");
salario = DOF2_GetFloat(str, "salary");
banido = DOF2_GetBool(str, "banned");
DOF2_SetString(file[],key[],tag[]="")
DOF2_SetInt(file[],key[],tag[]="")
DOF2_SetFloat(file[],key[],tag[]="")
Comando que inserem um valor no arquivo. Literal, numйrico, fracionбrio e booleano (string, int, float e boolean).
Exemplo de uso:
Code:
new str[128], nome[32], idade, Float:salario;
format(str, sizeof(str), "contas/joao.ini");
DOF2_SetString(str, "name", "Joao");
DOF2_SetInt(str, "age", 18);
DOF2_SetFloat(str, "salary", 0.0);
DOF2_SetBool(str, "banned", true);
Assim chegamos na parte final do nosso tutorial sobre DOF2. Com esse conteъdo vocкs estгo aptos a construir qualquer sistema de armazenamento de informaзхes que bem desejarem.
Abraзos e atй a prуxima.
Re: Desvendando o DOF2 -
Sky™ - 14.03.2013
chupa seus bacana eu ja vi primeiro kkk
aprendi dof2
first
Re: Desvendando o DOF2 -
smiiir - 14.03.2013
bom tuto,
mas sу uma coisa,
й dof2.ini
ou dof2.inc
rs.
#Sky aff
que cuzao.
eu ia postar primeiro
Re: Desvendando o DOF2 - Joao Pedro - 14.03.2013
@iSmir
Alterado. Confudi a paradex boladex (isso й falta de sopa : /)
Re: Desvendando o DOF2 -
Gii - 14.03.2013
Legal, seria mais legal ainda se fizesse o mesmo com MySQL e SQLite!
Re: Desvendando o DOF2 - Joao Pedro - 14.03.2013
Quote:
Originally Posted by Programador_Macabro
Legal, seria mais legal ainda se fizesse o mesmo com MySQL e SQLite!
|
Talvez um dia eu faзa, muito difнcil mas quem sabe... Esse tutorial achei perdido aqui, eu fiz mas nгo tinha postado. Como dei uma parada em SA-MP acho difнcil fazer mais algum tutorial, mas quem sabe :P
Re: Desvendando o DOF2 -
VenoN - 14.03.2013
muito bom eu mesmo nunca havia usado dof2 antes
Re: Desvendando o DOF2 -
JapaN* - 14.03.2013
Ajudara a Muitos.
Parabйns.
Re: Desvendando o DOF2 -
Kuddy - 14.03.2013
new new[128]; MASOQ
ista
Otimo tutorial =D!
Muito bem explicado e com bastante exemplos.
Re: Desvendando o DOF2 -
SeV_ - 14.03.2013
bom cara. parabens!
Re: Desvendando o DOF2 -
zSuYaNw - 14.03.2013
Bom tutorial, quando lн Desvendando DOF2 pensei em outra coisa :P
Re: Desvendando o DOF2 -
HumildadeAgain - 14.03.2013
Muito bom
Parabкns hehe'
Re: Desvendando o DOF2 -
Jefferson Santos - 14.03.2013
Quote:
Originally Posted by [Full]Garfield[XDB]
Bom tutorial, quando lн Desvendando DOF2 pensei em outra coisa :P
|
Haha eu tambйm.
@Topic.
Уtimo tutorial,
Agora tem onde indicar novatos quando vierem com dъvidas sobre o mesmo.
Rep +!
Re: Desvendando o DOF2 -
Jason` - 15.03.2013
Excelente, acho que nгo havia um tгo explicativo na board. Serб de grande serventia para a mуdica quantia de novatos que se dispхem a ler um tutorial.
Re: Desvendando o DOF2 -
Schocc - 19.03.2013
Uma coisa que poderia colocar em seu Tutorial й.
Quote:
Originally Posted by humildadeforever
A ъltima vez que tentei usar tava bugada mesmo! O negуcio й strcmp 4ever <3 '-'
kkkkkkk'
|
Quote:
Originally Posted by Los
Se eu nгo me engano, estб funзгo estб "bugada" no DOF2, e como nгo hб mais atualizaзхes do mesmo, creio que nгo vai ser possнvel utiliza-la.
|
Negativo.
A Funзгo esta correta, sempre esteve!. E so abrir a include que vocк vai notar, Muitos nгo sabem usar corretamente, mas pessoal nгo tem bug algum;
E a forma para usar йla й:
pawn Code:
case DIALOG_REGISTRO:
{
switch( response )
{
case 0 : return CheckAccount( playerid );
case 1:
{
new g_String[72], name[24];
GetPlayerName( playerid, name, 24 );
format( g_String, sizeof( g_String ), "Contas/%.ini", name ); //Exemplo se eu entrar com o nome "SchocC" ele formata deixando o caminho para o Salvamento, aonde sera enviado as Informaзхes em um arquivo .ini;
if( !DOF2_FileExists( g_String ) ) //Verifica se nгo existe a Conta
{
if( 5 < strlen( inputtext ) < 12 ) return SendClientMessage( "Sua senha deve ter no minimo: 5 Caracteries e Maximo: 12" );
DOF2_CreateFile( g_String, inputtext );//Aqui a conta do Player й criada na pasta "SA-MP SERVER\scriptfiles\SchocC.ini"
DOF2_SetInt( g_String, "Logado", VariavelComValorAserSalvado ),
DOF2_SetInt( g_String, "Dinheiro", VariavelComValorAserSalvado ),
DOF2_SetInt( g_String, "Score", VariavelComValorAserSalvado ),
DOF2_SaveFile();
return true;
}
E lenbrando que usando йsta funзaх vocк altomaticamente ja usa um
Password Hashing chamado de Hash
Este cуdigo salva um arquivo na pasta: "SA-MP Server 0.3x\scriptfiles\Contas\SchocC.ini"
Code:
password = 192217830
Logado = 0
Dinheiro = 0
Score = 0
password - й a variavel padrгo do Sistema dof2 que salva a senha para um Sistema de Registro/Login
A funзгo pega a senha do nome do arquivo.
Exemplo: Checando login e senha!
DOF2_CheckLogin( filename[], password[] );
*
filename[] - No exemplo acima o 'filename' Representaria
"SA-MP Server 0.3x\scriptfiles\Contas\SchocC.ini"
*
password[]
A funзгo tem um hach interno embutido coisa facil de se fisualizar;
pawn Code:
stock bool: DOF2::CheckLogin (file [], password [])
return (file [0] && password [0] && DOF2::num_hash (password) == DOF2::GetInt (file, USER_PW_HASH_KEY));
Eu ia sу dar uma dica e acabei escrevendo atй aqui..
Re: Desvendando o DOF2 -
Maklister - 19.03.2013
Pensei em outra coisa nesse desvendando kk'
belo tutorial (
MaisPodiaSerVнdeoPraEuOuvirSuaVozGrossaDenovo)
Re: Desvendando o DOF2 -
JhefTFJ - 23.03.2017
Gostei!
Re: Desvendando o DOF2 -
vPunisheR - 23.03.2017
Quote:
Originally Posted by JhefTFJ
Gostei!
|
Pra que reviver um tуpico de 2013 ? e ainda fazendo spam, nгo agregando conteъdo ao mesmo
Re: Desvendando o DOF2 -
JhefTFJ - 23.03.2017
Quote:
Originally Posted by vPunisheR
Pra que reviver um tуpico de 2013 ? e ainda fazendo spam, nгo agregando conteъdo ao mesmo
|
Olha dever se porque deu vontade?, alias de minha vontade vocк nгo pode modifica-las, pos quem manda nela sou eu, e eu uso minha conta pra qualquer coisa que eu achar de bom ou de melhor!, Bjs!
Re: Desvendando o DOF2 -
BLacksKrillex - 23.03.2017
Quote:
Originally Posted by JhefTFJ
Olha dever se porque deu vontade?, alias de minha vontade vocк nгo pode modifica-las, pos quem manda nela sou eu, e eu uso minha conta pra qualquer coisa que eu achar de bom ou de melhor!, Bjs!
|
Vai tomar no cu e para de ser lixo