Dini erstellt keine Datei! Hilfe.

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
  • Hey liebe Community,
    habe folgendes Problem, habe nun mein Login Register System mit Dini geschrieben doch dann taucht immer wieder erneut der Fehler auf das keine Account-Datei erstellt wird beim Registrieren.
    Hier mal die Codes:


    enum SpielerDate
    {
    Name[MAX_PLAYER_NAME],
    Level,
    Geld,
    Kills,
    Deaths,
    Team,
    Banned
    }
    new pDaten[MAX_PLAYERS][SpielerDate];


    Oben im Script .


    public OnPlayerRequestClass(playerid, classid)
    {
    new pfad[64];
    format(pfad,64,"/Accounts/%s.txt",GetName(playerid));
    if(dini_Exists(pfad))
    {
    ShowPlayerDialog(playerid,2,DIALOG_STYLE_PASSWORD,"Register","Willkommen,\nBitte gebe unten dein Passwort ein um deinen Account laden zu können\nMit freundlichen Grueßen\nLukas","Login","Abbrechen");
    }
    else
    {
    ShowPlayerDialog(playerid,2,DIALOG_STYLE_PASSWORD,"Register","Willkommen,\nUm hier spielen zu können benötigst du einen Account, dafür bitten wir dich unten ein Passwort anzugeben das du nicht vergessen solltest.\nMit freundlichen Grueßen\nLukas","Register","Abbrechen");
    }
    return 1;
    }


    public OnPlayerDisconnect(playerid, reason)
    {
    SpielerSpeichern(playerid);
    return 1;
    }


    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
    if(dialogid == Register)
    {
    if(response == 1)
    {
    if(!strlen(inputtext))
    {
    SendClientMessage(playerid,0xFF1E00FF,"Du musst ein Passwort eingeben!");
    }
    else
    {
    Registrierung(playerid,inputtext);
    }
    }
    if(response == 0)
    {
    Kick(playerid);
    }
    }
    if(dialogid == Login)
    {
    if(response == 1)
    {
    if(!strlen(inputtext))
    {
    SendClientMessage(playerid,0xFF1E00FF,"Du musst ein Passwort eingeben!");
    }
    else
    {
    Logins(playerid,inputtext);
    }
    }
    if(response == 0)
    {
    Kick(playerid);
    }
    }
    return 1;
    }


    Hier die Stocks


    stock SpielerLaden(playerid)
    {
    new pfad[64];
    format(pfad,64,"/Accounts/%s.txt",GetName(playerid));
    SetPlayerScore(playerid,dini_Int(pfad,"Level"));
    GivePlayerMoney(playerid,dini_Int(pfad,"Geld"));

    pDaten[playerid][Level] = dini_Int(pfad,"Level");
    pDaten[playerid][Geld] = dini_Int(pfad,"Geld");
    pDaten[playerid][Kills] = dini_Int(pfad,"Kills");
    pDaten[playerid][Deaths] = dini_Int(pfad,"Deaths");
    pDaten[playerid][Team] = dini_Int(pfad,"Team");
    pDaten[playerid][Banned] = dini_Int(pfad,"Banned");


    format(pDaten[playerid][Name],25,dini_Get(pfad,"Name"));
    return 1;
    }
    stock Logins(playerid,key[])
    {
    new string2[128]; //Benötigen einen String
    new pfad[64];
    format(pfad,64,"/Accounts/%s.txt",GetName(playerid));
    if(!strcmp(key,dini_Get(pfad,"Passwort"),false))
    {
    SpielerLaden(playerid);
    SendClientMessage(playerid,0xFFB400FF,"Du hast dich erfolgreich eingeloggt."); //Nachricht wird gesendet
    format(string2,sizeof(string2),"[Join] %s hat den Server betreten",GetName(playerid)); //Join-String wird formatiert
    SendClientMessageToAll(0xFFB400FF,string2); //Join-Message wird an alle gesendet
    }
    return 1;
    }
    stock Registrierung(playerid,key[])
    {
    new pfad[64];
    format(pfad,64,"/Accounts/%s.txt",GetName(playerid));
    dini_Create(pfad);
    dini_Set(pfad,"Passwort",key);
    dini_Set(pfad,"Name",GetName(playerid));
    dini_IntSet(pfad,"Level",1);
    dini_IntSet(pfad,"Kills",0);
    dini_IntSet(pfad,"Deaths",0);
    dini_IntSet(pfad,"Team",0);
    dini_IntSet(pfad,"Banned",0);
    dini_IntSet(pfad,"Geld",20000);
    return 1;
    }



    stock SpielerSpeichern(playerid)
    {

    new pfad[64];
    format(pfad,64,"/Accounts/%s.txt",GetName(playerid));
    dini_IntSet(pfad,"Level",GetPlayerScore(playerid));
    dini_IntSet(pfad,"Team",pDaten[playerid][Team]);
    dini_IntSet(pfad,"Geld",GetPlayerMoney(playerid));
    dini_IntSet(pfad,"Kills",pDaten[playerid][Kills]);
    dini_IntSet(pfad,"Deaths",pDaten[playerid][Deaths]);
    dini_IntSet(pfad,"Banned",pDaten[playerid][Banned]);
    return 1;
    }


    Ordner 'Accounts' ist vorhanden!


    Wenn ich connecte registriere ich mich und gehe Offline und siehe da , keine Datei ._.


    Bitte um hilfe :)

  • Poste mal bitte die Funktion GetName.
    Unteranderem ist wichtig ob denn überhaupt eine Datei in den Ordner gelegt wird auch wenn Sie nur %s.txt heist.


    Dann würde ich dich bitten dass du mal noch in die Registrierung normale prints einbaust um zu sehen ob der überhaupt bis da hin kommt.


    mit freundlichem Gruß
    Timo Schneider

  • stock GetName(playerid)
    {
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    return name;
    }


    stock Registrierung(playerid,key[])
    {
    new pfad[64];
    format(pfad,64,"/Accounts/%s.txt",GetName(playerid));
    print("Ein Account wird erstellt...");
    dini_Create(pfad);

    dini_Set(pfad,"Passwort",key);
    dini_Set(pfad,"Name",GetName(playerid));
    dini_IntSet(pfad,"Level",1);
    dini_IntSet(pfad,"Kills",0);
    dini_IntSet(pfad,"Deaths",0);
    dini_IntSet(pfad,"Team",0);
    dini_IntSet(pfad,"Banned",0);
    dini_IntSet(pfad,"Geld",20000);
    new string[64];
    format(string,64,"%s hat sich einen Account erstellt",GetName(playerid));
    print(string);
    return 1;
    }


    Print eingebaut