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
  • Ich kapier dein Problem nicht :/ Erklär mal richitg, dann helf ich dir.

  • Zeig mal all deine Dialog Id's.



    //if(dialogid==04041) {



    Wieso ist das auskommentiert ?
    Und wieso beginnst du deine Dialogis mit einer 0 ?

    ,,Die besten Dinge im Leben sind nicht die, die man für Geld bekommt.''

    Albert Einstein

  • #define DIALOG_LOGIN 3
    #define DIALOG_REG 4
    #define DIALOG_DONATOR 5



    Mein Problem ist, Wenn ich das 1. Dialog offen habe, GANZ UNTEN steht ja VIP wenn ich das anklicke kommt ja ein 2. Dialog. Und wenn ich etwas vom Dialog anklicke bekomme ich auch das aus dem 1. Dialog

  • Dann liegt es am Dialogresponse. Da ist was falsch.. Ich schau mal durch.

  • Änder die Dialog ID bzw definiere eine neue .



    #define DIALOG_LOGIN 3
    #define DIALOG_REG 4
    #define DIALOG_DONATOR 5
    #define WAFKAUF 6


    ---




    if(strcmp("/buy",cmdtext,true,10) == 0) { ShowPlayerDialog(playerid,WAFKAUF,DIALOG_STYLE_LIST,"{FF0000}============Shop============","Desert Eagle (5000$)\nColt (2000$)\nMP5 (5000$)\nAK-47 (9000$)\nSpas12 Shotgun (10000$)\nSniper gewehr (6000$)\nVIP\n","Kaufen","Abbrechen"); return 1; }



    ---



    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {


    if(dialogid==WAFKAUF) {
    if(response)
    {
    if(listitem==0) { // Deagle
    if(GetPlayerMoney(playerid) < 5000) return SendClientMessage(playerid, 0xFFFFFF, "Du hast nicht genug Geld!");
    GivePlayerWeapon(playerid,24,21);
    GivePlayerMoney(playerid,-5000);
    SendClientMessage(playerid,COLOR_GREEN,"Desert Eagle gekauft für 5000$.");
    }
    if(listitem==1) { // COLT 45
    if(GetPlayerMoney(playerid) < 2000) return SendClientMessage(playerid, 0xFFFFFF, "Du hast nicht genug Geld!");
    GivePlayerWeapon(playerid,22,68);
    GivePlayerMoney(playerid,-2000);
    SendClientMessage(playerid,COLOR_GREEN,"Colt gekauft für 2000$.");
    }
    if(listitem==2) { // MP5K
    if(GetPlayerMoney(playerid) < 5000) return SendClientMessage(playerid, 0xFFFFFF, "Du hast nicht genug Geld!");
    GivePlayerWeapon(playerid,29,60);
    GivePlayerMoney(playerid,-5000);
    SendClientMessage(playerid,COLOR_GREEN,"MP5 gekauft für 5000$.");
    }
    if(listitem==3) { // AK47
    if(GetPlayerMoney(playerid) < 9000) return SendClientMessage(playerid, 0xFFFFFF, "Du hast nicht genug Geld!");
    GivePlayerWeapon(playerid,30,60);
    GivePlayerMoney(playerid,-9000);
    SendClientMessage(playerid,COLOR_GREEN,"AK-47 gekauft für 9000$.");
    }
    if(listitem==4) { // SPAS12
    if(GetPlayerMoney(playerid) < 10000) return SendClientMessage(playerid, 0xFFFFFF, "Du hast nicht genug Geld!");
    GivePlayerWeapon(playerid,27,21);
    GivePlayerMoney(playerid,-10000);
    SendClientMessage(playerid,COLOR_GREEN,"Spas 12 Shotgun gekauft für 10000$.");
    }
    if(listitem==5) { // SNIPER
    if(GetPlayerMoney(playerid) < 6000) return SendClientMessage(playerid, 0xFFFFFF, "Du hast nicht genug Geld!");
    GivePlayerWeapon(playerid,34,25);
    GivePlayerMoney(playerid,-6000);
    SendClientMessage(playerid,COLOR_GREEN,"Sniper gewehr gekauft für 4000$.");
    }
    if(listitem==6) { // VIP
    if(Player[playerid][VIP] < 1) return SendClientMessage(playerid,COLOR_RED,"Du bist kein VIP User!");
    ShowPlayerDialog(playerid,DIALOG_DONATOR,DIALOG_STYLE_LIST,"VIP","50% Rüstung ($1000)\n Tec9 ($2000)\nM4 ($25000)","Kaufen","Abbrechen");
    }
    }


    if(dialogid == DIALOG_DONATOR)
    {
    if(response)
    {
    switch(listitem)
    {
    case 0:
    {
    if(Player[playerid][VIP] < 1) return SendClientMessage(playerid,COLOR_RED,"Du bist kein VIP User!");
    SetPlayerArmour(playerid,50);
    }
    case 1:
    {
    if(Player[playerid][VIP] < 1) return SendClientMessage(playerid,COLOR_RED,"Du bist kein VIP User!");
    if(GetPlayerMoney(playerid) < 2000) return SendClientMessage(playerid, 0xFFFFFF, "Du hast nicht genug Geld!");
    GivePlayerWeapon(playerid,32,250);
    GivePlayerMoney(playerid,-2000);
    SendClientMessage(playerid,COLOR_GREEN,"Tec9 gekauft für 2000$.");
    }
    case 2:
    {
    if(Player[playerid][VIP] < 1) return SendClientMessage(playerid,COLOR_RED,"Du bist kein VIP User!");
    if(GetPlayerMoney(playerid) < 2500) return SendClientMessage(playerid, 0xFFFFFF, "Du hast nicht genug Geld!");
    GivePlayerWeapon(playerid,31,250);
    GivePlayerMoney(playerid,-2500);
    SendClientMessage(playerid,COLOR_GREEN,"M4 gekauft für 2500$.");
    }
    }
    }
    }





    Dein Fehler lag daran das du die If Abfrage auskommentiert hast die nach der ID fragt d.h. beim Aufruf von Ondialogresponse wurde ohne AbFrage der Code ausgeführt.
    Ich habe dir jetzt eine ID definiert und die if abfrage wieder auskommentiert, ich hoffe ich konnte dir weiterhelfen und dir deinen fehler klar machen ;)


    mfg

    ,,Die besten Dinge im Leben sind nicht die, die man für Geld bekommt.''

    Albert Einstein

  • Nicht komplett weg machen ..
    Nur die "//" weg machen.
    Der Fehler der jetzt kommt sagt nichts anderes aus das du OnDialogResponse nicht geschlossen hast. ( } )

    ,,Die besten Dinge im Leben sind nicht die, die man für Geld bekommt.''

    Albert Einstein