Jump to content

návod Pracujeme s dini


Mattsy

Recommended Posts

  • 1 month later...
  • 1 month later...

Máš to asi zle...

dini_FloatSet(cesta, "X", X);
dini_FloatSet(cesta, "Y", Z);
dini_FloatSet(cesta, "Y", Z);

nemá to byť:

dini_FloatSet(cesta, "X", X);
dini_FloatSet(cesta, "Y", Y);
dini_FloatSet(cesta, "Z", Z);

takto??

Link to comment
Share on other sites

  • 1 year later...

Prosim help ....

C:\Users\eLko\Desktop\VIP.pwn(71) : error 047: array sizes do not match, or destination array is too small

 

A toto je riadok 71:

Meno(playerid) = dini_Get(vipload, "Meno");// načítame hráčove meno zo súboru

Link to comment
Share on other sites

  • 1 month later...
  • Administrátor

Hele jen tak pro info koukal jsi se do includu dudb ? prijde mi ze ne protoze kdyby ano tak by jsi vedel ze dudb je dini jen s jednodusim pouzitim

Link to comment
Share on other sites

  • 1 year later...

Veľa ľudí používa pre registráciu alebo ukladanie vecí dudb. Script je však zložitý a záťažový na server. A ak chete viec ukladaní musíte si to prepísať v include čo je veľká nevýhoda. DracoBlue nám však vytvoril script dini, ktorý je jednduchší a menej záťažový.

Preto si v tomto návode dini viac priblížime a pozrieme sa na jeho funkcie.

 

Najprv si vymenujeme zákaldné funckie a potom ich použitie v scripte.

============================================================

Dini stiahnete tu:

 

 

http://bugsy.707.cz/Dini.inc

Základné funkcie:

 

dini_Exists(file[]); // Používa sa pri kontrole či súbor existuje dini_Create(file[]); // Používa sa na vytvorenie súboru dini_Remove(file[]); // Používa sa na vymazanie súboru

Funkcie pre uloženie:

 

dini_Set(file[], oznacenie[], hodnota[]); // Slúži nám na ukladanie stringu dini_IntSet(file[], oznacenie[],hodnota); // Slúži na ukladanie integeru dini_FloatSet(file[], oznacenie[],Float:hodnota); // Slúži na ukladanie Floatu teda desatinných čísel dini_BoolSet(file[], oznacenie[],hodnota); //Slúži na ukladanie booleanu( true, false )

Funkcie pre načítavanie:

 

dini_Get(file[], oznacenie[]); // Slúži na načítanie stringu dinit_Int(file[], oznacenie[]); // Slúži na načítanie integeru dini_Float(file[], oznacenie[]); // Slúži na načítanie floatu dini_Bool(file[], oznacenie[]); // Slúži na načítanie boolu

============================================================

 

Ukladanie

 

Teraz si ukážeme názorné ukladanie Stringu, integeru, floatu a boolu v jednom.

 

Ako prvé si určíme cestu k súboru:

 

new cesta[50]; format(cesta, sizeof(cesta), "/Users/%.sav", Meno(playerid));// Budeme to ukladať do priečinku Users v Scriptfiles, prípomonu si možte zmeniť

Teraz zistíme či hráčov účet už existuje:

 

if(!dini_Exists(cesta))// ak hráčov súbor neexistuje( preto tam je ! ) { dini_Create(cesta);// tak ho vytvoríme } else// ale ak existuje { // Tu pridáme ukladanie }

Samotné ukladanie:

 

new Float:X, Float:Y, Float:Z;// nadefinujeme si premeny do ktorých budeme ukladať hráčovu pozíciu ktorú neskor uložíme GetPlayerPos(playerid, X, Y, Z);// zistíme si hráčovu pozíciu a následne ju zapíšeme do premien dini_Set(cesta, "Meno", Meno(playerid)); // Do súbora sa vytvorí položka "Meno=" a za "=" sa nám uloží hráčove meno ( na takomto princípe sa ukaldá heslo v registrácii ) dini_IntSet(cesta, "Povolanie", povolanie[playerid]); // Ako druhá položka z vrchu sa nám vytvorí "Povolanie", kde sa nám uloží hráčove povolanie podľa ID povolania dini_FloatSet(cesta, "X", X);// Zapíšeme hráčovu súradnicu X dini_FloatSet(cesta, "Y", Z);// Zapíšeme hráčovu súradnicu Y dini_FloatSet(cesta, "Y", Z);// Zapíšeme hráčovu súradnicu Z dini_BoolSet(cesta, "Vodicak", vodicak[playerid]);// Uložíme si hráčov vodičák ( bool je na preukazy lepšie )

Takže sme sa dostali k tomuto:

 

