/changepass geht nicht

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
  • Abend, bei meinem changepass geht leider garnichts, er zeigt zwar keine errors/warnings an, doch passieren tut nichts :(


    An was liegt das?


    dcmd_changepass(playerid, params[])
    {
    new file[256], pname[MAX_PLAYER_NAME], accFormat[150];
    GetPlayerName(playerid, pname, MAX_PLAYER_NAME);
    if (Player[playerid][eingeloggt] != 1)
    return SendClientMessage(playerid,COLOR_RED,"Du musst eingeloggt sein!");
    if(strlen(params) >= 3)
    {
    format(file, sizeof(file), "acc/%s.sav", pname);
    dini_Set(accFormat,"Passwort",accFormat);
    SendClientMessage(playerid,COLOR_GREEN, "Du hast dein Passwort geändert!");
    }
    else
    {
    SendClientMessage(playerid,COLOR_RED, "Ungültig!");
    }
    return 1;
    }

  • 1) Warum hast du einen String (file) mit 256 Zeichen? Mach daraus mal 42 oderso.
    2) AccFormat wurde niemals formatiert, also kann auch nichts passieren.


    //Edit

    dcmd_changepass(playerid, params[]){
    new accountPath[42], newPass[128], PlayerName[MAX_PLAYER_NAME];
    if(!sscanf(params, "s", newPass)){
    if(Player[playerid][eingeloggt] == 1){
    if(strlen(newPass) >= 3){
    format(accountPath, sizeof(accountPath), "acc/%s.sav", PlayerName);
    dini_Set(accountPath, "Passwort", newPass);
    format(newPass, sizeof(newPass), "Du hast dein Passwort in \"%s\" geändert.", dini_Get(accountPath, "Passwort"));
    SendClientMessage(playerid, COLOR_GREEN, newPass);
    }else{
    SendClientMessage(playerid, COLOR_RED, "Dein Passwort sollte mindestens 3 Zeichen haben.");
    return 1;
    }
    }else{
    SendClientMessage(playerid, COLOR_RED, "Du bist nicht eingeloggt.");
    return 1;
    }
    }else{
    SendClientMessage(playerid, COLOR_RED, "* Verwende /changepass [Neues Passwort]");
    return 1;
    }
    return 1;
    }
    ...