Beiträge von |-|auke

    Moin!
    Ich habe eine neue SAMP Livemap erstellt.
    Sie hat bisher noch relativ wenige Funktionen, allerdings werde ich sie weiter ausbauen.
    Ich habe zudem noch geplant wahrscheinlich ein größeres UCP zu integrieren.


    Ich benötige nun 2-3 Server, welche diese Map für mich in der Alphaversion testen.
    Nach der Alphaversion bekommen diese Teilnehmer dann die Möglichkeit die Betaversion auch zu testen.


    Am Ende der Entwicklung wird es möglich sein, eine Lizenz für die Livemap und das UCP zu erwerben. Die Betatester bekommen diese kostenlos!


    Bedingung an alle Test-teilnehmer ist, dass die Livemap auf meinen Server zugreifen können muss.
    Zudem soll in diesen Thread geschrieben werden, warum du Tester sein möchtest. Desweiteren wären weitere Qualifikationen interessant.


    Screens:



    Edit: Gibt es überhaupt noch Interesse an SAMP Livemaps?
    Wenn aus diesem Thread herauskommt, dass es kein Interesse daran gibt, werde ich das Projekt wohl nicht beenden.

    Nein, der weitere Sinn dieser Include ist, dass man Files nahezu gleich wie Variablen benutzen können soll.
    Dateien werden automatisch angelegt, sofern sie nicht existieren. Ebenso werden Schlüssel in der Datei neu angelegt, wenn sie beim Lesen nicht gefunden werden.
    Das macht diese Include so einfach und schnell.


    Link läuft wieder.

    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

    Goldkiller: Da magst du Recht haben...
    @BlackAce: Und wenn es so sein sollte, dass diese Systeme die gleiche Geschwindigkeit hätten, wäre das einfachere trotzdem HSA...
    Ich habe nun aber auch keine Lust mehr euch meine include zu erklären. Entweder man liest alles - und versteht es - oder eben nicht.


    Für alle, die sich selbst ein Urteil bilden wollen, habe ich hier ein plugin, welches die Zeit genau misst, sodass man diese auch ernst nehmen kann.
    Benchmark.dll
    Funktionen sind folgende:
    native StartBench();
    native StopBench();