Hallo Liebe Community ,
Ich möchte euch hier einmal meine neue Lieblings Include vorstellen , sie heißt DJson , ich hab sie nun zum ersten mal getestet,
und ich war äußerst begeistert, sie hat ein Array ähnliches Pfad System , sie Speichert und lädt ungefähr so :
djSetInt("stats.json","server/3saved3",55);
Nun sieht es so aus in der Datei ...
So nochmal unterteilt ( Bitte nicht wundern ich hab es schon mal mit anderen Dingen getestet )
{ // < Hauptteil
"players":{"connected":1,"spawned":1}, // Hier war schon mal ein test :>
"server":{"3saved3":55,"saved":2,"started":6} // dies hab ich gespeichert , so nun unten die Erklärung...
} // Hauptblock beendet
"server" ist das was ich als Hauptpfad nutze um meine Server Daten zu speichern , also sagen wir mal Haupt Ordner nur so als Begriffserklärung
{ der Block Startet
"3saved3" ist mein Item wo ich eine Beispiel Zahl speichere , natürlich gehen auch Namen etc aber dazu später
{ der Block Startet für 3saved3
:55 ist nun unser Wert
Achtung wenn du nun mehrere Items Speicherst in diesem Context...
"server/3saved3/deinitem"
Wird der alte Wert für 3saved3 gelöscht also gibt es die 55 nicht mehr
aber du kannst weitere Items in 3saved3 speichern, also Praktisch gesehen eine endlose Speicherungs Möglichkeit,
man kann sich dies vorstellen wie in einem Ordner Prinzip
Zu den Funktionen ...
djCreateFile(file[]) // Datei erstellen
djFloat("datei.endung","array1/array2/..."); // lädt einen Rationalen Wert also Koordinaten bzw. Kommazahlen
djInt("datei.endung","array1/array2/..."); // lädt einen Integer/Zahlen Wert
dj("datei.endung","array1/array2/..."); // Lädt einen String/ Textwert
djSetFloat("datei.endung","array1/array2/...",KoordinatenWert); // Speichert einen Rationalen Wert bzw. einfach Float ^^
djSetInt("datei.endung","array1/array2/...",Zahlenwert); // Speichert einen Zahlen Wert
djSet("datei.endung","array1/array2/...",Name); // Speichert einen String/Textwert
djUnset("datei.endung","array1/array2/..."); // Löscht einen Eintrag
djIsSet("datei.endung","array1/array2/..."); // Schaut nach ob der Eintrag vorhanden ist und gibt je nach dem True/False zurück
djCount("datei.endung","array1/array2/..."); // Schaut wie viel Einträge im ausgewählten Item sind
djStyled(bool:styled); - Ordnet eure Struktur so das er eingerückt und Ordentlich dargestellt wird
So wie gesagt , stellt es euch vor wie ein Ordner Prinzip ihr könnt soviel Speichern in einem Eintrag wie ihr wollt , wenn
ihr im Eintrag selber jedoch wo noch unter Items sind einen Wert Speichert werden die anderen Werte gelöscht ,
bzw. die anderen Werte und Items in diesem Eintrag werden gelöscht und nur noch euer festgelegter Wert für diesen Eintrag
existiert! Also immer aufpassen
Hier mal ein Beispiel in Form eines Kommandos :
if (strcmp("/savepos", cmdtext, true) == 0)
{
new Float:pX,
Float:pY,
Float:pZ,
Float:pA;
GetPlayerPos(playerid,pX,pY,pZ);
GetPlayerFacingAngle(playerid,pA);
new playerform[40],playername[MAX_PLAYER_NAME];
GetPlayerName(playerid,playername,sizeof playername);
format(playerform,sizeof playerform,"spielerpos.%s.ini",playername);
djSetFloat("spielerpos.ini","spieler/position/x",pX);
djSetFloat("spielerpos.ini","spieler/position/y",pY);
djSetFloat("spielerpos.ini","spieler/position/z",pZ);
djSetFloat("spielerpos.ini","spieler/position/a",pA);
return 1;
}
Struktur :
Wenn ihr diese Include nutzt muss dies in die entsprechenden Klassen , die Namen sagen ja alles :
djson_GameModeInit();
djson_GameModeExit();
Wie ihr seht ist dieses System sehr Effektiv und erspart einem eine Menge Ressourcen & Arbeit.
( Ich werde das Tutorial bei bedarf noch etwas verbessern )
INFO: DJson 1.6 (c) by Draco Blue - http://dracoblue.net/download/djson-16/51/
Mfg. BlackFoX_UD_