Mit SII prüfen ob das Passwort richtig ist, funktioniert aber nicht :o

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
  • Hallo Community,
    ich habe ein Problem und zwar habe ich mein Script nun komplett auf SII umgeschrieben und möchte das Passwort auslesen, doch es klappt nicht so.
    Es kommen Error + Warning, ich poste euch mal den ganzen stock:

    stock Login(playerid,key[])
    {
    new PlayerData[64];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(PlayerData,sizeof(PlayerData),"Accounts/%s.ini",name);
    if(INI_Open(PlayerData))
    {
    if(!strcmp(key,INI_ReadString(PlayerData,"Passwort"),false))// <- 4049
    {
    LoadAccount(playerid);
    SendClientMessage(playerid,gelb,"___________________German Evolution Life__________________");
    SendClientMessage(playerid,gruen,"Du hast dich erfolgreich auf GEL eingeloggt, Willkommen!");
    SendClientMessage(playerid,gruen,"Gebe /help ein um alle Befehle zu sehen.");
    SendClientMessage(playerid,gruen,"Falls du Fragen hast benutze /support.");
    SendClientMessage(playerid,gruen,"Viel Spaß und Erfolg wünscht dir das GEL Team!");
    SendClientMessage(playerid,gelb,"__________________________________________________________");
    return 1;
    }
    else
    {
    SendClientMessage(playerid,hellblau,"Du hast ein falsches Passwort eingegeben!");
    ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"{FAFAFA}Log In Vorgang","{FAFAFA}Dein {00FF1E}Account {FAFAFA}wurde in unserer Datenbank gefunden!\nBitte gib nun dein {00FF1E}Passwort {FAFAFA}ein!\nSolltest du es vergessen haben, melde dich im Forum!","Log In","Abbrechen");
    return 1;
    }
    INI_Close();// <- 4066
    }
    return 1;
    }


    C:\Users\Richard\Desktop\Alle Ordner-Dateien\Scripte\!Self\gamemodes\Selfmade.pwn(4049) : error 035: argument type mismatch (argument 2)
    C:\Users\Richard\Desktop\Alle Ordner-Dateien\Scripte\!Self\gamemodes\Selfmade.pwn(4066) : warning 225: unreachable code
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    1 Error.


    Mfg.

    Mit unfreundlichen Grüßen
    Buschmensch

  • INI_ReadString sieht auch von der Syntax bischen Anders aus.
    INI_ReadString(dest[], key[], maxlength = sizeof(dest))
    Heisst also,du musst INI_ReadString vor der if()- Abfrage machen.

    new sPasswort[32];
    INI_ReadString(sPasswort, "Passwort", sizeof(sPasswort) );
    if(!strcmp(key,sPasswort,false))// <- 4049


    //Edit:
    Zum "unreachable code".
    Sowohl bei dem if() als auch im else() Zweig hast du jeweils ein return.Dadurch wird die Funktion ja beendet. Es wird daher unter "if(INI_Open(PlayerData)) " niemals dazu kommen,dass der Code bis
    "INI_Close();// <- 4066" kommt.Entfern einfach die beiden return - Zeilen aus dem if und dem else - Zweig.
    Kannst die returns auch lassen,dann müsstest aber "INI_Close()" über dem return jeweils einfügen ;).