[Tutorial] Usando Dini [ Principal para Aprende-la ]
#1


Por [FeK]DraKiNs

Olб a todos hoje irei fazer um tutorial meio completo explicando o funcionamento e como usa-se Dini.
Й algo realmente fбcil porйm precisamos gravar suas funзхes,caso contrбrio passaremos tempo e tempos usando COPIAR-COLAR para fazer um simples sistema de dados.

Primeiramente para poupar meu texto irei explicar o que significa algumas palavras na Linguagem Dini,ou Pawn,claro.

EXPLICANDO BБSICO

TAG:
Bom, tag й aquele definiзгo contida dentro de um Arquivo vamos pegar um exemplo de um arquivo de dados do player [FeK]DraKiNs

Grana=1000
AdminLevel=2

Observem que Destaquei a palavra antes do =
Bom porque destaquei?
Simples й porque essas palavras sгo as tais Tags

Vejamos:
pawn Код:
dini_Set("Arquivo.txt","TAG","FazerOque");
Ao fazer isto ele criarб um Arquivo.txt dentro da pasta ScriptFiles que й onde salva.
Dentro dele estarб escrito da seguinte maneira:

TAG=FazerOque

Para ler esta Tag dentro do Arquivo usaremos

pawn Код:
dini_Get("Arquivo.txt","TAG");
Ele irб retornar o FazerOQue


PRINCIPAIS FUNЗХES

Bom entгo vamos explicar as funзгo e suas respectivas aзхes dentro de um Game Mode:


Escrever e Ler String em Arquivo

dini_Set("Arquivo.txt","Key","String");

dini_Set colocarб um String no Arquivo.txt, lembrando que String й Texto e nгo Nъmeros

Como Defino o Arquivo


Aqui algo simples,apenas precisamos de um Array e Format nela.
pawn Код:
new NAME[24]; new Arquivo[44]; // Defini as 2 Array para Salvar Nome e Local do Arquivo, de definiremos poterioemente
GetPlayerName(playerid,NAME,24); // Pega nome do Player e Salva em NAME
format(Arquivo,44,"%s.ini",NAME); //Formata a Array "Arquivo" deixando No nomedoplayer.ini para ler
dini_Set(Arquivo,"Nome",NAME); // Seta No Arquivo NOME=[FeK]DraKiNs
Como comparo Duas Nomes em um Arquivo?

Lembram meu tutorial de String? й usaremos STRCMP,pois NOMES й String.

Exemplo:

pawn Код:
if(!strcmp(dini_Get("Arquivo.txt", "Senha"), dini_Get("Arquivo2.txt", "Senha"), false))
{
     SendClientMessage(playerid,0F0000x,"A Senha do Arquivo1 e Arquivo2 Sгo Iguais");
}

Caso nгo for String? NUMEROS
Bom quando nгo se trata de string normalmente usaremos nъmero,basta usar da seguinte forma

pawn Код:
dini_IntSet("Moneys.ini","[FeK]DraKiNs",GetPlayerMoney(playerid));
Este cуdigo salvarб um arquivo da Seguinte forma:
Em Moneys.ini
Salvarб
TAG:[Fek]DraKiNs
VALOR: 1000 (No Exemplo Tenho 1000 Reais | Euros )

Ficando:

[FeK]DraKiNs=1000

A Tag й [FeK]DraKiNs como dito anteriormente

Como lerei isso? NUMEROS
Para ler usamos dini_Int ele pegarб:

pawn Код:
dini_Int("Moneys","[FeK]DraKiNs");
Ele retornarб 1000 devido a ter salvado 1000 Anteriormente

Criar & Deletar Arquivo

pawn Код:
dini_Create("DraKiNsCat.ini"); // criar
dini_Remove("DraKiNsCat.ini"); // Remover


ATENЗГO

Caso seu Game Mode esteja fechando й porque ele esta tentando abrir/escrever em um arquivo inexistente

EXEMPLO
Arquivo CAT.ini nгo existe

pawn Код:
dini_Set("CAT.ini","DraKiNS","йgato");
Como os Arquivo nгo existe ele crasharб servidor,aconselho colocarem antes de cada Leitura/gravaзгo/Remove:

pawn Код:
if(!dini_Exists("CAT.ini")) dini_Create("CAT.ini");
dini_Set("CAT.ini","DraKiNS","йgato");
dini_Exists checa se existe, se nгo existe ! ele Cria,assim nгo crashando Server


FIM
ERROS? PM-ME
Reply


Messages In This Thread

Forum Jump:


Users browsing this thread: 1 Guest(s)