2x Passwort eingeben und Geld verdoppelt sich nach jedem relog

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
  • Heyho allerseits ;)
    Ich habe ein kleines Script Problem und zwar folgendes:


    Damit ich ich auf dem Server spielen kann muss ich mein passwort 2x eingeben.
    Nach jedem relog verdoppelt sich mein geld.


    (ist eig. eine schöne sache doch nicht gerade etwas was in ein reallife script gehört^^)


    Ich habe euch hier mein Script hingelegt und hoffe ihr könnt mir helfen


    P.S Wenn etwas fehlen sollte oder wenn ihr etwas anderes braucht bitte bescheid sagen.


    mit freundlichen Grüßen Ping


    public OnPlayerConnect(playerid)
    {
    new Spielerdatei[64];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
    if(dini_Exists(Spielerdatei))
    {
    ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"Login","Dein Account wurde gefunden. Gib bitte das Passwort ein.","Login","Abbrechen");
    }
    else
    {
    ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,"Registrieren","Gib bitte das gewünschte Passwort ein:","Register","Abbrechen");
    }
    return 1;
    }


    public OnPlayerDisconnect(playerid, reason)
    {

    if(GetPVarInt(playerid,"loggedin")==1)
    {
    SpielerSpeichern(playerid);
    }
    return 1;
    }
    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
    if(dialogid==DIALOG_LOGIN)
    {
    if(response==0)
    {
    SendClientMessage(playerid,BLAU,"Du hast den Vorgang abgebrochen.");
    Kick(playerid);
    return 1;
    }
    if(response==1)
    {
    if(!strlen(inputtext))
    {
    SendClientMessage(playerid,BLAU,"Das Passwort war nicht lang genug.");
    ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"Login","Dein Account wurde gefunden. Gib bitte das Passwort ein.","Login","Abbrechen");
    return 1;
    }
    else
    {
    Login(playerid,inputtext);
    return 1;
    }
    }
    }
    if(dialogid==DIALOG_REGISTER)
    {
    if(response==0)
    {
    SendClientMessage(playerid,BLAU,"Du hast den Vorgang abgebrochen.");
    Kick(playerid);
    return 1;
    }
    if(response==1)
    {
    if(!strlen(inputtext))
    {
    SendClientMessage(playerid,BLAU,"Das Passwort war nicht lang genug.");
    ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,"Registrieren","Gib bitte das gewünschte Passwort ein:","Register","Abbrechen");
    return 1;
    }
    else
    {
    Register(playerid,inputtext);
    return 1;
    }
    }
    }
    }
    stock SpielerName(playerid)
    {
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    return name;
    }
    stock Register(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);
    SendClientMessage(playerid,ROT,"Erfolgreich registriert.");
    SetPlayerScore(playerid,1);
    SetPVarInt(playerid,"loggedin",1);
    new string[128];
    format(string,sizeof(string),"Wir begrüßen unseren neuen Spieler %s",SpielerName(playerid));
    SendClientMessageToAll(ROT,string);
    return 1;
    }


    stock Login(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))
    {
    LoadAccount(playerid);
    SendClientMessage(playerid,BLAU,"Erfolgreich eingeloggt.");
    return 1;
    }
    else
    {
    SendClientMessage(playerid,BLAU,"Falsches Passwort.");
    ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"Login","Dein Account wurde gefunden. Gib bitte das Passwort ein.","Login","Abbrechen");
    return 1;
    }

    }


    stock LoadAccount(playerid)
    {
    new Spielerdatei[64];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
    SetPlayerScore(playerid,dini_Int(Spielerdatei,"Level"));
    GivePlayerMoney(playerid,dini_Int(Spielerdatei,"Geld"));
    SetPVarInt(playerid,"Adminlevel",dini_Int(Spielerdatei,"Adminlevel"));
    SetPVarInt(playerid,"Fraktion",dini_Int(Spielerdatei,"Fraktion"));
    SetPVarInt(playerid,"Baned",dini_Int(Spielerdatei,"Baned"));
    SetPVarInt(playerid,"Fraktlevel",dini_Int(Spielerdatei,"Fraktlevel"));
    SetPlayerWantedLevel(playerid,dini_Int(Spielerdatei,"Wlevel"));
    SetPVarInt(playerid,"Wlevel",dini_Int(Spielerdatei,"Wlevel"));
    SetPVarInt(playerid,"Jail",dini_Int(Spielerdatei,"Jail"));
    SetPVarInt(playerid,"pFreezed",dini_Int(Spielerdatei,"pFreezed"));
    SetPVarInt(playerid,"Bankkonto",dini_Int(Spielerdatei,"Bankkonto"));
    SetPVarInt(playerid,"Kontostand",dini_Int(Spielerdatei,"Kontostand"));
    SetPVarInt(playerid,"Job",dini_Int(Spielerdatei,"Job"));
    SetPVarInt(playerid,"Position",dini_Int(Spielerdatei,"Position"));
    SetPVarInt(playerid,"PaydayZeit",dini_Int(Spielerdatei,"PaydayZeit"));
    SetPVarInt(playerid,"Respektpunkte",dini_Int(Spielerdatei,"Respektpunkte"));
    SetPVarInt(playerid,"AutoF",dini_Int(Spielerdatei,"AutoF"));
    SetPVarInt(playerid,"FlugF",dini_Int(Spielerdatei,"FlugF"));
    SetPVarInt(playerid,"MotorradF",dini_Int(Spielerdatei,"MotorradF"));
    SetPVarInt(playerid,"BootF",dini_Int(Spielerdatei,"BootF"));
    SetPVarInt(playerid,"LKWF",dini_Int(Spielerdatei,"LKWF"));
    if(GetPVarInt(playerid,"Baned")==1)
    {
    SendClientMessage(playerid,ROT,"Du bist vom Server gebannt.");
    Kick(playerid);
    }
    SetPVarInt(playerid,"loggedin",1);
    return 1;
    }


    stock SpielerSpeichern(playerid)
    {
    if(GetPVarInt(playerid,"loggedin")==1)
    {
    new Spielerdatei[64];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
    dini_IntSet(Spielerdatei,"Level",GetPlayerScore(playerid));
    dini_IntSet(Spielerdatei,"Geld",GetPlayerMoney(playerid));
    dini_IntSet(Spielerdatei,"Adminlevel",GetPVarInt(playerid,"Adminlevel"));
    dini_IntSet(Spielerdatei,"Fraktion",GetPVarInt(playerid,"Fraktion"));
    dini_IntSet(Spielerdatei,"Baned",GetPVarInt(playerid,"Baned"));
    dini_IntSet(Spielerdatei,"Fraktlevel",GetPVarInt(playerid,"Fraktlevel"));
    dini_IntSet(Spielerdatei,"Wlevel",GetPlayerWantedLevel(playerid));
    dini_IntSet(Spielerdatei,"Wlevel",GetPVarInt(playerid,"Wlevel"));
    dini_IntSet(Spielerdatei,"Jail",GetPVarInt(playerid,"Jail"));
    dini_IntSet(Spielerdatei,"pFreezed",GetPVarInt(playerid,"pFreezed"));
    dini_IntSet(Spielerdatei,"Bankkonto",GetPVarInt(playerid,"Bankkonto"));
    dini_IntSet(Spielerdatei,"Kontostand",GetPVarInt(playerid,"Kontostand"));
    dini_IntSet(Spielerdatei,"Job",GetPVarInt(playerid,"Job"));
    dini_IntSet(Spielerdatei,"Position",GetPVarInt(playerid,"Position"));
    dini_IntSet(Spielerdatei,"PaydayZeit",GetPVarInt(playerid,"PaydayZeit"));
    dini_IntSet(Spielerdatei,"Respektpunkte",GetPVarInt(playerid,"Respektpunkte"));
    dini_IntSet(Spielerdatei,"AutoF",GetPVarInt(playerid,"AutoF"));
    dini_IntSet(Spielerdatei,"FlugF",GetPVarInt(playerid,"FlugF"));
    dini_IntSet(Spielerdatei,"MotorradF",GetPVarInt(playerid,"MotorradF"));
    dini_IntSet(Spielerdatei,"LKWF",GetPVarInt(playerid,"LKWF"));
    }
    return 1;
    }

  • Eine Geldvariable einfügen und nicht das nutzen


    dini_IntSet(Spielerdatei,"Geld",GetPlayerMoney(playerid));


    Sondern immer die Variable Beim Einloggen immer Geld resetten und per Variable neu geben lassen...
    Das ist bei SAMP mit dem "Sterben" etc bisschen fehlerhaft und kann öfter mal zu Problemen führen.
    Bis ich dir das erläutere... Das dauert zulange