new cesta[50]; format(cesta, sizeof(cesta), "/Users/%s.sav", Meno(playerid)); if(!dini_Exists(cesta)) { dini_Create(cesta); } else { new Float:X, Float:Y, Float:Z; GetPlayerPos(playerid, X, Y, Z); dini_Set(cesta, "Meno", Meno(playerid)); dini_IntSet(cesta, "Povolanie", povolanie[playerid]); dini_FloatSet(cesta, "X", X); dini_FloatSet(cesta, "Y", Z); dini_FloatSet(cesta, "Y", Z); dini_BoolSet(cesta, "Vodicak", vodicak[playerid]); }

============================================================

 

Načítavanie

 

Tu si ukážeme ako načítať hráčove štatistiky ktorých ukladanie sme si ukázali vyššie.

 

Znova si určíme cestu k súboru:

 

new cesta[50], Float:X, Float:Y, Float:Z;// definícia stringu a floatov do ktorých uložíme pozíciu format(cesta, sizeof(cesta), "/Uses/%s.sav", Meno(playerid));// cesta k hráčovemu súboru ( musí byť pri každom načítavaní/ukladaní )

Samotné načítavanie:

 

Meno(playerid) = dini_Get(cesta, "Meno");// načítame hráčove meno zo súboru X = dini_Float(cesta, "X");// do premeny zapíšeme súradnicu X ktorú sme si uložili do súboru Y = dini_Float(cesta, "Y");// do premeny zapíšeme súradnicu Y ktorú sme si uložili do súboru Z = dini_Float(cesta, "Z");// do premeny zapíšeme súradnicu Z ktorú sme si uložili do súboru SetPlayerPos(playerid, X, Y, Z);// nastavíme hráčovu pozíciu ( toto by išlo aj inak, ale napísal som vám jednoduchší sposob ) vodicak[playerid] = dini_Bool(cesta, "Vodicak");// Zo súboru načítame hráčovi vodičák

Celkovo to bude vyzerať takto:

 

new cesta[50]; format(cesta, sizeof(cesta), "/Users/%s.sav", Meno(playerid)); Meno(playerid) = dini_Get(cesta, "Meno"); X = dini_Float(cesta, "X"); Y = dini_Float(cesta, "Y"); Z = dini_Float(cesta, "Z"); SetPlayerPos(playerid, X, Y, Z); vodicak[playerid] = dini_Bool(cesta, "Vodicak");

Tak to by bolo asi všetko, písal som to z hlavy a dúfam že vám to pomože a že odteraz už budete dini chápať :)

 

V prípade nejakých nejasností píšte do topicu, nie do SZ !

Som stoho vedla jak ta jedla -_- , ja to nikdy nebudem vedieť helpnite my, ja som stoho komplet mimo :d

Link to comment
Share on other sites

  • 5 months later...
  • 5 months later...

Přesně tak, nepochopitelné ale stále a stále se setkávám s lidmi co začínají v dnešní době s DINI.. 

 

Panebože, proč? Dneska jsou už lepší možností npř mysql, y_ini

Link to comment
Share on other sites

  • 10 months later...

Ahoj, měl bych otázku, jak sis vydefinoval v tom formátu: format(cesta, sizeof(cesta), "/Users/%.sav", Meno(playerid)); na konci to Meno(playerid))? Hazí mi to errory ať zkusím: new Meno[MAX_PLAYERS] nebo Meno[MAX_PLAYER_NAME]... Předem díky...

Link to comment
Share on other sites

Ahoj, měl bych otázku, jak sis vydefinoval v tom formátu: format(cesta, sizeof(cesta), "/Users/%.sav", Meno(playerid)); na konci to Meno(playerid))? Hazí mi to errory ať zkusím: new Meno[MAX_PLAYERS] nebo Meno[MAX_PLAYER_NAME]... Předem díky...

stock Meno(playerid)

{

new name[255];

GetPlayerName(playerid, name, 255);

return name;

}

Link to comment
Share on other sites

  • 2 years later...

cesta[50];

format(cesta, sizeof(cesta), "/Users/%s.sav", Meno(playerid));

if(!dini_Exists(cesta))

{

dini_Create(cesta);

}

else

{

new Float:X, Float:Y, Float:Z;

GetPlayerPos(playerid, X, Y, Z);

dini_Set(cesta, "Meno", Meno(playerid));

dini_IntSet(cesta, "Povolanie", povolanie[playerid]);

dini_FloatSet(cesta, "X", X);

dini_FloatSet(cesta, "Y", Z);

dini_FloatSet(cesta, "Y", Z);

 

 

Chybyčka se vloudila X Y Y a pak X Z Z ale ten kdo se v tom orientuje by si to opravil.

 

Super tut hodne jsem se naucil.

Edited by Guest
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...