[Include] Bini (INI FILES) Versao 4
#21

Good, acho que vou mudar meu sistema de arquivos para bini =D vou ter que editar pra porra kk uso SII. Nem tanto pq as funзхes sгo iguais, sу vou mudar algumas coisas.
Reply
#22

Conversгo pra SII

CTRL H

"INI_"
PARA
"SINI_"

Agora apenas coloque no topo do gamemode

pawn Code:
#include <bini>
#define SINI_Open                   INI_Open
#define SINI_WriteString(%0,%1)     INI_WriteString(nomeArquivo,%0,%1)
#define SINI_WriteInt(%0,%1)        INI_WriteInt(nomeArquivo,%0,%1)

#define SINI_ReadString(%0,%1,%2)   INI_WriteString(nomeArquivo,%1)
#define SINI_ReadInt(%1)            INI_WriteInt(nomeArquivo,%1)

#define SINI_Save                   INI_Save
#define SINI_Close                  INI_Close
Deve funcionar Se funcionou avisa


Conversгo pra DOF2

pawn Code:
#define DOF2_CreateFile             INI_Create
#define DOF2_SetInt                 INI_WriteInt
#define DOF2_SaveFile               INI_Save

#define DOF2_SaveFile               INI_Save
#define DOF2_PrintFile              INI_Print

#define DOF2_GetString(%0,%1)       dof_fix_str(INI_ReadString(%0,dof_fix_str(%1,1,1)),0,0)
#define DOF2_GetInt(%0,%1)          INI_ReadInt(%0, dof_fix_str(%1,1,1))

#define DOF2_SetString(%0,%1,%2)    INI_WriteString(%0,dof_fix_str(%1,1,1),dof_fix_str(%2,0,0))
#define DOF2_SetInt(%2,%0,%1)       INI_WriteString(%2,dof_fix_str(%1,1,1),(format(destinoString, sizeof(destinoString), " %i", %1),destinoString))

#define DOF2_FileExists             fexist
#define DOF2_RemoveFile             INI_Delete


stock dof_fix_str(s[], put = 0, key = 0) {

    static v[max_dep_memory];
    strcat((v[0]='\0',v), s);

    new len = strlen(v);

    if(key) {

        if(put) {
            if(v[len-1] != ' ')
                v[len]= ' ';
        }
        else {
            if(v[len-1] == ' ')
                v[len-1]='\0';
        }
    }
    else {
        if(put) {
            if(v[0] != ' ')
                format(v, max_dep_memory, " %s", v);
        }
        else {
            if(v[0] == ' ')
                format(v, max_dep_memory, v[1]);
        }
    }
    return v;
}
Reply
#23

Muito bom, gostaria de saber se й mais rбpido do que o SII e o y_ni do y_less.

Poderia fazer os testes?


Excellent job.

@Digno de Rep++.
Reply
#24

Vou testar aqui, mas isso й lento nгo й?
Reply
#25

Quote:
Originally Posted by Bruno Pereira
View Post
Vou testar aqui, mas isso й lento nгo й?
Nem um pouco! Pois lembre-se, definiзгo й substituнda logo quando compila!

@Edit

Nem vai dar certo por definiзгo viu, se vai ter que trocar tudo msm!
Reply
#26

Quote:
Originally Posted by Bruno Pereira
View Post
Vou testar aqui, mas isso й lento nгo й?
Nгo. Isto й substituнdo na hora da compilaзгo.

-
-

Deu erros Paulor?
Reply
#27

Nem da certo drakins, dб varios erros de vars etc, vai ter que substituir tudo mesmo.
Reply
#28

Quote:
Originally Posted by [FeK]DraKiNs
View Post
Nгo. Isto й substituнdo na hora da compilaзгo.

-
-

Deu erros Paulor?
Eu nгo testei, mas da pra saber, veja:

pawn Code:
#define SINI_WriteString(%0,%1)     INI_WriteString(nomeArquivo,%0,%1)
'nomeArquivo' nunca seria o msm!

@Edit

Demoro d+ bruno!

