Problem mit Spieler speichern

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
  • Also ich habe grade mit einem Seldmade angefangen und habe schon mein 1. Problem und zwar, ich habe alles mit stocks usw. gemacht und es compilet ohne Probleme. Aber wenn ich auf meinen Server gehe speichert es den Account nicht ( habe schon Ordner mit "Accounts" erstellet ), da speichert es zwar was aber nur ein Account mit dem Namen "rt". Und wenn ich später wieder drauf connecte muss ich von neu registrieren! -.-


    Kann mir jemand weiterhelfen?


    OnPlayerConnect und Disconnect
    public OnPlayerConnect(playerid)
    {
    new Spielerdatei [64];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt");
    if(dini_Exists(Spielerdatei))
    {
    ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"Login Vorgang","Dein Account wurde gefunden./n Bitte gebe dein Passwort nun ein:","Login","Abrrechen");
    }
    else
    {
    ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,"REGISTRATION","Bitte gebe nun dein gewünschtes Passwort ein.","Register","Abbrechen");
    }
    return 1;
    }



    Stocks und Dialog
    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
    if(dialogid==DIALOG_REGISTER)
    {
    if(response==0)
    {
    SendClientMessage(playerid,Rot,"Du hast den Registrations Vorgang abgebrochen!");
    Kick(playerid);
    return 1;
    }
    if(response==1)
    {
    if(!strlen(inputtext))
    {
    SendClientMessage(playerid,Rot,"Das Passwort war nicht lang genug!");
    ShowPlayerDialog(playerid,DIALOG_SPAWN,DIALOG_STYLE_MSGBOX,"Willkommen auf NewYorkCityReallife","Du wirst gleich von einem Admin, Supporter oder Moderator eingeführt.!","OK","Schließen");
    return 1;
    }
    else
    {
    Register(playerid,inputtext);
    return 1;
    }
    }
    }
    if(dialogid==DIALOG_LOGIN)
    {
    if(response==0)
    {
    SendClientMessage(playerid,Rot,"Du hast den Login Vorgang abgebrochen!");
    Kick(playerid);
    return 1;
    }
    if(response==1)
    {
    if(!strlen(inputtext))
    {
    SendClientMessage(playerid,Rot,"Das Passwort war nicht lang genug!");
    ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"Login Vorgang","Dein Account wurde gefunden. Bitte gebe dein Passwort nun ein:","Login","Abrrechen");
    return 1;
    }
    else
    {
    Login(playerid,inputtext);
    return 1;
    }
    }
    }
    return 1;
    }


    public OnPlayerClickPlayer(playerid, clickedplayerid, source)
    {
    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");
    dini_Create(Spielerdatei);
    dini_Set(Spielerdatei,"Passwort",key);
    SendClientMessage(playerid,Blau,"Du hast dich erfolgreich registriert!");
    SetPlayerScore(playerid,0);
    SetPVarInt(playerid,"loggedin",1);
    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");
    if(!strcmp(key,dini_Get(Spielerdatei,"Passwort"),false))
    {
    LoadAccount(playerid);
    SendClientMessage(playerid,Blau,"Erfolgreich eingeloggt!");
    return 1;
    }
    else
    {
    SendClientMessage(playerid,Rot,"FALSCHES PASSWORT! Überprüfe deine Eingaben!");
    ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"Login Vorgang","Dein Account wurde gefunden. Bitte gebe dein Passwort nun ein:","Login","Abrrechen");
    }
    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");
    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"));
    //SpielerInfo[playerid][Adminlevel]=dini_Int(Spielerdatei,"AdminLevel");
    //SpielerInfo[playerid][Fraktion]=dini_Int(Spielerdatei,"Fraktion");
    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");
    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"));
    }
    return 1;
    }


    stock isPlayerAnAdmin(playerid,rang)
    {
    if(GetPVarInt(playerid,"Adminlevel")>=rang)return 1;
    return 0;
    }




    PS : Habe Sscanf schon drinne



    Hoffe auf Antworten Danke :)


    Mfg Hamster


    //Edit : Habe noch ein Problem mit Drivein System :
    C:\Users\Richard\Desktop\NYCR\gamemodes\NYCR.pwn(640) : warning 202: number of arguments does not match definition
    C:\Users\Richard\Desktop\NYCR\gamemodes\NYCR.pwn(972) : error 017: undefined symbol "playerid"
    C:\Users\Richard\Desktop\NYCR\gamemodes\NYCR.pwn(974) : error 017: undefined symbol "playerid"
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    2 Errors.

    Mit unfreundlichen Grüßen
    Buschmensch

    Einmal editiert, zuletzt von ParliamenT ()

  • bei punkt 1 solltest du jeweils das:


    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt");


    durch das ersetzen:


    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);


    du hast zwar gesagtt, dass er dort eine variable einsetzen soll, aber nicht welche