HSA 2.2 - HSA Multi
HSA Multi ist die Erweiterung von HSA 1.0.
Der Unterschied liegt darin, dass in HSA 2.2 die Multiwrite-Fähigkeit dazu gekommen ist.
HSA besitzt nun einen Cache zum Speichern der Datein, der Cache wird automatisch geöffnet und bei neuen Dateien erweitert.
Vorteile von HSA:
- HSA ist sehr einfach zu bedienen!
- HSA ist im single-entry schneller als andere Systeme
- HSA ist im multi-entry schneller als andere Systeme
- HSA schützt deine Daten automatisch
- HSA ist ein System aus der deutschen SA:MP Szene!
Hier ein Geschwindigkeitsvergleich von HSA, HSA Multi zu SII.
Bei diesem Test wurden jeweils 1000 mal ein String, ein Integer und ein Float gespeichert. Bei single write einzeln und bei multi write zusammen.
Zu erkennen ist, dass HSA Multi etwas schneller ist als SII.
Nun zu den Funktionen:
-
getInt:
getInt:"DateiName"("DatensatzName");
Gibt die gespeicherte Zahl "DatensatzName" in der Datei "DateiName" zurück. -
getFloat:
getFloat:"DateiName"("DatensatzName");
Gibt die gespeicherte Kommazahl "DatensatzName" in der Datei "DateiName" zurück. -
getString:
getString:"DateiName"("DatensatzName");
Gibt den gespeicherten Text "DatensatzName" in der Datei "DateiName" zurück. -
setInt:
setInt:"DateiName"("DatensatzName",12356789);
Schreibt die Zahl "12356789" in die Datei "DateiName" unter dem Namen "DatensatzName". -
setFloat:
setFloat:"DateiName"("DatensatzName",1234.56789);
Schreibt die Kommazahl "1234.56789" in die Datei "DateiName" unter dem Namen "DatensatzName". -
setString:
setString:"DateiName"("DatensatzName","Beliebiger Text");
Schreibt den Text "Beliebiger Text" in die Datei "DateiName" unter dem Namen "DatensatzName". -
Save:
Save("Dateiname");
Speichert die Datei ab. Muss ausschließlich benutzt werden, wenn die Datei verändert wurde. -
SaveAll:
SaveAll();
Speichert alle Dateien ab
Die Funktion Save() bzw. SaveAllmuss benutzt werden, um die Datei zu speichern! Allerdings reicht es, sie mit einem Timer jede halbe Stunde oder unter OnGameModeExit.
SaveAll() ersetzt bei der Verwendung die Funktion Save("Datei").
Beispielcodes:
- Einfaches Speichern von Spielern:
new PlayerName[MAX_PLAYER_NAME];
GetPlayerName(playerid,PlayerName,MAX_PLAYER_NAME);setString:PlayerName("Passwort","Ich mag Züge");
setInt:PlayerName("Bargeld",4125);
setFloat:PlayerName("Leben",74.12);printf("Der Spieler %s hat das Passwort %s",PlayerName,getString:PlayerName("Passwort"));
printf("Der Spieler %s hat noch %d$ Bargeld.",PlayerName,getInt:PlayerName("Bargeld"));
printf("Der Spieler %s hat noch %f Leben.",PlayerName,getFloat:PlayerName("Leben"));
Save(PlayerName); - Einfache Fraktionskassen:
setInt:"Fraktionskassen"("Polizei",81921);
setInt:"Fraktionskassen"("Feuerwehr",56121);
setInt:"Fraktionskassen"("Yakuza",1912);
setInt:"Fraktionskassen"("Lufthansa",917251);printf("Die Polizei hat %d$ in der Fraktionskasse",getInt:"Fraktionskassen"("Polizei"));
printf("Die Feuerwehr hat %d$ in der Fraktionskasse",getInt:"Fraktionskassen"("Feuerwehr"));
printf("Die Yakuza hat %d$ in der Fraktionskasse",getInt:"Fraktionskassen"("Yakuza"));
printf("Die Lufthansa hat %d$ in der Fraktionskasse",getInt:"Fraktionskassen"("Lufthansa"));
Save("Fraktionskassen");
Wann war das Speichern von Daten jemals so einfach und schnell?
Links:
Mit automatischer Verschlüsselung:
Ohne automatischer Verschlüsselung:
Changelog:
- 06.04.2012: String Speicherproblem behoben. Danke an Dominik.
- Gegeben falls auftretende Speicherungsfehler in Unterordnern behoben