Also, es gibt ja gaanz viele Speicherungssysteme schon. Allerdings sind die meisten so aufgebaut, dass man permanent irgendwelche Sachen eingeben muss wie z.B. dini:
dini_Int(...); //-> Immer 1ne Funktion für 1ne Variable
Nun, da mir mal wieder extrem langweilig ist, habe ich für euch ein kleines Speicherungssystem geschrieben welches das extrem vereinfacht, sieht z.B. so aus:
//Parameter erklärt:
User::save(pfad[], pw[], args[], var1, var2, var3, var4, ...); //da wo ... ist, kann es unendlich weiter gehen
//pw[] steht für das Passwort des Spielers
//args[] sind die Argumente, unten steht eine genaue Erklärung
//var1 = Die 1. Variable die man speichern will
//Anwendungsbeispiel:
new pfad[MAX_PLAYER_NAME+4],name[24];
GetPlayerName(playerid,name,24);
format(pfad,MAX_PLAYER_NAME+4,"%s.txt",name);
User::save(pfad, "123", "ddfs", int1, int2, float1, string);
//pfad = Wo die Datei gespeichert werden soll
//"123" = Das Passwort des Spielers
//"ddfs" = Sind die Argumente
//int1 ist die erste Variable die gespeichert wird.
und zum laden ist es auch ganz einfach:
//Parameter:
User::load(pfad[], pw[], args[], var1, var2, var3, var4, ...); //da wo ... ist, kann es unendlich weiter gehen
//pfad[] = Wo die Datei gespeichert werden soll
//pw[] steht für das Passwort des Spielers
//args[] sind die Argumente, unten steht eine genaue Erklärung
//var1 = Die 1. Variable die wieder geladen wird
//Anwendungsbeispiel:
new int1,int2,Float:float1,string[32],pfad[MAX_PLAYER_NAME+4],name[24];
GetPlayerName(playerid,name,24);
format(pfad,MAX_PLAYER_NAME+4,"%s.txt",name);
User::load(pfad, "123", "ddfs", int1, int2, float1, string);
Besonders wichtig ist, dass das Passwort immer übereinstimmt, sonst gibt die "Load" Funktion eine 0 zurück, das ist ein eingebautes Passwort Abfrage System
Args (Argumente):
Die Argumente kennt ihr aus dem sscanf-Code
Hier nochmal eine kleine Liste:
Wichtig:
Ich habe eine statische Größe angegeben, die Datei kann momentan nur 256 Bytes groß sein. Falls ihr das erhöhen müsst (wenn ihr z.B. viele Texte abspeichern müsst), dann macht ihr das so:
#define MAX_BUFFER 512 //Jetzt könnte die Datei 512 Bytes groß sein
#include <k_save>
Speedtest + Support:
Falls noch Fragen bestehen, könnt ihr diese gerne stellen, einen Speedtest habe ich auch gemacht, also für 1000 Saves, dauert das (mit diesen 4 Variablen * 1000 halt) = 150ms
und das Laden 80ms...
Also es ist verdammt schnell
Download:
Source-Code: Pastebin
Direkter-Download: Mediafire
Würde mich über ein kleines Feedback freuen
mfg.
//Edit:
Nochmal alles etwas ausführlicher erklärt und etwas hinzugefügt.
Nun muss man keine playerid angeben...