pawn Code:
#define DOF2_FileExists fexist
#define DOF2_RemoveFile INI_Delete
#define DOF2_CreateFile INI_Create
#define DOF2_SetString INI_WriteString
#define DOF2_GetString INI_ReadString
#define DOF2_SetInt INI_WriteInt
#define DOF2_GetInt INI_ReadInt
#define DOF2_SetBool INI_WriteBool
#define DOF2_GetBool INI_ReadBool
#define DOF2_SetFloat INI_WriteFloat
#define DOF2_GetFloat INI_ReadFloat
#define DOF2_IsSet INI_Isset
#define DOF2_Exit INI_Exit
Reply
#29

Quote:
Originally Posted by paulor
View Post
Eu nгo testei, mas da pra saber, veja:

pawn Code:
#define SINI_WriteString(%0,%1)     INI_WriteString(nomeArquivo,%0,%1)
'nomeArquivo' nunca seria o msm!

@Edit

Demoro d+ bruno!

pawn Code:
#define DOF2_FileExists fexist
#define DOF2_RemoveFile INI_Delete
#define DOF2_CreateFile INI_Create
#define DOF2_SetString INI_WriteString
#define DOF2_GetString INI_ReadString
#define DOF2_SetInt INI_WriteInt
#define DOF2_GetInt INI_ReadInt
#define DOF2_SetBool INI_WriteBool
#define DOF2_GetBool INI_ReadBool
#define DOF2_SetFloat INI_WriteFloat
#define DOF2_GetFloat INI_ReadFloat
#define DOF2_IsSet INI_Isset
#define DOF2_Exit INI_Exit
Vocк estб falando o que nгo sabe. nomeArquivo й a variбvel armazenada pelo INI_Open responsбvel por armazenar o arquivo atual que estб aberto.

E BINI nгo funciona com DOF2. DOF grava com white spaces

DOF2
Code:
key = value
Jб Bini usa o mйtodo formal para escrita de arquivos ini:
Code:
key=value
Reply
#30

Quote:
Originally Posted by [FeK]DraKiNs
View Post
Vocк estб falando o que nгo sabe. nomeArquivo й a variбvel armazenada pelo INI_Open responsбvel por armazenar o arquivo atual que estб aberto.

E BINI nгo funciona com DOF2. DOF grava com white spaces

DOF2
Code:
key = value
Jб Bini usa o mйtodo formal para escrita de arquivos ini:
Code:
key=value
Isso que da nгo verificar a include antes de postar, hehe... Imaginei que 'nomeArquivo', fosse para ele alterar!
Reply
#31

rsrsrsrs... й nй o cйrebro necessita de um pouquinho, BEM POUCO(vнcio falando) de descanso...

meus olhos doem d+ !


@Vai dormir se ta precisando xD !
Reply
#32

Drakins acho que achei um bug cara.
Tipo, quando vocк vai escrever usando INI_WriteInt em um arquivo que jб existe, ele nгo escreve em cima dos valores que tem dentro do arquivo, eles escrevem novamente, duplicando os valores.
Exemplo de como ficou aqui comigo:

Como fica quando o arquivo й criado pela 1є vez (certinho):
PHP код:
Lider=Bruno_Pereira
SubLider444
=Ninguem
SubLider555
=Ninguem
Membro1
=Ninguem
Membro2
=Ninguem
Membro3
=Ninguem
Membro4
=Ninguem
Membro5
=Ninguem
Membro6
=Ninguem
Membro7
=Ninguem
Membro8
=Ninguem
Membro9
=Ninguem
Membro10
=Ninguem
Membro11
=Ninguem
Membro12
=Ninguem
Membro13
=Ninguem
Membro14
=Ninguem
Membro15
=Ninguem
CofreOrg
=0
SalarioLider
=0
SalarioSub
=0
SalarioC5
=0
SalarioC4
=0
SalarioC3
=0
SalarioC2
=0
SalarioC1
=0
AK
-47=0
MP5
=0
SHOT
-GUN=0
DEAGLE
=0
Colete
=0
Maconha
=0
Materiais
=
Agora olha como fica quando salvo novamente lembrando que sу to salvando novamente os inteiros.

PHP код:

