Beiträge von Kaliber

    Wie schnell ist es schneller als dini?


    Habe es gerade mal getestet, also dini brauch so 400ms für die Daten, die ich oben in 150ms speichern lasse, das hört sich fast gleich schnell an, aber bei meinem System, würde es bei 20 Variablen immernoch nur ca 150ms dauern und bei dini > 1000 ^^


    mfg. :thumbup:

    Dadurch ist man gezwungen die ganze Datei zu laden, wenn man z. B. den Ban-Zustand wissen will, oder nicht?


    Nein, das hinten, sind optionale Parameter, du hängst dir einfach die Variablen die du mal einzelst abfragen willst nach vorne und dann, kannst du auch nur die Abfragen und die anderen weglassen ;)


    zur ( HSA, y_ini )?


    Nein, habe ich nicht, aber du kannst ja mal nachforschen, die haben auch bestimmt ihre Speedtests gemacht ;)


    //Edit: Rechtschreibung


    mfg. :thumbup:

    Mal eine frage Kaliber: würde es zu laggs kommen?
    Weil die Methode würde ich ebenfalls anwenden.


    Nein...wenn du es richtig machst, sicher nicht ^^


    Aber es würde doch ausreichen, wenn ich nen Timer erstelle


    Ja, natürlich das würde ausreichen :)


    Wenn ich dann nen Textdraw erstelle und den immer wieder erneut erstellen lasse, müsste der sich doch automatisch füllen. Also z.b. nen Schwarzen Bildschirm.


    Ja, das ist auch richtig, wenn du das richtig machst :)


    mfg. :rolleyes:

    Ohne Timer wirst du das nicht hinbekommen bzw ohne etwas Timerartiges zu nutzen ;)


    Einfach die Transparenz von dem TextDraw in langsamen schritten ändern, sind die letzen beiden "Hexadezimalzahlen" bei so einem Code: 0xFF4800FF


    FF = 15 höchste Zahl = höchste Sichtbarkeit
    00 = 0 niedrigste Zahl = niedrigste Sichtbarkeit


    Das System geht so:


    Code
    0|1|2|3|4|5|6|7|8|9|A|B|C|D|F


    mfg. :thumbup:


    Nun, ganz einfach, sagen wir du hast eine textBox1, dann sähe das so aus:


    textBox1->Text;


    Da würde stehen, was in dem Feld steht ;)


    Um das zu überprüfen wenn er es eingibt, gäbe es noch eine extra Klasse, die heißt:


    private: void keypressed( Object^ /*o*/, KeyPressEventArgs^ e ) {
    if(e->KeyChar == (char)13) //Hier hätte er z.B. ENTER gedrückt
    }


    mfg. :thumbup:

    Wie macht man das mit den Orten? Würde mich interessieren.


    Es gibt dafür extra einen Array, wo Positionen (von jeder Area) und dessen Name steht, irgendjemand im englischen Forum hatte da Langeweile und hat das gemacht.


    Schaden: Bekommst du durch http://wiki.sa-mp.com/wiki/GetVehicleHealth_DE
    Geschwindigkeit + Fahrzeugname + Tank: Hatte ich mal ein Include geschrieben (kannst es ja nutzen wenn du willst) [ INCLUDE ] Simple Tacho


    und das packst du einfach in ein TextDraw und fertig ;)


    mfg. :thumbup:

    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:


    Code
    i,d = Integer (Zahlen)s = String (Zeichenkette)f = Float (Kommastellenzahl)


    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 :D


    Download:
    Source-Code: Pastebin
    Direkter-Download: Mediafire


    Würde mich über ein kleines Feedback freuen :)


    mfg. :thumbup:


    //Edit:
    Nochmal alles etwas ausführlicher erklärt und etwas hinzugefügt.
    Nun muss man keine playerid angeben...