Abfrage ob er schon ein Handy hat, funktioniert 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
  • Guten Morgen,


    Also ich möchte hier abfragen ob er schon ein Handy hat wenn ja soll der jeweillige Text dazu erscheinen, aber es funktioniert nicht, man kann sich trotzdem noch weiter handys kaufen.



    if(dialogid == DIALOG_HSHOP) //SHOP
    {
    if (response == 1)
    {
    if(listitem == 0)
    {
    if(GetPlayerMoney(playerid) < 2000)
    {
    SendClientMessage(playerid, COLOR_RED,"Du hast keine 2000$!");
    return 1;
    }
    Player[playerid][Handy] = 1;
    SendClientMessage(playerid, COLOR_GREEN,"Du hast dir erfolgreich ein Nokia gekauft!");
    GivePlayerMoney(playerid, -2000);
    Player[playerid][Nummer] = random(99999);
    }
    if(listitem == 1)
    {
    if(GetPlayerMoney(playerid) < 4000)
    {
    SendClientMessage(playerid, COLOR_RED,"Du hast keine 4000$!");
    return 1;
    }
    Player[playerid][Handy] = 2;
    GivePlayerMoney(playerid, -4000);
    Player[playerid][Nummer] = random(99999);
    SendClientMessage(playerid, COLOR_GREEN,"Du hast dir erfolgreich ein Samsung gekauft!");
    }
    if(listitem == 2)
    {
    if(GetPlayerMoney(playerid) < 8000)
    {
    SendClientMessage(playerid, COLOR_RED,"Du hast keine 8000$!");
    return 1;
    }
    Player[playerid][Handy] = 3;
    GivePlayerMoney(playerid, -8000);
    Player[playerid][Nummer] = random(99999);
    SendClientMessage(playerid, COLOR_GREEN,"Du hast dir erfolgreich ein Sony Ericsson gekauft!");
    }
    if(listitem == 3)
    {
    if(GetPlayerMoney(playerid) < 12000)
    {
    SendClientMessage(playerid, COLOR_RED,"Du hast keine 12000$!");
    return 1;
    }
    Player[playerid][Handy] = 4;
    GivePlayerMoney(playerid, -12000);
    Player[playerid][Nummer] = random(99999);
    SendClientMessage(playerid, COLOR_GREEN,"Du hast dir erfolgreich ein iPhone gekauft!");
    }
    if(listitem == 4)
    {
    if(GetPlayerMoney(playerid) < 100)
    {
    SendClientMessage(playerid, COLOR_RED,"Du hast keine 100$!");
    return 1;
    }
    Player[playerid][Guthaben] +=20;
    GivePlayerMoney(playerid, -100);
    SendClientMessage(playerid, COLOR_GREEN,"Du hast dein Handy erfolgreich aufgeladen!");
    }
    }
    if(Player[playerid][Handy] < 1)
    {
    SendClientMessage(playerid,COLOR_GRAU,"Du hast bereits ein Handy.");
    }
    return 1;
    }
    return 1;
    }

  • Also so hier:



    if(dialogid == DIALOG_HSHOP) //SHOP
    {
    if (response == 1)
    {
    if(Player[playerid][Handy] < 1)
    {
    SendClientMessage(playerid,COLOR_GRAU,"Du hast bereits ein Handy.");
    }
    if(listitem == 0)
    {
    if(GetPlayerMoney(playerid) < 2000)
    {
    SendClientMessage(playerid, COLOR_RED,"Du hast keine 2000$!");
    return 1;
    }
    Player[playerid][Handy] = 1;
    SendClientMessage(playerid, COLOR_GREEN,"Du hast dir erfolgreich ein Nokia gekauft!");
    GivePlayerMoney(playerid, -2000);
    Player[playerid][Nummer] = random(99999);
    }
    if(listitem == 1)
    {
    if(GetPlayerMoney(playerid) < 4000)
    {
    SendClientMessage(playerid, COLOR_RED,"Du hast keine 4000$!");
    return 1;
    }
    Player[playerid][Handy] = 2;
    GivePlayerMoney(playerid, -4000);
    Player[playerid][Nummer] = random(99999);
    SendClientMessage(playerid, COLOR_GREEN,"Du hast dir erfolgreich ein Samsung gekauft!");
    }
    if(listitem == 2)
    {
    if(GetPlayerMoney(playerid) < 8000)
    {
    SendClientMessage(playerid, COLOR_RED,"Du hast keine 8000$!");
    return 1;
    }
    Player[playerid][Handy] = 3;
    GivePlayerMoney(playerid, -8000);
    Player[playerid][Nummer] = random(99999);
    SendClientMessage(playerid, COLOR_GREEN,"Du hast dir erfolgreich ein Sony Ericsson gekauft!");
    }
    if(listitem == 3)
    {
    if(GetPlayerMoney(playerid) < 12000)
    {
    SendClientMessage(playerid, COLOR_RED,"Du hast keine 12000$!");
    return 1;
    }
    Player[playerid][Handy] = 4;
    GivePlayerMoney(playerid, -12000);
    Player[playerid][Nummer] = random(99999);
    SendClientMessage(playerid, COLOR_GREEN,"Du hast dir erfolgreich ein iPhone gekauft!");
    }
    if(listitem == 4)
    {
    if(GetPlayerMoney(playerid) < 100)
    {
    SendClientMessage(playerid, COLOR_RED,"Du hast keine 100$!");
    return 1;
    }
    Player[playerid][Guthaben] +=20;
    GivePlayerMoney(playerid, -100);
    SendClientMessage(playerid, COLOR_GREEN,"Du hast dein Handy erfolgreich aufgeladen!");
    }
    }
    return 1;
    }
    return 1;
    }

  • if(Player[playerid][Handy] >= 0) //Größer gleich null.. Heisst, wenn Handy bereits auf 1 ist, wird SendClientMessage(playerid,COLOR_GRAU,"Du hast bereits ein Handy."); ausgegeben.



    Hab ich dir nicht gestern was gesagt?^^


    //Edit PWN Code eingefügt


    Engelsflügel am Astonkühler, als Schutz vor dem Teufel!

  • Joa ne merke gerade das macht da auch keinen Sinn.
    Mal abgesehen davon das die Abfrage an sich keinen sinn macht:
    Die Variable Player[playerid][Handy] ist ja größer als 0 wenn man gerade ein Handy hat.
    Es macht also keinen Sinn abzufragen ob Player[playerid][Handy] kleiner als 1 ist.


    Ist das 2. Problem ist das man unten ja das Guthaben aufladen kann, das würde dadurch geblockt werden und das ist natürlich nicht so toll.


    Sollte so gehen:

    //
    if(dialogid == DIALOG_HSHOP) //SHOP
    {
    if (response == 1)
    {
    if(listitem > 0 && listitem < 4 && Player[playerid][Handy] > 0)
    {
    SendClientMessage(playerid,COLOR_GRAU,"Du hast bereits ein Handy.");
    return 1;
    }
    if(listitem == 0)
    {
    if(GetPlayerMoney(playerid) < 2000)
    {
    SendClientMessage(playerid, COLOR_RED,"Du hast keine 2000$!");
    return 1;
    }
    Player[playerid][Handy] = 1;
    SendClientMessage(playerid, COLOR_GREEN,"Du hast dir erfolgreich ein Nokia gekauft!");
    GivePlayerMoney(playerid, -2000);
    Player[playerid][Nummer] = random(99999);
    }
    if(listitem == 1)
    {
    if(GetPlayerMoney(playerid) < 4000)
    {
    SendClientMessage(playerid, COLOR_RED,"Du hast keine 4000$!");
    return 1;
    }
    Player[playerid][Handy] = 2;
    GivePlayerMoney(playerid, -4000);
    Player[playerid][Nummer] = random(99999);
    SendClientMessage(playerid, COLOR_GREEN,"Du hast dir erfolgreich ein Samsung gekauft!");
    }
    if(listitem == 2)
    {
    if(GetPlayerMoney(playerid) < 8000)
    {
    SendClientMessage(playerid, COLOR_RED,"Du hast keine 8000$!");
    return 1;
    }
    Player[playerid][Handy] = 3;
    GivePlayerMoney(playerid, -8000);
    Player[playerid][Nummer] = random(99999);
    SendClientMessage(playerid, COLOR_GREEN,"Du hast dir erfolgreich ein Sony Ericsson gekauft!");
    }
    if(listitem == 3)
    {
    if(GetPlayerMoney(playerid) < 12000)
    {
    SendClientMessage(playerid, COLOR_RED,"Du hast keine 12000$!");
    return 1;
    }
    Player[playerid][Handy] = 4;
    GivePlayerMoney(playerid, -12000);
    Player[playerid][Nummer] = random(99999);
    SendClientMessage(playerid, COLOR_GREEN,"Du hast dir erfolgreich ein iPhone gekauft!");
    }
    if(listitem == 4)
    {
    if(GetPlayerMoney(playerid) < 100)
    {
    SendClientMessage(playerid, COLOR_RED,"Du hast keine 100$!");
    return 1;
    }
    Player[playerid][Guthaben] +=20;
    GivePlayerMoney(playerid, -100);
    SendClientMessage(playerid, COLOR_GREEN,"Du hast dein Handy erfolgreich aufgeladen!");
    }
    }
    return 1;
    }
    return 1;
    }


    Kurz die Abfrage erklärt:
    if(listitem > 0 && listitem < 4 && Player[playerid][Handy] > 0)
    Wenn das was er auswählt 0,1,2 oder 3 ist und er ein Handy hat, kommt die Nachricht das er bereits eines besitzt, ansonsten nicht.