Problem bei 0.3a mit GUI Dialogboxen

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
  • Mahlzeit


    Ich hab die von erorcun modifizierte version von Seifistration in mein GM eingebeut.
    Und wollte mir nun eine Bank mit der GUI bauen.
    Das erste Problem das ich habe ist: bei den neuen Dialogboxen, wenn ich da auf Verlassen klicke, werd ich vom Server gekickt.
    Das zweite Problem ist: Das ich die übergabe von einer Dialogbox zur nächsten nicht hinbekomme.


    Die Bank Dailoge beginnen bei Dialogid 200


    Mein OnDialogResponse sieht derzeit so aus:
    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
    if (response == 1)
    {
    if(dialogid == 12345)
    {
    if(strlen(inputtext))
    {
    Encrypt(inputtext);
    new player[MAX_PLAYER_NAME];
    GetPlayerName(playerid, player, 50);
    new string3[32];
    new playername3[MAX_PLAYER_NAME];
    GetPlayerName(playerid, playername3, sizeof(playername3));
    format(string3, sizeof(string3), ACCOUNTS, playername3);
    new ip[20];
    GetPlayerIp(playerid,ip,sizeof(ip));
    new File: hFile = fopen(string3, io_write);
    if (hFile)
    {
    strmid(AccountInfo[playerid][aPassword], inputtext, 0, strlen(inputtext), 255);
    new var[128];
    format(var, 128, "Password=%s\n", AccountInfo[playerid][aPassword]);fwrite(hFile, var);
    format(var, 128, "IP=%s\n",ip);fwrite(hFile, var);
    fclose(hFile);
    printf("%s is signed up.",playername3);
    SendClientMessage(playerid, GREEN, "|- Ihr Eintrag wurde erfolgreich durchgeführt. Jetzt können Sie sich anmelden. -|");
    new girismsg[256];
    format(girismsg,256,"Willkommen\n\nBenutzername: %s\n\nGeben Sie ihr Passwort ein:",playername3);
    ShowPlayerDialog(playerid,12346,DIALOG_STYLE_INPUT,"Anmeldung",girismsg,"Anmeldung","Abbrechen");
    register[playerid] = 0;
    login[playerid] = 1;
    }
    }
    else if(!strlen(inputtext))
    {
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid, name, sizeof(name));
    new kayitmsg[256];
    format(kayitmsg,256,"Willkommen\n\n%s bitte eröffnen Sie ein neues Konto\n\nNeues Passwort eingeben:",name);
    ShowPlayerDialog(playerid,12345,DIALOG_STYLE_INPUT,"Registrieren",kayitmsg,"Registrieren"," Abbrechen");
    register[playerid] = 1;
    login[playerid] = 0;
    }
    }
    if(dialogid == 12346)
    {
    Encrypt(inputtext);
    new string2[128];
    new playername2[MAX_PLAYER_NAME];
    GetPlayerName(playerid, playername2, sizeof(playername2));
    format(string2, sizeof(string2), ACCOUNTS, playername2);
    new File: UserFile = fopen(string2, io_read);
    if ( UserFile )
    {
    new PassData[256];
    new keytmp[256], valtmp[256];
    fread( UserFile , PassData , sizeof( PassData ) );
    keytmp = ini_GetKey( PassData );
    if( strcmp( keytmp , "Password" , true ) == 0 )
    {
    valtmp = ini_GetValue( PassData );
    strmid(AccountInfo[playerid][aPassword], valtmp, 0, strlen(valtmp)-1, 255);
    }
    if(strcmp(AccountInfo[playerid][aPassword],inputtext, true ) == 0)
    {
    if(strlen(inputtext))
    {
    for(new p = 0; p < strlen(AccountInfo[playerid][aPassword]); p++)
    {
    inputtext[p] = '?';
    }
    SetTimerEx("LogIn", LOGIN_DELAY*1000, 0, "d", playerid);
    printf("%s is logged in.",playername2);
    new key[256] , val[256];
    new Data[256];
    while ( fread( UserFile , Data , sizeof( Data ) ) )
    {
    key = ini_GetKey( Data );
    if( strcmp( key , "Level" , true ) == 0 ) { val = ini_GetValue( Data ); AccountInfo[playerid][pLevel] = strval( val ); }
    if( strcmp( key , "Geld" , true ) == 0 ) { val = ini_GetValue( Data ); AccountInfo[playerid][pCash] = strval( val ); }
    if( strcmp( key , "Konto" , true ) == 0 ) { val = ini_GetValue( Data ); AccountInfo[playerid][pBcash] = strval( val ); }
    }
    fclose(UserFile);
    GivePlayerMoney(playerid,AccountInfo[playerid][pCash]);
    }
    }
    else
    {
    if(strlen(inputtext))
    {
    new girismsg[256];
    printf("%s falsches Passwort verwendet wurde.",playername2);
    format(girismsg,256,"FALSCHES PASSWORT\n\nGeben Sie ihr Passwort ein:");
    ShowPlayerDialog(playerid,12347,DIALOG_STYLE_INPUT,"Anmeldung",girismsg,"Anmeldung","Abbrechen");
    login[playerid] = 1;
    register[playerid] = 0;
    fclose(UserFile);
    return 1;
    }
    }
    if(!strlen(inputtext))
    {
    new girismsg[256];
    printf("%s falsches Passwort verwendet wurde.",playername2);
    format(girismsg,256,"FALSCHES PASSWORT\n\nGeben Sie ihr Passwort ein:");
    ShowPlayerDialog(playerid,12347,DIALOG_STYLE_INPUT,"Anmeldung",girismsg,"Anmeldung","Abbrechen");
    login[playerid] = 1;
    register[playerid] = 0;
    fclose(UserFile);
    return 1;
    }
    }
    }
    if(dialogid == 12347)
    {
    Encrypt(inputtext);
    new string2[128];
    new playername2[MAX_PLAYER_NAME];
    GetPlayerName(playerid, playername2, sizeof(playername2));
    format(string2, sizeof(string2), ACCOUNTS, playername2);
    new File: UserFile = fopen(string2, io_read);
    if ( UserFile )
    {
    new PassData[256];
    new keytmp[256], valtmp[256];
    fread( UserFile , PassData , sizeof( PassData ) );
    keytmp = ini_GetKey( PassData );
    if( strcmp( keytmp , "Password" , true ) == 0 )
    {
    valtmp = ini_GetValue( PassData );
    strmid(AccountInfo[playerid][aPassword], valtmp, 0, strlen(valtmp)-1, 255);
    }
    if(strcmp(AccountInfo[playerid][aPassword],inputtext, true ) == 0)
    {
    if(strlen(inputtext))
    {
    for(new p = 0; p < strlen(AccountInfo[playerid][aPassword]); p++)
    {
    inputtext[p] = '?';
    }
    SetTimerEx("LogIn", LOGIN_DELAY*1000, 0, "d", playerid);
    printf("%s is logged in.",playername2);
    new key[256] , val[256];
    new Data[256];
    while ( fread( UserFile , Data , sizeof( Data ) ) )
    {
    key = ini_GetKey( Data );
    if( strcmp( key , "Level" , true ) == 0 ) { val = ini_GetValue( Data ); AccountInfo[playerid][pLevel] = strval( val ); }
    if( strcmp( key , "Geld" , true ) == 0 ) { val = ini_GetValue( Data ); AccountInfo[playerid][pCash] = strval( val ); }
    if( strcmp( key , "Konto" , true ) == 0 ) { val = ini_GetValue( Data ); AccountInfo[playerid][pBcash] = strval( val ); }
    }
    fclose(UserFile);
    GivePlayerMoney(playerid,AccountInfo[playerid][pCash]);
    }
    }
    else
    {
    if(strlen(inputtext))
    {
    new girismsg[256];
    printf("%s falsches Passwort verwendet wurde.",playername2);
    format(girismsg,256,"FALSCHES PASSWORT\n\nGeben Sie ihr Passwort ein:");
    ShowPlayerDialog(playerid,12347,DIALOG_STYLE_INPUT,"Anmeldung",girismsg,"Anmeldung","Abbrechen");
    login[playerid] = 1;
    register[playerid] = 0;
    fclose(UserFile);
    return 1;
    }
    }
    if(!strlen(inputtext))
    {
    new girismsg[256];
    printf("%s falsches Passwort verwendet wurde.",playername2);
    format(girismsg,256,"FALSCHES PASSWORT\n\nGeben Sie ihr Passwort ein:");
    ShowPlayerDialog(playerid,12347,DIALOG_STYLE_INPUT,"Anmeldung",girismsg,"Anmeldung","Abbrechen");
    login[playerid] = 1;
    register[playerid] = 0;
    fclose(UserFile);
    return 1;
    }
    }
    }
    }
    else return Kick(playerid);
    if (dialogid == 200)
    {
    if (response)
    {
    ShowPlayerDialog(playerid,201,DIALOG_STYLE_MSGBOX,"Bankschalter","Willkommen in der Bank","Weiter","Verlassen");
    }
    }
    if (dialogid == 201)
    {
    if (response)
    {
    if(listitem == 0)
    {
    ShowPlayerDialog(playerid,202,DIALOG_STYLE_LIST,"Einzahlen","Einzahlen","Weiter","Verlassen");
    }
    if(listitem == 1)
    {
    ShowPlayerDialog(playerid,203,DIALOG_STYLE_LIST,"Abheben","Abheben","Weiter","Verlassen");
    }
    if(listitem == 2)
    {
    ShowPlayerDialog(playerid,204,DIALOG_STYLE_LIST,"Überweisen","Überweisen","Weiter","Verlassen");
    }
    if(listitem == 3)
    {
    ShowPlayerDialog(playerid,205,DIALOG_STYLE_LIST,"ÜKotoauszug","Kontoauszug","Weiter","Verlassen");
    }
    }
    return 1;
    }
    }
    return 0;
    }


    Die dialogid 200 wird hier im game aufgerufen
    public Generaltimer(playerid)
    {
    if(PlayerToPoint(3.0,playerid,1426.8912,-966.6413,37.4273))
    {
    ShowPlayerDialog(playerid,200,DIALOG_STYLE_MSGBOX,"Bankschalter","Willkommen in der Bank","Weiter","Verlassen");
    }
    return 1;
    }

    Goth's:

    • Don't always wear black
    • Don't workship satan
    • Are not evil
    • Do not hate everybody
    • Are not always depressed
    • Can be happy too
    • Are usually nice people
    • Are normal, just like you
  • Ich glaube mein zweites problem hat sich gerade erledigt.
    So wie es aussieht ist es nicht möglich von einem Dialogstyle auf einen anderen weiter zu geben.


    Edit:
    Maxx
    Dein beitrag hilft mir nicht wirklich weiter.

    Goth's:

    • Don't always wear black
    • Don't workship satan
    • Are not evil
    • Do not hate everybody
    • Are not always depressed
    • Can be happy too
    • Are usually nice people
    • Are normal, just like you