Lider
=Bruno_Pereira
SubLider444
=Ninguem
SubLider555
=Ninguem
Membro1
=Ninguem
Membro2
=Ninguem
Membro3
=Ninguem
Membro4
=Ninguem
Membro5
=Ninguem
Membro6
=Ninguem
Membro7
=Ninguem
Membro8
=Ninguem
Membro9
=Ninguem
Membro10
=Ninguem
Membro11
=Ninguem
Membro12
=Ninguem
Membro13
=Ninguem
Membro14
=Ninguem
Membro15
=Ninguem
CofreOrg
=0
SalarioLider
=0
SalarioSub
=0
SalarioC5
=0
SalarioC4
=0
SalarioC3
=0
SalarioC2
=0
SalarioC1
=0
AK
-47=0
MP5
=0
SHOT
-GUN=0
DEAGLE
=0
Colete
=0
Maconha
=0
Materiais
=0
CofreOrg
=0
SalarioLider
=0
SalarioSub
=0
SalarioC5
=0
SalarioC4
=0
SalarioC3
=0
SalarioC2
=0
SalarioC1
=0
AK
-47=0
MP5
=0
SHOT
-GUN=0
DEAGLE
=0
Colete
=0
Maconha
=0
Materiais
=
Minha stock de salvar
PHP код:
stock SaveOrg(orgID)
{
    
format(String20"InfoOrg/Org %d.ini"orgID);
    if(
fexist(String))
    {
        
INI_WriteInt(String"CofreOrg"InfoOrg[orgID][CofreOrg]);
        
InfoOrg[orgID][CofreOrg] = INI_ReadInt(String"CofreOrg");
        
        
INI_WriteInt(String"SalarioLider"InfoOrg[orgID][Salario][6]);
        
InfoOrg[orgID][Salario][6] = INI_ReadInt(String"SalarioLider");
        
        
INI_WriteInt(String"SalarioSub"InfoOrg[orgID][Salario][5]);
        
InfoOrg[orgID][Salario][5] = INI_ReadInt(String"SalarioSub");
        
        
INI_WriteInt(String"SalarioC5"InfoOrg[orgID][Salario][4]);
        
InfoOrg[orgID][Salario][4] = INI_ReadInt(String"SalarioC5");
        
        
INI_WriteInt(String"SalarioC4"InfoOrg[orgID][Salario][3]);
        
InfoOrg[orgID][Salario][3] = INI_ReadInt(String"SalarioC4");
        
        
INI_WriteInt(String"SalarioC3"InfoOrg[orgID][Salario][2]);
        
InfoOrg[orgID][Salario][2] = INI_ReadInt(String"SalarioC3");
        
        
INI_WriteInt(String"SalarioC2"InfoOrg[orgID][Salario][1]);
        
InfoOrg[orgID][Salario][1] = INI_ReadInt(String"SalarioC2");
        
        
INI_WriteInt(String"SalarioC1"InfoOrg[orgID][Salario][0]);
        
InfoOrg[orgID][Salario][0] = INI_ReadInt(String"SalarioC1");
        
        
INI_WriteInt(String"AK-47"InfoOrg[orgID][Balas][3]);
        
InfoOrg[orgID][Balas][3] = INI_ReadInt(String"AK-47");
        
        
INI_WriteInt(String"MP5"InfoOrg[orgID][Balas][2]);
        
InfoOrg[orgID][Balas][2] = INI_ReadInt(String"MP5");
        
        
INI_WriteInt(String"SHOT-GUN"InfoOrg[orgID][Balas][1]);
        
InfoOrg[orgID][Balas][1] = INI_ReadInt(String"SHOT-GUN");
        
        
INI_WriteInt(String"DEAGLE"InfoOrg[orgID][Balas][0]);
        
InfoOrg[orgID][Balas][0] = INI_ReadInt(String"DEAGLE");
        
        
INI_WriteInt(String"Colete"InfoOrg[orgID][Colete]);
        
InfoOrg[orgID][Colete] = INI_ReadInt(String"Colete");
        
        
INI_WriteInt(String"Maconha"InfoOrg[orgID][Maconha]);
        
InfoOrg[orgID][Maconha] = INI_ReadInt(String"Maconha");
        
        
INI_WriteInt(String"Materiais"InfoOrg[orgID][Materiais]);
        
InfoOrg[orgID][Materiais] = INI_ReadInt(String"Materiais");
        
INI_Save();
    }
    return 
true;

Sу salva os inteiros nela, porque os membros sгo salvados em tempo real.
Reply
#33

Cara. Dк printf e veja se as arrays da org estгo com valor diferente de zero. Se estiverem vou corrigir isto o mais rбpido possнvel

Eu FALEI que nгo era mais para usar INI_Save()

-

Testei aqui e funcionou perfeitamente
Reply
#34

se eu nгo usar INI_Save vou usar o que pra salvar, se eu der GMX pela Rcon o INI_Exit nгo й chamado.
Reply
#35

Quote:
Originally Posted by Bruno Pereira
Посмотреть сообщение
se eu nгo usar INI_Save vou usar o que pra salvar, se eu der GMX pela Rcon o INI_Exit nгo й chamado.
Ahhh, esqueci deste problema. Realmente quando GMX й dado nгo й chamado OnGameModeExit. Vou pensar em um jeito de finalizar o ъltimo arquivo.

Mas em relaзгo aos outros arquivos, funcionou agora?

OF:
Testei aqui com INI_Save e tambйm funcionou perfeitamente. Vocк estб usando a ъltima versгo, correto?
Reply
#36

To fazendo uns testes aqui e ja digo xD
@Edit
Entгo sу devo usar INI_Close(); certo?
Reply
#37

Quote:
Originally Posted by [FeK]DraKiNs
Посмотреть сообщение
Ahhh, esqueci deste problema. Realmente quando GMX й dado nгo й chamado OnGameModeExit. Vou pensar em um jeito de finalizar o ъltimo arquivo.

Mas em relaзгo aos outros arquivos, funcionou agora?

OF:
Testei aqui com INI_Save e tambйm funcionou perfeitamente. Vocк estб usando a ъltima versгo, correto?
Nгo й chamado ? Aqui chama sim! Sempre que dou GMX ele print umas Mensagens que deixo no OnGameModeExit!
Reply
#38

Tentem ver como fica o ultimo arquivo apуs um GMX/EXIT ou atй mesmo apуs fechar o samp server normalmente. o ultimo arquivo nunca salvar os dados apуs o sinal de igualdade.
Reply
#39

Quote:
Originally Posted by paulor
Посмотреть сообщение
Nгo й chamado ? Aqui chama sim! Sempre que dou GMX ele print umas Mensagens que deixo no OnGameModeExit!
Entгo vou atualizado. Uma vez nгo era chamado, lembra? Y_less atй fez um "y_gmx" rsss

Entгo nгo tem problemas Nгo precisa usar INI SAVE mesmo. Mas aн Bruno, funcionou?


Paulor, aproveitando o momento:
pawn Код:
main() {
    for(new i; i != 50 ; i++) {
        SaveOrg(i);
    }
    return true;
}

stock SaveOrg(orgID)
{
    static String[128];
    format(String, 20, "Org %d.ini", orgID);
    if(!fexist(String))
    {
        INI_Create(String);
        INI_WriteInt(String, "CofreOrg", orgID);
        INI_WriteInt(String, "SalarioLider", orgID);
        INI_WriteInt(String, "SalarioSub", orgID);
        INI_WriteInt(String, "SalarioC5", orgID);
        INI_WriteInt(String, "SalarioC4", orgID);
        INI_WriteInt(String, "SalarioC3", orgID);
        INI_WriteInt(String, "SalarioC2", orgID);
        INI_WriteInt(String, "SalarioC1", orgID);
        INI_WriteInt(String, "AK-47", orgID);
        INI_WriteInt(String, "MP5", orgID);
        INI_WriteInt(String, "SHOT-GUN", orgID);
        INI_WriteInt(String, "DEAGLE", orgID);
        INI_WriteInt(String, "Colete", orgID);
        INI_WriteInt(String, "Maconha", orgID);
        INI_WriteInt(String, "Materiais", orgID);

        INI_Save();
    }
    return true;
}
Dб algum problema aн?
Reply
#40

Ainda nгo, to usando a ultima versгo sim.
Mas ainda falta algumas opзхes para ver se da certo uahsuahs.
Mas entгo, sу preciso usar INI_Close();, mesmo quando escrevo em arquivos?
Reply


Forum Jump:


Users browsing this thread: 3 Guest(s)