Guten Tag, Comunity,
hiermit möchte ich eine kleine Sammlung von Skripten Präsentieren die zusammen eine Art Archivsystem bilden.
Sie ermöglichen es strings anhand von "Variablen" in eine Datei zu speichern und später jederzeit auszulesen. Vergleichbar mit ini-Dateien.
Außerdem kann man auch Dateien hinzufügen sowie das ganze verschlüsseln.
Das tolle ist dass das ganze allein mit der kleinen (42 kb), weit verbreiteten Multiplayer DLL "39Dll" auskommt und dank dessen Buffer und File-Funktionen äußerst schnell Funktioniert.
Im Beispiel auf meinen etwas in die Tage gekommenen Gaming PC (ohne SSD) kann das System ~1100 mal pro Sekunde 4 Variablen + 1 kleines Bild auszulesen - inklusive Verschlüsselung! Ohne Bild ~1500 mal.
Schreiben funktioniert nur wenig langsamer.
Zur Veranschaulichung hier einfach mal ein Anwendungsbeispiel:
Alles anzeigen
P.s. ja, mir ist bekannt dass es mit Hobbel's DataFile DLL bereits eine DLL mit ähnlicher Geschwindigkeit und etwas mehr Vielseitigkeit extra für diesen Zweck gibt... allerdings macht diese merkwürdige Faxen auf meinem PC weswegen ich diese Skripte geschrieben habe.
Hoffe jemand hat hierfür Verwendung!
hiermit möchte ich eine kleine Sammlung von Skripten Präsentieren die zusammen eine Art Archivsystem bilden.
Sie ermöglichen es strings anhand von "Variablen" in eine Datei zu speichern und später jederzeit auszulesen. Vergleichbar mit ini-Dateien.
Außerdem kann man auch Dateien hinzufügen sowie das ganze verschlüsseln.
Das tolle ist dass das ganze allein mit der kleinen (42 kb), weit verbreiteten Multiplayer DLL "39Dll" auskommt und dank dessen Buffer und File-Funktionen äußerst schnell Funktioniert.
Im Beispiel auf meinen etwas in die Tage gekommenen Gaming PC (ohne SSD) kann das System ~1100 mal pro Sekunde 4 Variablen + 1 kleines Bild auszulesen - inklusive Verschlüsselung! Ohne Bild ~1500 mal.
Schreiben funktioniert nur wenig langsamer.
Zur Veranschaulichung hier einfach mal ein Anwendungsbeispiel:
GML-Quellcode
- varstore_init("39dll.dll",0); // Initialisiert die 39Dll. Das zweite Argument bestimmt ob auch die Netzwerk-Funktionen geladen werden sollen.
- //Diese Funktion solte ins Game_start event.
- varstore_create("thefirstvarstore.dit"); // erstellt einen neuen "varstore". D.h. solch ein Archiv.
- varstore_write_string("varA", "Hallo, String hier!"); // schreibt den String 'Hallo, String hier!' unter dem Namen "varA" in das Archiv
- varstore_write_file("picture1","testsprite.png"); // schreibt die Datei "testsprite.png" in das Archiv unter dem Namen picture1
- varstore_write_string("variable2","Bye bye!"); // Schreib "Bye Bye" hinein
- varstore_save("mypassword"); // speichert die Datei. Das Passwort verschlüsselt die Daten, es kann aber auch einfach weggelassen werden.
- ///////////////////////////////////////
- varstore_open("thefirstvarstore.dit","mypassword"); // öffnet die Datei. Das Passwort ist erneut optional
- str1 = varstore_read_string("variable2"); // liest "Bye Bye" aus.
- varstore_read_file("picture1","testsprite_copy.png"); // schreibt die Datei "testsprite.png" aus dem Archiv in die Datei testsprite_copy.png
- str2 = varstore_read_string("varA"); // liest "Hallo, String hier!" aus.
- /* Reihenfolge des Auslesens ist egal! */
- varstore_close(); // schließt die Datei
- varstore_free(); // löscht die 39Dll sowie die benötigten Buffer aus dem Speicher. Am besten ins Game_end event.
P.s. ja, mir ist bekannt dass es mit Hobbel's DataFile DLL bereits eine DLL mit ähnlicher Geschwindigkeit und etwas mehr Vielseitigkeit extra für diesen Zweck gibt... allerdings macht diese merkwürdige Faxen auf meinem PC weswegen ich diese Skripte geschrieben habe.
Hoffe jemand hat hierfür Verwendung!
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von DragonGamer ()