Simples dialog 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
  • Ich habe ein simples Waffen Dialog System gemacht.
    Doch wenn ich bestätigen drücke bekomme ich keine Waffen, warum?
    Hier mal der Code:

    {
    if(response)
    {
    switch(dialogid)
    {
    case 1:
    {
    switch(listitem)
    {
    case 0:
    {
    GivePlayerWeapon(playerid,1,1);
    }
    case 1:
    {
    GivePlayerWeapon(playerid,2,1);
    }
    case 2:
    {
    GivePlayerWeapon(playerid,3,1);
    }
    case 3:
    {
    GivePlayerWeapon(playerid,4,1);
    }
    case 4:
    {
    GivePlayerWeapon(playerid,5,1);
    }
    case 5:
    {
    GivePlayerWeapon(playerid,6,1);
    }
    case 6:
    {
    GivePlayerWeapon(playerid,7,1);
    }
    case 7:
    {
    GivePlayerWeapon(playerid,8,1);
    }
    case 8:
    {
    GivePlayerWeapon(playerid,9,1);
    }
    case 9:
    {
    GivePlayerWeapon(playerid,10,1);
    }
    case 10:
    {
    GivePlayerWeapon(playerid,11,1);
    }
    case 11:
    {
    GivePlayerWeapon(playerid,14,1);
    }
    case 12:
    {
    GivePlayerWeapon(playerid,15,1);
    }
    case 13:
    {
    GivePlayerWeapon(playerid,16,100);
    }
    case 14:
    {
    GivePlayerWeapon(playerid,18,100);
    }
    case 15:
    {
    GivePlayerWeapon(playerid,22,1000);
    }
    case 16:
    {
    GivePlayerWeapon(playerid,23,1000);
    }
    case 17:
    {
    GivePlayerWeapon(playerid,24,1000);
    }
    case 18:
    {
    GivePlayerWeapon(playerid,25,500);
    }
    case 19:
    {
    GivePlayerWeapon(playerid,26,500);
    }
    case 20:
    {
    GivePlayerWeapon(playerid,27,500);
    }
    case 21:
    {
    GivePlayerWeapon(playerid,28,5000);
    }
    case 22:
    {
    GivePlayerWeapon(playerid,29,5000);
    }
    case 23:
    {
    GivePlayerWeapon(playerid,30,5000);
    }
    case 24:
    {
    GivePlayerWeapon(playerid,31,500);
    }
    case 25:
    {
    GivePlayerWeapon(playerid,32,5000);
    }
    case 26:
    {
    GivePlayerWeapon(playerid,33,500);
    }
    case 27:
    {
    GivePlayerWeapon(playerid,35,10);
    }
    case 28:
    {
    GivePlayerWeapon(playerid,37,5000);
    }
    case 29:
    {
    GivePlayerWeapon(playerid,38,500);
    }
    case 30:
    {
    GivePlayerWeapon(playerid,39,500);
    }
    case 31:
    {
    GivePlayerWeapon(playerid,40,500);
    }
    case 32:
    {
    GivePlayerWeapon(playerid,42,500);
    }
    case 33:
    {
    GivePlayerWeapon(playerid,46,1);
    }
    }
    }
    }
    }
    return 1;
    {


    Hat keine Ahnung von Pawn wie 95% der User und ist trotzdem hier.
    Ironie des Schicksals.

  • if(response)
    {
    switch(dialogid)
    {
    }
    }


    wo steckt da der sinn?


    das muss
    switch(dialogid)
    {
    case 1:
    {
    if(response)
    {
    }
    }
    }
    heißen

    "Bevor ich mir Informationen aus der "Bild" hole,
    werde ich anfangen, Wahlergebnisse danach vorauszusagen,
    neben welchen Busch unsere Katze gepinkelt hat."

    Margarete Stokowski

  • Es muss auch if(response) sein und nicht switch(response) !


    if(dialogid == DEINEDIALOGID){ if(response == 0) { soll passieren wenn keine antwort gegeben wurdereturn 1; } if(response == 1) { soll passieren, wenn eine Antwort gegeben wurde }}


    Edit: Google Chrome wird vom Forum wohl nicht wirklich gemocht ^^

  • if(response ==0) bzw if(!response) ist der 2. Button und nicht wenn keine Antwort gegeben wurde D

    "Bevor ich mir Informationen aus der "Bild" hole,
    werde ich anfangen, Wahlergebnisse danach vorauszusagen,
    neben welchen Busch unsere Katze gepinkelt hat."

    Margarete Stokowski

  • Dann wurde ja auch keine Antwort gegeben ;) Das ist ja quasi bei allen der Abbrechen Button :P


    EDIT:


    Erklärung: Response = Antwort (Übersetzung)


    das ! bei if(! bedeutet Gegenteil bzw ungleich.
    Wie z.B.: auch bei einer PHP if-Abfrage [ if(0 != 1) ].



    Was ist also der Fall, wenn eine (Ab)Frage nicht beantwortet wurde?
    => Keine Antwort ;)

  • So ich habe es mal anders probiert :
    {
    if(dialogid == DIALOG_GUN1)
    {
    if(response)
    {
    if(listitem == 0)
    {
    GivePlayerWeapon(playerid,1,1);
    }
    if(listitem == 1)
    {
    GivePlayerWeapon(playerid,2,1);
    }
    if(listitem == 2)
    {
    GivePlayerWeapon(playerid,3,1);
    }
    if(listitem == 3)
    {
    GivePlayerWeapon(playerid,4,1);
    }
    if(listitem == 4):
    {
    GivePlayerWeapon(playerid,5,1);
    }
    if(listitem == 5)
    {
    GivePlayerWeapon(playerid,6,1);
    }
    if(listitem == 6)
    {
    GivePlayerWeapon(playerid,7,1);
    }
    if(listitem == 7)
    {
    GivePlayerWeapon(playerid,8,1);
    }
    if(listitem == 8)
    {
    GivePlayerWeapon(playerid,9,1);
    }
    if(listitem == 9)
    {
    GivePlayerWeapon(playerid,10,1);
    }
    if(listitem == 10)
    {
    GivePlayerWeapon(playerid,11,1);
    }
    if(listitem == 11)
    {
    GivePlayerWeapon(playerid,14,1);
    }
    if(listitem == 12)
    {
    GivePlayerWeapon(playerid,15,1);
    }
    if(listitem == 13)
    {
    GivePlayerWeapon(playerid,16,100);
    }
    if(listitem == 14)
    {
    GivePlayerWeapon(playerid,18,100);
    }
    if(listitem == 15)
    {
    GivePlayerWeapon(playerid,22,1000);
    }
    if(listitem == 16)
    {
    GivePlayerWeapon(playerid,23,1000);
    }
    if(listitem == 17)
    {
    GivePlayerWeapon(playerid,24,1000);
    }
    if(listitem == 18)
    {
    GivePlayerWeapon(playerid,25,500);
    }
    if(listitem == 19)
    {
    GivePlayerWeapon(playerid,26,500);
    }
    if(listitem == 20)
    {
    GivePlayerWeapon(playerid,27,500);
    }
    if(listitem == 21)
    {
    GivePlayerWeapon(playerid,28,5000);
    }
    if(listitem == 22)
    {
    GivePlayerWeapon(playerid,29,5000);
    }
    if(listitem == 23)
    {
    GivePlayerWeapon(playerid,30,5000);
    }
    if(listitem == 24)
    {
    GivePlayerWeapon(playerid,31,500);
    }
    if(listitem == 25)
    {
    GivePlayerWeapon(playerid,32,5000);
    }
    if(listitem == 26)
    {
    GivePlayerWeapon(playerid,33,500);
    }
    if(listitem == 27)
    {
    GivePlayerWeapon(playerid,35,10);
    }
    if(listitem == 28)
    {
    GivePlayerWeapon(playerid,37,5000);
    }
    if(listitem == 29)
    {
    GivePlayerWeapon(playerid,38,500);
    }
    if(listitem == 30)
    {
    GivePlayerWeapon(playerid,39,500);
    }
    if(listitem == 31)
    {
    GivePlayerWeapon(playerid,40,500);
    }
    if(listitem == 32)
    {
    GivePlayerWeapon(playerid,42,500);
    }
    if(listitem == 33)
    {
    GivePlayerWeapon(playerid,46,1);
    }
    }
    return 1;
    }


    jetzt bekomme ich diese Fehler:



    C:\Users\Pillow\Desktop\samp03dsvr_RC7_win32\gamemodes\Test.pwn(401) : error 029: invalid expression, assumed zero
    C:\Users\Pillow\Desktop\samp03dsvr_RC7_win32\gamemodes\Test.pwn(524) : error 029: invalid expression, assumed zero
    C:\Users\Pillow\Desktop\samp03dsvr_RC7_win32\gamemodes\Test.pwn(524) : error 004: function "OnPlayerClickPlayer" is not implemented
    C:\Users\Pillow\Desktop\samp03dsvr_RC7_win32\gamemodes\Test.pwn(528) : error 030: compound statement not closed at the end of file (started at line 381)
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase


    4 Errors.


    Hat keine Ahnung von Pawn wie 95% der User und ist trotzdem hier.
    Ironie des Schicksals.