Usando Dini [ Principal para Aprende-la ] -
ipsBruno - 30.09.2010
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
Respuesta: Usando Dini [ Principal para Aprende-la ] -
Lipepva - 30.09.2010
Obrigado DraKiNs, vai me ajudar mto.
Re: Usando Dini [ Principal para Aprende-la ] -
Homer_Tihuana - 30.09.2010
COMO FASSO UMA DINI PRA CARREGAR ISSO
pawn Код:
public SalvarCofreOrg()
{
new arquivo[256];
new idx = 1;
while (idx < sizeof(CofreOrg))
{
format(arquivo, sizeof(arquivo), "/CofreOrg/Org%d.ini",idx);
dini_IntSet(arquivo,"Dinheiro",CofreOrg[idx][Dinheiro]);
dini_IntSet(arquivo,"Materiais",CofreOrg[idx][Materiais]);
dini_IntSet(arquivo,"Maconha",CofreOrg[idx][Maconha]);
dini_IntSet(arquivo,"Cocaina",CofreOrg[idx][Cocaina]);
dini_IntSet(arquivo,"Crack",CofreOrg[idx][Crack]);
printf("-------[SALVANDO COFRE ORG: %d] -----------------------",idx);
printf("[ORG: %d] Dinheiro = %d",idx,CofreOrg[idx][Dinheiro]);
printf("[ORG: %d] Materiais = %d",idx,CofreOrg[idx][Materiais]);
printf("[ORG: %d] Maconha = %d",idx,CofreOrg[idx][Maconha]);
printf("[ORG: %d] Cocaina = %d",idx,CofreOrg[idx][Cocaina]);
printf("[ORG: %d] Crack = %d",idx,CofreOrg[idx][Crack]);
print("-------------------------------------------------");
idx ++;
}
return 1;
}
stock DepositarGranaOrg(org,valor)
{
new antes = CofreOrg[org][Dinheiro];
CofreOrg[org][Dinheiro] = antes+valor;
new arquivo[256];
format(arquivo, sizeof(arquivo), "/CofreOrg/Org%d.ini",org);
dini_IntSet(arquivo,"Dinheiro",CofreOrg[org][Dinheiro]);
return 1;
}
stock SacarGranaOrg(org,valor)
{
new antes = CofreOrg[org][Dinheiro];
CofreOrg[org][Dinheiro] = antes-valor;
new arquivo[256];
format(arquivo, sizeof(arquivo), "/CofreOrg/Org%d.ini",org);
dini_IntSet(arquivo,"Dinheiro",CofreOrg[org][Dinheiro]);
return 1;
}
stock DepositarMaterialOrg(org,valor)
{
new antes = CofreOrg[org][Materiais];
CofreOrg[org][Materiais] = antes+valor;
new arquivo[256];
format(arquivo, sizeof(arquivo), "/CofreOrg/Org%d.ini",org);
dini_IntSet(arquivo,"Materiais",CofreOrg[org][Materiais]);
return 1;
}
stock SacarMaterialOrg(org,valor)
{
new antes = CofreOrg[org][Materiais];
CofreOrg[org][Materiais] = antes-valor;
new arquivo[256];
format(arquivo, sizeof(arquivo), "/CofreOrg/Org%d.ini",org);
dini_IntSet(arquivo,"Materiais",CofreOrg[org][Materiais]);
return 1;
}
stock DepositarMaconhaOrg(org,valor)
{
new antes = CofreOrg[org][Maconha];
CofreOrg[org][Maconha] = antes+valor;
new arquivo[256];
format(arquivo, sizeof(arquivo), "/CofreOrg/Org%d.ini",org);
dini_IntSet(arquivo,"Maconha",CofreOrg[org][Maconha]);
return 1;
}
stock SacarMaconhaOrg(org,valor)
{
new antes = CofreOrg[org][Maconha];
CofreOrg[org][Maconha] = antes-valor;
new arquivo[256];
format(arquivo, sizeof(arquivo), "/CofreOrg/Org%d.ini",org);
dini_IntSet(arquivo,"Maconha",CofreOrg[org][Maconha]);
return 1;
}
stock DepositarCocainaOrg(org,valor)
{
new antes = CofreOrg[org][Cocaina];
CofreOrg[org][Cocaina] = antes+valor;
new arquivo[256];
format(arquivo, sizeof(arquivo), "/CofreOrg/Org%d.ini",org);
dini_IntSet(arquivo,"Cocaina",CofreOrg[org][Cocaina]);
return 1;
}
stock SacarCocainaOrg(org,valor)
{
new antes = CofreOrg[org][Cocaina];
CofreOrg[org][Cocaina] = antes-valor;
new arquivo[256];
format(arquivo, sizeof(arquivo), "/CofreOrg/Org%d.ini",org);
dini_IntSet(arquivo,"Cocaina",CofreOrg[org][Cocaina]);
return 1;
}
stock DepositarCrackOrg(org,valor)
{
new antes = CofreOrg[org][Crack];
CofreOrg[org][Crack] = antes+valor;
new arquivo[256];
format(arquivo, sizeof(arquivo), "/CofreOrg/Org%d.ini",org);
dini_IntSet(arquivo,"Crack",CofreOrg[org][Crack]);
return 1;
}
stock SacarCrackOrg(org,valor)
{
new antes = CofreOrg[org][Crack];
CofreOrg[org][Crack] = antes-valor;
new arquivo[256];
format(arquivo, sizeof(arquivo), "/CofreOrg/Org%d.ini",org);
dini_IntSet(arquivo,"Crack",CofreOrg[org][Crack]);
return 1;
}
Re: Usando Dini [ Principal para Aprende-la ] -
SlashPT - 30.09.2010
sitio errado...
bem drakon ja sabes o que disse sobre este topico
Respuesta: Usando Dini [ Principal para Aprende-la ] -
Lipepva - 30.09.2010
Tб atй aqui tudo bem, mais e agora como faзo para exibir no jogo o que tem dentro do arquivo usando SendClientMessage ?
Й que tipo, nгo sei o que esta dentro do arquivo, quero simplesmente que apareзa no jogo o que estб la dentro.
Re: Usando Dini [ Principal para Aprende-la ] -
SlashPT - 30.09.2010
voces andao bebedos ou que? ja disse SITIO ERRADO AQUI E SO PARA DISCUTIR SOBRE O TOPICO!
se kerem ajuda criem um topico no "outro lado" e se ja o criaram esperem pela ajuda!
Re: Usando Dini [ Principal para Aprende-la ] -
KevinsL - 30.09.2010
fav
Re: Usando Dini [ Principal para Aprende-la ] -
Canabis - 01.10.2010
Quote:
Originally Posted by Homer_Tihuana
COMO FASSO UMA DINI PRA CARREGAR ISSO
pawn Код:
public SalvarCofreOrg() { new arquivo[256]; new idx = 1; while (idx < sizeof(CofreOrg)) { format(arquivo, sizeof(arquivo), "/CofreOrg/Org%d.ini",idx); dini_IntSet(arquivo,"Dinheiro",CofreOrg[idx][Dinheiro]); dini_IntSet(arquivo,"Materiais",CofreOrg[idx][Materiais]); dini_IntSet(arquivo,"Maconha",CofreOrg[idx][Maconha]); dini_IntSet(arquivo,"Cocaina",CofreOrg[idx][Cocaina]); dini_IntSet(arquivo,"Crack",CofreOrg[idx][Crack]); printf("-------[SALVANDO COFRE ORG: %d] -----------------------",idx); printf("[ORG: %d] Dinheiro = %d",idx,CofreOrg[idx][Dinheiro]); printf("[ORG: %d] Materiais = %d",idx,CofreOrg[idx][Materiais]); printf("[ORG: %d] Maconha = %d",idx,CofreOrg[idx][Maconha]); printf("[ORG: %d] Cocaina = %d",idx,CofreOrg[idx][Cocaina]); printf("[ORG: %d] Crack = %d",idx,CofreOrg[idx][Crack]); print("-------------------------------------------------"); idx ++; } return 1; } stock DepositarGranaOrg(org,valor) { new antes = CofreOrg[org][Dinheiro]; CofreOrg[org][Dinheiro] = antes+valor; new arquivo[256]; format(arquivo, sizeof(arquivo), "/CofreOrg/Org%d.ini",org); dini_IntSet(arquivo,"Dinheiro",CofreOrg[org][Dinheiro]); return 1; } stock SacarGranaOrg(org,valor) { new antes = CofreOrg[org][Dinheiro]; CofreOrg[org][Dinheiro] = antes-valor; new arquivo[256]; format(arquivo, sizeof(arquivo), "/CofreOrg/Org%d.ini",org); dini_IntSet(arquivo,"Dinheiro",CofreOrg[org][Dinheiro]); return 1; }
stock DepositarMaterialOrg(org,valor) { new antes = CofreOrg[org][Materiais]; CofreOrg[org][Materiais] = antes+valor; new arquivo[256]; format(arquivo, sizeof(arquivo), "/CofreOrg/Org%d.ini",org); dini_IntSet(arquivo,"Materiais",CofreOrg[org][Materiais]); return 1; } stock SacarMaterialOrg(org,valor) { new antes = CofreOrg[org][Materiais]; CofreOrg[org][Materiais] = antes-valor; new arquivo[256]; format(arquivo, sizeof(arquivo), "/CofreOrg/Org%d.ini",org); dini_IntSet(arquivo,"Materiais",CofreOrg[org][Materiais]); return 1; }
stock DepositarMaconhaOrg(org,valor) { new antes = CofreOrg[org][Maconha]; CofreOrg[org][Maconha] = antes+valor; new arquivo[256]; format(arquivo, sizeof(arquivo), "/CofreOrg/Org%d.ini",org); dini_IntSet(arquivo,"Maconha",CofreOrg[org][Maconha]); return 1; } stock SacarMaconhaOrg(org,valor) { new antes = CofreOrg[org][Maconha]; CofreOrg[org][Maconha] = antes-valor; new arquivo[256]; format(arquivo, sizeof(arquivo), "/CofreOrg/Org%d.ini",org); dini_IntSet(arquivo,"Maconha",CofreOrg[org][Maconha]); return 1; } stock DepositarCocainaOrg(org,valor) { new antes = CofreOrg[org][Cocaina]; CofreOrg[org][Cocaina] = antes+valor; new arquivo[256]; format(arquivo, sizeof(arquivo), "/CofreOrg/Org%d.ini",org); dini_IntSet(arquivo,"Cocaina",CofreOrg[org][Cocaina]); return 1; } stock SacarCocainaOrg(org,valor) { new antes = CofreOrg[org][Cocaina]; CofreOrg[org][Cocaina] = antes-valor; new arquivo[256]; format(arquivo, sizeof(arquivo), "/CofreOrg/Org%d.ini",org); dini_IntSet(arquivo,"Cocaina",CofreOrg[org][Cocaina]); return 1; } stock DepositarCrackOrg(org,valor) { new antes = CofreOrg[org][Crack]; CofreOrg[org][Crack] = antes+valor; new arquivo[256]; format(arquivo, sizeof(arquivo), "/CofreOrg/Org%d.ini",org); dini_IntSet(arquivo,"Crack",CofreOrg[org][Crack]); return 1; } stock SacarCrackOrg(org,valor) { new antes = CofreOrg[org][Crack]; CofreOrg[org][Crack] = antes-valor; new arquivo[256]; format(arquivo, sizeof(arquivo), "/CofreOrg/Org%d.ini",org); dini_IntSet(arquivo,"Crack",CofreOrg[org][Crack]); return 1; }
|
pq vcs nгo para de roubar e comeзa a criar ?
Re: Usando Dini [ Principal para Aprende-la ] -
Josma_cmd - 24.01.2011
O que eu uso pra pegar o que tб escrito no fazeroque e aplicar ela numa funзгo? exemplo:
pawn Код:
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
GetPlayerName(playerid,ip,256);
format(vstring,256,"/placas/%s.txt",ip);
dini_Get(vstring,"%s.txt","fazeroque");
SetVehicleNumberPlate(GetPlayerVehicleID(playerid), fazeroque);
return 1;
}
O que eu quero й um seguinte, que ele identifique o que tб escrito no txt e aplique o que tб escrito na funзгo SetVehicleNumberPlate. Serб que pode me ajudar? Obrigado.
Re: Usando Dini [ Principal para Aprende-la ] - rjjj - 24.01.2011
Quote:
Originally Posted by Josma_cmd
O que eu uso pra pegar o que tб escrito no fazeroque e aplicar ela numa funзгo? exemplo:
pawn Код:
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger) { GetPlayerName(playerid,ip,256); format(vstring,256,"/placas/%s.txt",ip); dini_Get(vstring,"%s.txt","fazeroque"); SetVehicleNumberPlate(GetPlayerVehicleID(playerid), fazeroque); return 1; }
O que eu quero й um seguinte, que ele identifique o que tб escrito no txt e aplique o que tб escrito na funзгo SetVehicleNumberPlate. Serб que pode me ajudar? Obrigado.
|
Use o Search !
Achei pra vocк:
https://sampforum.blast.hk/showthread.php?tid=214417
Espero ter ajudado