DINI - Grundfunktionen

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Hallo liebe Leser,
    In diesem Tutorial möchte ich euch kurz und übersichtlich die funktionen von DINI erklären will.



    Vorwort
    Was ist DINI eigentlich?
    DINI ist ein Include-System, das es ermöglicht Daten in Dateien zu speichern.
    Das kann zum Beispiel für ein Login & Register System, oder eine Fraktionskasse genutzt werden.
    Entwickelt wurde es von DracoBlue (http://www.dracoblue.net )
    Hinweis: Solltet ihr keine Ahnung von PAWN haben lasst besser erstmal die Finger von diesem Tutorial!



    Installation
    Die Installation folgt ganz einfach via Include.
    Sprich: Ihr benötigt die Include und verknüpft diese dann mit eurem GameMode.
    Dafür muss die Include in eurem PAWNO unterordner "Includes" liegen.
    Anschließend müsst ihr in den Head-Berreich eures Scriptes bzw. irgendwo ausserhalb eines Callbacks oder eines Publics bzw. stocks die Include via #include verknüpfen.
    Downloaden könnt ihr die Include Hier



    Anwendung
    Nach dem installieren haben wir nun erstmal einige funktionen zur Verfügung, die wir nutzen können um Inhalt zu Updaten, Dateien zu erstellen oder sonstiges. Folgende Funktionen stehen zur Verfügung:
    dini_Exists(filename[])
    dini_Remove(filename[])
    dini_Create(filename[])
    dini_Set(filename[],key[],value[])
    dini_IntSet(filename[],key[],value)
    dini_Int(filename[],key[])
    dini_FloatSet(filename[],key[],Float:value)
    dini_Float(filename[],key[])
    dini_Bool(filename[],key[])
    dini_BoolSet(filename[],key[],value)
    dini_Unset(filename[],key[])
    dini_Get(filename[],key[])
    dini_Isset(filename[],key[])
    Davon werden allerdings nur wenige verwendet.
    Auch wenn man sich davon nun erstmal erschlagen fühlt, mit der Zeit gewinnt man an übersicht.


    So, nun können wir eigentlich schon loslegen.
    Fangen wir ambesten einfach mal mit einem Script an, das beim Disconnect den Standort des Spielers speichert.
    new name[MAX_PLAYER_NAME],Float:pos_x,Float:pos_y,Float:pos_z,string[25];
    GetPlayerName(playerid,name,sizeof(name));//---------[Wir finden den Namen des Spielers herraus]
    GetPlayerPos(playerid,pos_x,pos_y,pos_z);//---------[Wir finden die Position des Spielers herraus]
    format(string,sizeof(string),"%s.ini",name);//---------[Wir erstellen einen String mit dem Namen des Spielers]
    dini_Create(string);//---------[Wir erstellen die Datei, falls diese nicht existiert]
    dini_FloatSet(string,"Alt-X",pos_x);//---------[Wir speichern die X-Koordinate]
    dini_FloatSet(string,"Alt-Y",pos_y);//---------[Wir speichern die Y-Koordinate]
    dini_FloatSet(string,"Alt-Z",pos_z);//---------[Wir speichern die Z-Koordinate]

    Natürlich müssen diese Daten nun auch noch bei "OnPlayerConnect" geladen werden.
    Dazu hier ein kleines Beispielscript:
    new name[MAX_PLAYER_NAME],Float:pos_x,Float:pos_y,Float:pos_z,string[25];
    GetPlayerName(playerid,name,sizeof(name));//---------[Wir finden den Namen des Spielers herraus]
    GetPlayerPos(playerid,pos_x,pos_y,pos_z);//---------[Wir finden die Position des Spielers herraus]
    format(string,sizeof(string),"%s.ini",name);//---------[Wir erstellen einen String mit dem Namen des Spielers]
    if(dini_Exists(string))
    {
    pos_x = dini_Float(string,"Alt-X");//---------[Wir übertragen die gespeicherte Koordinate in eine Variable]
    pos_y = dini_Float(string,"Alt-Y");//---------[Wir übertragen die gespeicherte Koordinate in eine Variable]
    pos_z = dini_Float(string,"Alt-Z");//---------[Wir übertragen die gespeicherte Koordinate in eine Variable]
    SetPlayerPos(playerid,pos_x,pos_y,pos_z);//---------[Wir setzen die Position des Spielers]
    }
    Und Fertig. Schon haben wir ein Script, welches es uns ermöglicht die letzte Position des Spielers zu speichern und anschließend wieder zu laden.
    Ich werde das Tutorial bei Nachfrage ggf. erweitern und noch einige Funktionen mehr erklären.



    MfG Firer
    //EDIT: Rechtschreibfehler verbessert
    //EDIT: Linkfehler bei DracoBlue behoben

    5 Mal editiert, zuletzt von Firerfan ()

  • er gibt bei mir nur einen Fehler aus das er die datei nicht findet mein ordner aufbau schaut so aus:


    filterscripts
    -dini.dtest
    gamemodes
    -mod.pwn
    pawno
    -include
    --Dini


    der fehler kommt immer wen ich den mod Compilieren möchte

  • Poste doch einfach mal den Error, dann können wir dir auch helfen ;)

  • Leider der falsche Thread.
    Hier gehts um die Grundfunktionen von DINI, einem Plugin von DracoBlue.