Spiel Hängt sich auf

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 Leute ich habe folgendes Problem.


    Ich versuche gerade das das Account erstellen/Laden/Speichern ohne Probleme klappt.
    Beim Registrieren klappt alles. Er setzt das Geld,ADM Level,Score so wie es soll und man spawnt
    Wenn Man sich dann Ausloggt und Einloggen will hängt sich nach der Passwort eingabe das Spiel auf. Hat da jmd einen Plan.


    Hab jetzt folgendes:


    enum PlayerInformationen
    {
    Adminlevel,
    Geld,
    Level,
    pLogin
    }
    new pDaten[MAX_PLAYERS][PlayerInformationen];


    public OnPlayerDisconnect(playerid, reason)
    {
    OnLogin[playerid] = 0;
    Speichern(playerid);
    pDaten[playerid][pLogin] = 0;
    pDaten[playerid][Adminlevel] = 0;
    pDaten[playerid][Geld] = 0;
    pDaten[playerid][Level] = 0;
    Speichern(playerid);
    return 1;
    }


    stock Registrieren(playerid,key[])
    {
    new Spielerdatei[64];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
    dini_Create(Spielerdatei);
    dini_Set(Spielerdatei,"Passwort",key);
    dini_IntSet(Spielerdatei,"Level",1);
    dini_IntSet(Spielerdatei,"Adminlevel",0);
    dini_IntSet(Spielerdatei,"Geld",15000);
    Einloggen(playerid,key);
    SpawnPlayer(playerid);
    SendClientMessage(playerid,NEONGRUEN,"Willkommen auf Planet Reallife :)");
    return 1;
    }
    stock Einloggen(playerid,key[])
    {
    new Spielerdatei[64];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);


    if(!strcmp(key,dini_Get(Spielerdatei,"Passwort"),true))
    {
    pDaten[playerid][pLogin] = 1;
    SetPlayerScore(playerid,dini_Int(Spielerdatei,"Level"));
    pDaten[playerid][Adminlevel] = dini_Int(Spielerdatei,"Adminlevel");
    pDaten[playerid][Geld] = dini_Int(Spielerdatei,"Geld");
    GivePlayerMoney(playerid,pDaten[playerid][Geld]);
    return 1;
    }
    else
    {
    SendClientMessage(playerid,ROT,"Falsches Passwort.");
    ShowPlayerDialog(playerid,DIALOG_EINLOGGEN,DIALOG_STYLE_PASSWORD,"[PR]-Login","{989898}Dein Account wurde in der {00CC00}Datenbank {989898}gefunden. Gib bitte das Passwort ein.\n\n{ff0000}Das [PR]Team wird dich niemals nach deinen Passwort fragen!","Login","Abbrechen");
    return 1;
    }
    }
    stock Speichern(playerid)
    {
    new Spielerdatei[64];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
    if(pDaten[playerid][pLogin] == 1)
    {
    pDaten[playerid][Geld] = GetPlayerMoney(playerid);
    dini_IntSet(Spielerdatei,"Level",GetPlayerScore(playerid));
    dini_IntSet(Spielerdatei,"Adminlevel",pDaten[playerid][Adminlevel]);
    dini_IntSet(Spielerdatei,"Geld",pDaten[playerid][Geld]);
    return 1;
    }
    else
    {return 1;}
    }

  • enum PlayerInformationen
    {
    Adminlevel,
    Geld,
    Level,
    pLogin
    }
    new pDaten[MAX_PLAYERS][PlayerInformationen];


    public OnPlayerDisconnect(playerid, reason)
    {
    OnLogin[playerid] = 0;
    Speichern(playerid);
    return 1;
    }


    stock Registrieren(playerid,key[])
    {
    new Spielerdatei[64];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
    dini_Create(Spielerdatei);
    dini_Set(Spielerdatei,"Passwort",key);
    dini_IntSet(Spielerdatei,"Level",1);
    dini_IntSet(Spielerdatei,"Adminlevel",0);
    dini_IntSet(Spielerdatei,"Geld",15000);
    Einloggen(playerid,key);
    SpawnPlayer(playerid);
    SendClientMessage(playerid,NEONGRUEN,"Willkommen auf Planet Reallife :)");
    return 1;
    }
    stock Einloggen(playerid,key[])
    {
    new Spielerdatei[64];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);


    if(!strcmp(key,dini_Get(Spielerdatei,"Passwort"),false))
    {
    pDaten[playerid][pLogin] = 1;
    SetPlayerScore(playerid,dini_Int(Spielerdatei,"Level"));
    pDaten[playerid][Adminlevel] = dini_Int(Spielerdatei,"Adminlevel");
    pDaten[playerid][Geld] = dini_Int(Spielerdatei,"Geld");
    GivePlayerMoney(playerid,pDaten[playerid][Geld]);
    return 1;
    }
    else
    {
    SendClientMessage(playerid,ROT,"Falsches Passwort.");
    ShowPlayerDialog(playerid,DIALOG_EINLOGGEN,DIALOG_STYLE_PASSWORD,"[PR]-Login","{989898}Dein Account wurde in der {00CC00}Datenbank {989898}gefunden. Gib bitte das Passwort ein.\n\n{ff0000}Das [PR]Team wird dich niemals nach deinen Passwort fragen!","Login","Abbrechen");
    return 1;
    }
    }
    stock Speichern(playerid)
    {
    new Spielerdatei[64];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
    if(pDaten[playerid][pLogin] == 1)
    {
    pDaten[playerid][Geld] = GetPlayerMoney(playerid);
    dini_IntSet(Spielerdatei,"Level",GetPlayerScore(playerid));
    dini_IntSet(Spielerdatei,"Adminlevel",pDaten[playerid][Adminlevel]);
    dini_IntSet(Spielerdatei,"Geld",pDaten[playerid][Geld]);
    return 1;
    }
    else
    {return 1;}
    }


    Habs bisl überarbeitet..
    Aber ob es am system liegt glaube ich nicht