SHOP Dialog problem!

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
  • Hey.. ich frage mich, wieso das nicht klappt Q_Q


    Wenn man was auswählt passiert rein garnichts :(


    //----
    #define DIALOG_LOGIN 3
    #define DIALOG_REG 4
    #define DIALOG_SHOP 5
    //----


    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
    new pname[MAX_PLAYERS],accFormat[128];
    GetPlayerName(playerid,pname,sizeof pname);
    format(accFormat,sizeof accFormat,"acc/%s.sav",pname);
    if(response)
    {
    switch(dialogid)
    {
    case DIALOG_LOGIN: // ID Login
    {
    if(!strlen(inputtext))
    {
    ShowPlayerDialog(playerid,DIALOG_LOGIN,1,"Login","Login erforderlich:","Login","Zurück");
    return SendClientMessage(playerid,0xFFFFFFFF,"Kein Passwort!");
    }
    if(strcmp(inputtext,dini_Get(accFormat,"Passwort")) == 0) // Load PSW
    {
    Player[playerid][admin] = dini_Int(accFormat,"AdminLvl");
    Player[playerid][Kills] = dini_Int(accFormat,"Kills");
    Player[playerid][Deaths] = dini_Int(accFormat,"Deaths");
    GivePlayerMoney(playerid,dini_Int(accFormat,"Geld"));
    SetPlayerScore(playerid,dini_Int(accFormat,"Score"));
    Player[playerid][eingeloggt] = 1; //player is logged in now
    SendClientMessage(playerid,0xFFFFFFFF,"Du wurdest erfolgreich eingeloggt!");
    }
    else
    {
    ShowPlayerDialog(playerid,DIALOG_LOGIN,1,"Login","Login erforderlich:","Login","Zurück");
    SendClientMessage(playerid,0xFFFFFFFF,"Das Passwort ist falsch!");
    }
    }
    case DIALOG_REG:
    {
    if(!strlen(inputtext))
    {
    ShowPlayerDialog(playerid,DIALOG_REG,1,"Registration","Registration erforderlich:","Registration!","Zurück");
    return SendClientMessage(playerid,0xFFFFFFFF,"Das Passwort ist zu kurz!");
    }
    dini_Create(accFormat);
    dini_Set(accFormat,"Passwort",inputtext);
    Player[playerid][admin] = 0 ;
    Player[playerid][eingeloggt] = 1;
    SendClientMessage(playerid,0xFFFFFFFF,"Dein Account wurde registriert, du wurdest automatisch eingeloggt!");
    GivePlayerMoney(playerid, 12000);
    }
    }
    }
    else
    {
    switch(dialogid)
    {
    case DIALOG_LOGIN:ShowPlayerDialog(playerid,DIALOG_LOGIN,1,"Login","Login erforderlich:","Login","Zurück");
    case DIALOG_REG:ShowPlayerDialog(playerid,DIALOG_REG,1,"Registration","Registration erforderlich:","Registration!","Zurück");
    }


    if(dialogid == shop)
    {
    if(response == 1)
    {
    if(listitem == 0) // AK47
    {
    if(preise[listitem] >= GetPlayerScore(playerid))return SendClientMessage(playerid,COLOR_RED,"Dafür hast du nicht genug Score Punkte!"); // Abfrage ob der Spieler Geld hat
    GivePlayerMoney(playerid, 15000); //Zieht dem Spieler Geld ab
    }
    if(listitem == 1) // AK47
    {
    if(preise[listitem] >= GetPlayerMoney(playerid))return SendClientMessage(playerid,COLOR_RED,"Dafür hast du nicht genug Geld!"); // Abfrage ob der Spieler Geld hat
    SetPlayerScore(playerid, GetPlayerScore(playerid)+3); //Zieht dem Spieler Geld ab
    }
    if(listitem == 2) // AK47
    {
    if(preise[listitem] >= GetPlayerMoney(playerid))return SendClientMessage(playerid,COLOR_RED,"Dafür hast du nicht genug Geld!"); // Abfrage ob der Spieler Geld hat
    GivePlayerWeapon(playerid, 35, 10); //Zieht dem Spieler Geld ab
    }
    if(listitem == 3) // AK47
    {
    if(preise[listitem] >= GetPlayerMoney(playerid))return SendClientMessage(playerid,COLOR_RED,"Dafür hast du nicht genug Geld!"); // Abfrage ob der Spieler Geld hat
    GivePlayerWeapon(playerid, 16, 10); //Zieht dem Spieler Geld ab
    }
    if(listitem == 4) // AK47
    {
    if(preise[listitem] >= GetPlayerMoney(playerid))return SendClientMessage(playerid,COLOR_RED,"Dafür hast du nicht genug Geld!"); // Abfrage ob der Spieler Geld hat
    GivePlayerWeapon(playerid, 38, 500); //Zieht dem Spieler Geld ab
    }
    if(listitem == 5) // AK47
    {
    if(preise[listitem] >= GetPlayerMoney(playerid))return SendClientMessage(playerid,COLOR_RED,"Dafür hast du nicht genug Geld!"); // Abfrage ob der Spieler Geld hat
    SetPlayerArmour(playerid, 100);
    }
    }
    }
    }
    return 1;
    }


    if(strcmp("/shop", cmdtext, true, 10) == 0)
    {
    ShowPlayerDialog(playerid,shop,DIALOG_STYLE_LIST,"SHOP","Tausche 5 Score gegen 15000$\nTausche 10000$ gegen 3 Score\nRaketenwerfer mit 10 Schuss: $35000\nGranaten mit 10 Munition: $23000\nMiniGun mit 500 Schuss: $230.000\nKaufe 100 Rüstung für $7500","Kaufen!","Zurück");
    return 1;
    }

    Die deutsche Rechtschreibung ist Freeware, sprich du darfst sie kostenlos nutzen...
    Sie ist aber nicht Open Source, somit darfst du sie nicht verändern oder in veränderter Form veröffentlichen!


  • hast du MSN dann kann ich dir helfen skype hab ich gerade nicht ^^

    Schreib doch einfach hier rein.. xD


    //Edit: Kann mir niemand rasch helfen?...
    Hab dich in MSN addet!

    Die deutsche Rechtschreibung ist Freeware, sprich du darfst sie kostenlos nutzen...
    Sie ist aber nicht Open Source, somit darfst du sie nicht verändern oder in veränderter Form veröffentlichen!


    2 Mal editiert, zuletzt von Hijashy ()

  • Du benutzt gaarkein "case DIALOG_SHOP:"


    Das muss so sein:


    switch(dialogid)
    {
    case DIALOG_SHOP:
    {
    // DEIN CODE
    }


    case DIALOG_LOGIN: // ID Login
    {
    if(!strlen(inputtext))
    {
    ShowPlayerDialog(playerid,DIALOG_LOGIN,1,"Login","Login erforderlich:","Login","Zurück");
    return SendClientMessage(playerid,0xFFFFFFFF,"Kein Passwort!");
    // Weiterer Code.....
    }


    case .......
    {
    }


    case .....
    {
    }


    Immer so weiter.

  • Zitat

    C:\Dokumente und Einstellungen\Junior\Desktop\Exxx\GPZ.pwn(332) : error 014: invalid statement; not in switch
    C:\Dokumente und Einstellungen\Junior\Desktop\Exxx\GPZ.pwn(332) : warning 215: expression has no effect
    C:\Dokumente und Einstellungen\Junior\Desktop\Exxx\GPZ.pwn(332) : error 001: expected token: ";", but found ":"
    C:\Dokumente und Einstellungen\Junior\Desktop\Exxx\GPZ.pwn(332) : error 029: invalid expression, assumed zero
    C:\Dokumente und Einstellungen\Junior\Desktop\Exxx\GPZ.pwn(332) : fatal error 107: too many error messages on one line

    switch(dialogid)
    {


    case shop:
    {
    {
    case 1: // AK47
    {
    if(preise[listitem] >= GetPlayerScore(playerid))return SendClientMessage(playerid,COLOR_RED,"Dafür hast du nicht genug Score Punkte!"); // Abfrage ob der Spieler Geld hat
    GivePlayerMoney(playerid, 15000); //Zieht dem Spieler Geld ab
    }
    case 2: // AK47
    {
    if(preise[listitem] >= GetPlayerMoney(playerid))return SendClientMessage(playerid,COLOR_RED,"Dafür hast du nicht genug Geld!"); // Abfrage ob der Spieler Geld hat
    SetPlayerScore(playerid, GetPlayerScore(playerid)+3); //Zieht dem Spieler Geld ab
    }
    case 3: // AK47
    {
    if(preise[listitem] >= GetPlayerMoney(playerid))return SendClientMessage(playerid,COLOR_RED,"Dafür hast du nicht genug Geld!"); // Abfrage ob der Spieler Geld hat
    GivePlayerWeapon(playerid, 35, 10); //Zieht dem Spieler Geld ab
    }
    case 4: // AK47
    {
    if(preise[listitem] >= GetPlayerMoney(playerid))return SendClientMessage(playerid,COLOR_RED,"Dafür hast du nicht genug Geld!"); // Abfrage ob der Spieler Geld hat
    GivePlayerWeapon(playerid, 16, 10); //Zieht dem Spieler Geld ab
    }
    case 5: // AK47
    {
    if(preise[listitem] >= GetPlayerMoney(playerid))return SendClientMessage(playerid,COLOR_RED,"Dafür hast du nicht genug Geld!"); // Abfrage ob der Spieler Geld hat
    GivePlayerWeapon(playerid, 38, 500); //Zieht dem Spieler Geld ab
    }
    case 6: // AK47
    {
    if(preise[listitem] >= GetPlayerMoney(playerid))return SendClientMessage(playerid,COLOR_RED,"Dafür hast du nicht genug Geld!"); // Abfrage ob der Spieler Geld hat
    SetPlayerArmour(playerid, 100);
    }
    }
    }
    }
    }
    return 1;
    }


    Case 1 = Zeile 332

    Die deutsche Rechtschreibung ist Freeware, sprich du darfst sie kostenlos nutzen...
    Sie ist aber nicht Open Source, somit darfst du sie nicht verändern oder in veränderter Form veröffentlichen!


  • Habs jetzt so:


    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
    new pname[MAX_PLAYERS],accFormat[128];
    GetPlayerName(playerid,pname,sizeof pname);
    format(accFormat,sizeof accFormat,"acc/%s.sav",pname);
    if(response)
    {
    switch(dialogid)
    {
    case DIALOG_LOGIN: // ID Login
    {
    if(!strlen(inputtext))
    {
    ShowPlayerDialog(playerid,DIALOG_LOGIN,1,"Login","Login erforderlich:","Login","Zurück");
    return SendClientMessage(playerid,0xFFFFFFFF,"Kein Passwort!");
    }
    if(strcmp(inputtext,dini_Get(accFormat,"Passwort")) == 0) // Load PSW
    {
    Player[playerid][admin] = dini_Int(accFormat,"AdminLvl");
    Player[playerid][Kills] = dini_Int(accFormat,"Kills");
    Player[playerid][Deaths] = dini_Int(accFormat,"Deaths");
    Player[playerid][vip] = dini_Int(accFormat,"vip");
    GivePlayerMoney(playerid,dini_Int(accFormat,"Geld"));
    SetPlayerScore(playerid,dini_Int(accFormat,"Score"));
    Player[playerid][eingeloggt] = 1; //player is logged in now
    SendClientMessage(playerid,0xFFFFFFFF,"SERVER: Du hast dich soeben erfolgreich eingeloggt!");
    if (Player[playerid][vip] > 0)
    {
    SendClientMessage(playerid, COLOR_WHITE,"SERVER: Du bist ein Premium User :)");
    }
    if (Player[playerid][admin] > 0)
    {
    SendClientMessage(playerid, COLOR_WHITE,"SERVER: Du hast dich erfolgreich als Admin eingeloggt!");
    }
    }
    else
    {
    ShowPlayerDialog(playerid,DIALOG_LOGIN,1,"Login","Login erforderlich:","Login","Zurück");
    SendClientMessage(playerid,0xFFFFFFFF,"Das Passwort ist falsch!");
    }
    }
    case DIALOG_REG:
    {
    if(!strlen(inputtext))
    {
    ShowPlayerDialog(playerid,DIALOG_REG,1,"Registration","Registration erforderlich:","Registration!","Zurück");
    return SendClientMessage(playerid,0xFFFFFFFF,"Das Passwort ist zu kurz!");
    }
    dini_Create(accFormat);
    dini_Set(accFormat,"Passwort",inputtext);
    Player[playerid][admin] = 0 ;
    Player[playerid][eingeloggt] = 1;
    SendClientMessage(playerid,0xFFFFFFFF,"Dein Account wurde registriert, du wurdest automatisch eingeloggt!");
    GivePlayerMoney(playerid, 12000);
    }
    }
    }
    else
    {
    switch(dialogid)
    {
    case DIALOG_LOGIN:ShowPlayerDialog(playerid,DIALOG_LOGIN,1,"Login","Login erforderlich:","Login","Zurück");
    case DIALOG_REG:ShowPlayerDialog(playerid,DIALOG_REG,1,"Registration","Registration erforderlich:","Registration!","Zurück");
    }
    {
    switch(dialogid)
    {


    case shop:
    {
    if(response == 1)
    {
    if(listitem == 0) // AK47
    {
    if(preise[listitem] >= GetPlayerScore(playerid))return SendClientMessage(playerid,COLOR_RED,"Dafür hast du nicht genug Score Punkte!"); // Abfrage ob der Spieler Geld hat
    GivePlayerMoney(playerid, 15000); //Zieht dem Spieler Geld ab
    }
    if(listitem == 1) // AK47
    {
    if(preise[listitem] >= GetPlayerMoney(playerid))return SendClientMessage(playerid,COLOR_RED,"Dafür hast du nicht genug Geld!"); // Abfrage ob der Spieler Geld hat
    SetPlayerScore(playerid, GetPlayerScore(playerid)+3); //Zieht dem Spieler Geld ab
    }
    if(listitem == 2) // AK47
    {
    if(preise[listitem] >= GetPlayerMoney(playerid))return SendClientMessage(playerid,COLOR_RED,"Dafür hast du nicht genug Geld!"); // Abfrage ob der Spieler Geld hat
    GivePlayerWeapon(playerid, 35, 10); //Zieht dem Spieler Geld ab
    }
    if(listitem == 3) // AK47
    {
    if(preise[listitem] >= GetPlayerMoney(playerid))return SendClientMessage(playerid,COLOR_RED,"Dafür hast du nicht genug Geld!"); // Abfrage ob der Spieler Geld hat
    GivePlayerWeapon(playerid, 16, 10); //Zieht dem Spieler Geld ab
    }
    if(listitem == 4) // AK47
    {
    if(preise[listitem] >= GetPlayerMoney(playerid))return SendClientMessage(playerid,COLOR_RED,"Dafür hast du nicht genug Geld!"); // Abfrage ob der Spieler Geld hat
    GivePlayerWeapon(playerid, 38, 500); //Zieht dem Spieler Geld ab
    }
    if(listitem == 5) // AK47
    {
    if(preise[listitem] >= GetPlayerMoney(playerid))return SendClientMessage(playerid,COLOR_RED,"Dafür hast du nicht genug Geld!"); // Abfrage ob der Spieler Geld hat
    SetPlayerArmour(playerid, 100);
    }
    }
    }
    }
    }
    }
    return 1;
    }


    Aber es klappt trozdem nichts :(
    Wenn man was auswählt, passiert rein garnichts ;(

    Die deutsche Rechtschreibung ist Freeware, sprich du darfst sie kostenlos nutzen...
    Sie ist aber nicht Open Source, somit darfst du sie nicht verändern oder in veränderter Form veröffentlichen!


    2 Mal editiert, zuletzt von Hijashy ()