Problem mit Listendialog

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
  • Ayo Ladys, ich hab folgenes problem, ich will wenn ich das erste Listitem anklicke an den angegeben ort gebracht werden, aber das tut er die ganze zeit nicht:(


    if(dialogid == DIALOG_DM)
    {
    if(response)
    {
    switch(dialogid)
    {
    case 1:
    {
    switch(listitem)
    {
    case 0:
    {
    new string[128], SName[MAX_PLAYER_NAME];
    GetPlayerName(playerid, SName, sizeof SName);
    format(string, sizeof string,"{BD0000}Spieler{FFFFFF} %s {BD0000}ist nun in{FFFFFF} /DM1 {BD0000}-{FFFFFF} Deagle/Shotgun",SName);
    SendClientMessageToAll(0xFFFFFFFF,string);


    DMArena[playerid] = 1;
    SetPlayerVirtualWorld(playerid,1);
    SetPlayerPos(playerid,1357.8770,2159.1887,11.0156); // DM Arena Spawn
    ResetPlayerWeapons(playerid);
    GivePlayerWeapon(playerid, 24, 999);
    GivePlayerWeapon(playerid, 25, 999);
    SetPlayerHealth(playerid,100);
    SetPlayerArmour(playerid,100);
    return 1;
    }
    }
    }
    }
    }
    else
    {
    SendClientMessage(playerid,0xFFFA00FF,"{6863BD}Der Login ist fehlgeschlagen, da du ihn abgebrochen hast!");
    return 1;
    }
    }


    ich hab mehrere Orte, es sollte nur erstmal für einen case funktionieren, den rest muss ich ja nur genau so machen.
    Und nicht wegen der else Message wundern hatte ich testweise benutzt



    ich hab schon alles probiert, bitte um hilfe, ich verzweifel hier :( ;(

  • //EDIT: Hab was übersehen


    Mach das mal so:


    if(dialogid == DIALOG_DM)
    {
    if(response)
    {
    switch(listitem)
    {
    case 0:
    {
    new string[128], SName[MAX_PLAYER_NAME];
    GetPlayerName(playerid, SName, sizeof SName);
    format(string, sizeof string,"{BD0000}Spieler{FFFFFF} %s {BD0000}ist nun in{FFFFFF} /DM1 {BD0000}-{FFFFFF} Deagle/Shotgun",SName);
    SendClientMessageToAll(0xFFFFFFFF,string);


    DMArena[playerid] = 1;
    SetPlayerVirtualWorld(playerid,1);
    SetPlayerPos(playerid,1357.8770,2159.1887,11.0156); // DM Arena Spawn
    ResetPlayerWeapons(playerid);
    GivePlayerWeapon(playerid, 24, 999);
    GivePlayerWeapon(playerid, 25, 999);
    SetPlayerHealth(playerid,100);
    SetPlayerArmour(playerid,100);
    }
    }
    }
    }


    PS: Hi kleiner Thunfisch :love:

    ktos-dev.de
    Webentwicklung & Gestaltung uvm.

    Einmal editiert, zuletzt von Nico65 ()

  • if(dialogid == DIALOG_DM)
    {
    if(response)
    {
    switch(dialogid)
    {
    case 0:
    {
    switch(listitem)
    {
    case 0:
    {
    new string[128], SName[MAX_PLAYER_NAME];
    GetPlayerName(playerid, SName, sizeof SName);
    format(string, sizeof string,"{BD0000}Spieler{FFFFFF} %s {BD0000}ist nun in{FFFFFF} /DM1 {BD0000}-{FFFFFF} Deagle/Shotgun",SName);
    SendClientMessageToAll(0xFFFFFFFF,string);


    DMArena[playerid] = 1;
    SetPlayerVirtualWorld(playerid,1);
    SetPlayerPos(playerid,1357.8770,2159.1887,11.0156); // DM Arena Spawn
    ResetPlayerWeapons(playerid);
    GivePlayerWeapon(playerid, 24, 999);
    GivePlayerWeapon(playerid, 25, 999);
    SetPlayerHealth(playerid,100);
    SetPlayerArmour(playerid,100);
    return 1;
    }
    }
    }
    }
    }
    else
    {
    SendClientMessage(playerid,0xFFFFFFFF,"{6863BD}Der Login ist fehlgeschlagen, da du ihn abgebrochen hast!");
    return 1;
    }
    }


    Habs jetzt so aber geht immernoch nicht:S


    PS: i love u too <3
    komm TS:)

  • Vielleicht solltest Du Dir Deinen Code mal genau anschauen!


    Warum machst Du ne if-Abfrage für die DialogID und dannach noch switch(dialogid)?!
    Das ergibt keinen Sinn!


    So sollte es aussehen und auch funktionieren!



    if(dialogid == DIALOG_DM){
    if(response){
    switch(listitem){
    case 0:{
    new string[128], SName[MAX_PLAYER_NAME];
    GetPlayerName(playerid, SName, sizeof SName);
    format(string, sizeof string,"{BD0000}Spieler{FFFFFF} %s {BD0000}ist nun in{FFFFFF} /DM1 {BD0000}-{FFFFFF} Deagle/Shotgun",SName);
    SendClientMessageToAll(0xFFFFFFFF,string);
    DMArena[playerid] = 1;
    SetPlayerVirtualWorld(playerid,1);
    SetPlayerPos(playerid,1357.8770,2159.1887,11.0156); // DM Arena Spawn
    ResetPlayerWeapons(playerid);
    GivePlayerWeapon(playerid, 24, 999);
    GivePlayerWeapon(playerid, 25, 999);
    SetPlayerHealth(playerid,100);
    SetPlayerArmour(playerid,100);
    return 1;
    }
    }
    }
    else return SendClientMessage(playerid,0xFFFA00FF,"{6863BD}Abgebrochen");
    }


    Lern am besten die Basics nochmal oder schau Dir Tutorials an wie man switch und case benutzt.
    Und vorallem auch, wie man Dialoge erstellt und verwendet!


    Freundliche Grüße
    Hardcore


  • Yay funktioniert :)
    Bin halt noch ziemlich neu dabei mitm Scripten, hab im SA:MP-Wiki geschaut, da wurds so erklärt ^^

  • Sehr schön. ;)


    Ehm.. Ja.. Ich glaube nicht das das Wiki gesagt hat das Du switch(dialogid) und if(dialogid zugleich benutzen sollst^^
    Falls Du da anderer Meinung bist, schik mir mal den Link per PN.. :D

    Freundliche Grüße
    Hardcore