Problem mit Register/Login System

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
  • Habe mir mal eben ein GUI-Logn/Register Tutorial angeguckt
    und ich habe Erstmal die Sachen aus dem Tut genommen, doch da
    bekomme ich schon einige Errors:


    #define FILTERSCRIPT


    #include <a_samp>
    #include <dini>


    #define DIALOG_REGISTER1 0
    #define DIALOG_REGISTER2 1
    #define DIALOG_REGISTER3 2
    #define DIALOG_REGISTER4 3
    #define DIALOG_LOGIN1 4
    #define DIALOG_NOPW1 5
    #define DIALOG_NOPW2 6
    #define DIALOG_WRONGPW 7
    #pragma tabsize 0


    #if defined FILTERSCRIPT


    new pInfo[MAX_PLAYERS][Info];


    enum Info
    {
    age, // Das Alter
    logged, // Ob der Spieler eingeloggt ist.
    }


    public OnPlayerConnect(playerid)
    {
    new pname[MAX_PLAYER_NAME], path[200];
    GetPlayerName(playerid, pname, sizeof(pname));
    format(path, sizeof(path), "/spieler/%s.ini", pname);


    if(!dini_Exists(path))
    {
    // Wenn der Spieler nicht registriert ist:
    ShowPlayerDialog(playerid, DIALOG_REGISTER1, DIALOG_STYLE_INPUT, "Registration", "Password:", "OK", "Abbrechen");
    }
    else
    {
    // Wenn der Spieler registriert ist:
    ShowPlayerDialog(playerid, DIALOG_LOGIN1, DIALOG_STYLE_INPUT, "Login", "Password:", "OK", "Abbrechen");
    }
    return 1;
    }


    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
    new pname[MAX_PLAYER_NAME], path[200];
    GetPlayerName(playerid, pname, sizeof(pname));
    format(path, sizeof(path), "/spieler/%s.ini", pname);


    switch(dialogid)
    {
    case DIALOG_REGISTER1:
    {
    if(!response)
    {
    Kick(playerid);
    }
    else
    {
    new pwlength = strlen(inputtext);
    if(pwlength > 0)
    {
    dini_Create(path); // Erstellt die .ini Datei
    dini_Set(path, "password", inputtext); // Schreibt das eingegebene Passwort in die .ini
    }
    else
    {
    ShowPlayerDialog(playerid, DIALOG_NOPW1, DIALOG_STYLE_MSGBOX, "Registrierung", "Sie müssen ein Passwort angeben!", "OK", "Abbrechen");
    }
    }
    }
    case DIALOG_REGISTER2:
    {
    if(!response)
    {
    dini_Remove(path); // .ini löschen, da der User die registrierung abgebrochen hat.
    Kick(playerid);
    }
    else
    {
    ShowPlayerDialog(playerid, DIALOG_REGISTER3, DIALOG_STYLE_INPUT, "Registrierung", "Geben Sie hier Ihr Alter an: (z.B. 22):", "OK", "Abbrechen");
    }
    }
    case DIALOG_REGISTER3:
    {
    if(!response)
    {
    dini_Remove(path); // .ini löschen, da der User die registrierung abgebrochen hat.
    Kick(playerid);
    }
    else
    {
    dini_Set(path, "age", inputtext);
    ShowPlayerDialog(playerid, DIALOG_REGISTER4, DIALOG_STYLE_MSGBOX, "Registrierung", "Ihre Registrierung ist nun abgeschlossen!", "OK", "OK");
    }
    }
    case DIALOG_REGISTER4:
    {
    pInfo[playerid][age] = dini_Int(path, "age");
    pInfo[playerid][logged] = 1;
    }
    case DIALOG_LOGIN1:
    {
    if(!response)
    {
    Kick(playerid);
    }
    else
    {
    new pwlength = strlen(inputtext);
    if(pwlength > 0)
    {
    new pw[200];
    format(pw, sizeof(pw), "%s", dini_Get(path, "password");
    if(strcmp(inputtext, pw) == 0) // Wenn das Passwort stimmt
    {
    pInfo[playerid][age] = dini_Int(path, "age");
    pInfo[playerid][logged] = 1;
    }
    else
    {
    ShowPlayerDialog(playerid, DIALOG_WRONGPW, DIALOG_STYLE_MSGBOX, "Login", "You have entered an invalid password", "OK", "Abbrechen");
    }
    }
    else
    {
    ShowPlayerDialog(playerid, DIALOG_NOPW2, DIALOG_STYLE_MSGBOX, "Login", "You have to indicate a password!", "OK", "Abbrechen");
    }
    }
    }
    case DIALOG_NOPW1: // Sollte das Passwort bei der Registrierung "Leer" sein:
    {
    if(!response)
    {
    Kick(playerid);
    }
    else
    {
    ShowPlayerDialog(playerid, DIALOG_REGISTER1, DIALOG_STYLE_INPUT, "Registration", "Password:", "OK", "Abbrechen");
    }
    }
    case DIALOG_NOPW2: // Sollte das Passwort beim Login "Leer" sein:
    {
    if(!response)
    {
    Kick(playerid);
    }
    else
    {
    ShowPlayerDialog(playerid, DIALOG_LOGIN1, DIALOG_STYLE_INPUT, "Login", "Password:", "OK", "Abbrechen");
    }
    }
    case DIALOG_WRONGPW:
    {
    if(!response)
    {
    Kick(playerid);
    }
    else
    {
    ShowPlayerDialog(playerid, DIALOG_LOGIN1, DIALOG_STYLE_INPUT, "Login", "Type in your password", "OK", "Abbrechen");
    }
    }
    }
    return 1;
    }
    return 0;
    }


    public OnPlayerDisconnect(playerid, reason)
    {
    new pname[MAX_PLAYER_NAME], path[200];
    GetPlayerName(playerid, pname, sizeof(pname));
    format(path, sizeof(path), "/spieler/%s.ini", pname);


    dini_IntSet(path, "age", pInfo[playerid][age]);


    pInfo[playerid][logged] = 0;
    return 1;
    }
    #endif


    C:\Dokumente und Einstellungen\Administrator\Desktop\GTA SA\filterscripts\register.pwn(18) : error 017: undefined symbol "Info"
    C:\Dokumente und Einstellungen\Administrator\Desktop\GTA SA\filterscripts\register.pwn(18) : error 009: invalid array size (negative, zero or out of bounds)
    C:\Dokumente und Einstellungen\Administrator\Desktop\GTA SA\filterscripts\register.pwn(100) : warning 213: tag mismatch
    C:\Dokumente und Einstellungen\Administrator\Desktop\GTA SA\filterscripts\register.pwn(101) : warning 213: tag mismatch
    C:\Dokumente und Einstellungen\Administrator\Desktop\GTA SA\filterscripts\register.pwn(115) : error 001: expected token: ",", but found ";"
    C:\Dokumente und Einstellungen\Administrator\Desktop\GTA SA\filterscripts\register.pwn(118) : warning 213: tag mismatch
    C:\Dokumente und Einstellungen\Administrator\Desktop\GTA SA\filterscripts\register.pwn(119) : warning 213: tag mismatch
    C:\Dokumente und Einstellungen\Administrator\Desktop\GTA SA\filterscripts\register.pwn(168) : error 010: invalid function or declaration
    C:\Dokumente und Einstellungen\Administrator\Desktop\GTA SA\filterscripts\register.pwn(177) : warning 213: tag mismatch
    C:\Dokumente und Einstellungen\Administrator\Desktop\GTA SA\filterscripts\register.pwn(179) : warning 213: tag mismatch
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    4 Errors.


    lg

  • #include <a_samp>
    #include <dini>


    #define DIALOG_REGISTER1 0
    #define DIALOG_REGISTER2 1
    #define DIALOG_REGISTER3 2
    #define DIALOG_REGISTER4 3
    #define DIALOG_LOGIN1 4
    #define DIALOG_NOPW1 5
    #define DIALOG_NOPW2 6
    #define DIALOG_WRONGPW 7
    #pragma tabsize 0


    enum Info{
    age, // Das Alter
    logged, // Ob der Spieler eingeloggt ist.
    }
    new pInfo[MAX_PLAYERS][Info];


    public OnPlayerConnect(playerid){
    new pname[MAX_PLAYER_NAME], path[200];
    GetPlayerName(playerid, pname, sizeof(pname));
    format(path, sizeof(path), "/spieler/%s.ini", pname);


    if(!dini_Exists(path)){
    // Wenn der Spieler nicht registriert ist:
    ShowPlayerDialog(playerid, DIALOG_REGISTER1, DIALOG_STYLE_INPUT, "Registration", "Password:", "OK", "Abbrechen");
    }else{
    // Wenn der Spieler registriert ist:
    ShowPlayerDialog(playerid, DIALOG_LOGIN1, DIALOG_STYLE_INPUT, "Login", "Password:", "OK", "Abbrechen");}
    return 1;}


    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]){
    new pname[MAX_PLAYER_NAME], path[200];
    GetPlayerName(playerid, pname, sizeof(pname));
    format(path, sizeof(path), "/spieler/%s.ini", pname);


    switch(dialogid){
    case DIALOG_REGISTER1: {
    if(!response){Kick(playerid);
    }else{
    new pwlength = strlen(inputtext);
    if(pwlength > 0){
    dini_Create(path); // Erstellt die .ini Datei
    dini_Set(path, "password", inputtext); // Schreibt das eingegebene Passwort in die .ini
    }else{ShowPlayerDialog(playerid, DIALOG_NOPW1, DIALOG_STYLE_MSGBOX, "Registrierung", "Sie müssen ein Passwort angeben!", "OK", "Abbrechen");}
    }}
    case DIALOG_REGISTER2:{
    if(!response){
    dini_Remove(path); // .ini löschen, da der User die registrierung abgebrochen hat.
    Kick(playerid);
    }else{ShowPlayerDialog(playerid, DIALOG_REGISTER3, DIALOG_STYLE_INPUT, "Registrierung", "Geben Sie hier Ihr Alter an: (z.B. 22):", "OK", "Abbrechen");}
    }case DIALOG_REGISTER3:{
    if(!response){
    dini_Remove(path); // .ini löschen, da der User die registrierung abgebrochen hat.
    Kick(playerid);
    }else{
    dini_Set(path, "age", inputtext);
    ShowPlayerDialog(playerid, DIALOG_REGISTER4, DIALOG_STYLE_MSGBOX, "Registrierung", "Ihre Registrierung ist nun abgeschlossen!", "OK", "OK");}}
    case DIALOG_REGISTER4:{
    pInfo[playerid][age] = dini_Int(path, "age");
    pInfo[playerid][logged] = 1;}
    case DIALOG_LOGIN1:{
    if(!response){Kick(playerid);
    }else{
    new pwlength = strlen(inputtext);
    if(pwlength > 0){
    new pw[200];
    format(pw, sizeof(pw), "%s", dini_Get(path, "password"));
    if(strcmp(inputtext, pw) == 0) // Wenn das Passwort stimmt
    {
    pInfo[playerid][age] = dini_Int(path, "age");
    pInfo[playerid][logged] = 1;
    }else{ShowPlayerDialog(playerid, DIALOG_WRONGPW, DIALOG_STYLE_MSGBOX, "Login", "You have entered an invalid password", "OK", "Abbrechen");}
    }else{ShowPlayerDialog(playerid, DIALOG_NOPW2, DIALOG_STYLE_MSGBOX, "Login", "You have to indicate a password!", "OK", "Abbrechen");}}}
    case DIALOG_NOPW1: // Sollte das Passwort bei der Registrierung "Leer" sein:
    {
    if(!response){Kick(playerid);
    }else{ShowPlayerDialog(playerid, DIALOG_REGISTER1, DIALOG_STYLE_INPUT, "Registration", "Password:", "OK", "Abbrechen");}}
    case DIALOG_NOPW2: // Sollte das Passwort beim Login "Leer" sein:
    {if(!response){Kick(playerid);}
    else{ShowPlayerDialog(playerid, DIALOG_LOGIN1, DIALOG_STYLE_INPUT, "Login", "Password:", "OK", "Abbrechen");}}
    case DIALOG_WRONGPW:{
    if(!response){Kick(playerid);
    }else{ShowPlayerDialog(playerid, DIALOG_LOGIN1, DIALOG_STYLE_INPUT, "Login", "Type in your password", "OK", "Abbrechen");}}}
    return 1;
    }
    return 1;
    }


    public OnPlayerDisconnect(playerid, reason){
    new pname[MAX_PLAYER_NAME], path[200];
    GetPlayerName(playerid, pname, sizeof(pname));
    format(path, sizeof(path), "/spieler/%s.ini", pname);


    dini_IntSet(path, "age", pInfo[playerid][age]);


    pInfo[playerid][logged] = 0;
    return 1;}


    /edit
    alles geändert :P


    jez kommt nur noch ein error den bekomm ich aber nicht weg^^

    Einmal editiert, zuletzt von hacken ()