Wie aus diesem Befehl ein Dialog machen?

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 Abend,


    Ich möchte aus diesem Befehl ein Dialog machen zum Anklicken:

    if(strcmp(cmd, "/service", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    new x_nr[256];
    x_nr = strtok(cmdtext, idx);
    if(!strlen(x_nr)) {
    SendClientMessage(playerid, COLOR_WHITE, "|__________________ Service Namem __________________|");
    SendClientMessage(playerid, COLOR_WHITE, "Verwendung: /service [name]");
    SendClientMessage(playerid, COLOR_GREY, "Verfügbare Namen: Taxi, Müllabfuhr, Sanitäter, Tuner, ADAC");
    SendClientMessage(playerid, COLOR_WHITE, "|________________________________________________|");
    return 1;
    }
    if(strcmp(x_nr,"taxi",true) == 0)
    {
    if(TaxiDrivers < 1)
    {
    SendClientMessage(playerid, COLOR_GREY, "Es sind keine Taxifahrer im Dienst! Versuch es später noch mal!");
    return 1;
    }
    if(TransportDuty[playerid] > 0)
    {
    SendClientMessage(playerid, COLOR_GREY, "Du kannst jetzt kein Taxi rufen!");
    return 1;
    }
    GetPlayerName(playerid, sendername, sizeof(sendername));
    format(string, sizeof(string), "** %s braucht einen Taxifahrer. (Benutze /accept taxi um anzunehmen)", sendername);
    SendJobMessage(23, TEAM_AZTECAS_COLOR, string);
    SendClientMessage(playerid, COLOR_LIGHTBLUE, "* Du rufst einen Taxifahrer. Warte auf eine Antwort.");
    TaxiCall = playerid;
    return 1;
    }
    else if(strcmp(x_nr,"Müllabfuhr",true) == 0)
    {
    new dman;
    for(new i; i<GetMaxPlayers();i++)
    {
    if(PlayerInfo[i][pMember] == 22 || PlayerInfo[i][pLeader] == 22)
    {
    dman++;
    }
    }
    if(dman < 1)
    {
    SendClientMessage(playerid, COLOR_GREY, "Es sind zurzeit keine Müllmänner online");
    }
    GetPlayerName(playerid, sendername, sizeof(sendername));
    format(string, sizeof(string), "** %s braucht einen Müllmann. (Benutze /accept Müllabfuhr um anzunehmen)", sendername);
    SendRadioMessage(22, TEAM_AZTECAS_COLOR, string);
    SendClientMessage(playerid, COLOR_LIGHTBLUE, "* Du rufst die Müllabfuhr. Warte auf eine Antwort.");
    DustmanCall = playerid;
    return 1;
    }
    else if(strcmp(x_nr,"Sanitäter",true) == 0)
    {
    if(Medics < 1)
    {
    SendClientMessage(playerid, COLOR_GREY, "Es sind keine Sanitäter im Dienst! Versuch es später noch mal!");
    return 1;
    }
    GetPlayerName(playerid, sendername, sizeof(sendername));
    format(string, sizeof(string), "** %s braucht einen Sanitäter. (Benutze /accept medic um anzunehmen)", sendername);
    SendRadioMessage(4, TEAM_AZTECAS_COLOR, string);
    SendClientMessage(playerid, COLOR_LIGHTBLUE, "* Du rufst einen Sanitäter. Warte auf eine Antwort.");
    MedicCall = playerid;
    return 1;
    }
    else if(strcmp(x_nr,"Tuner",true) == 0)
    {
    if(Mechanics < 1)
    {
    SendClientMessage(playerid, COLOR_GREY, "Es sind keine Tuner im Dienst! Versuch es später noch mal!");
    return 1;
    }
    GetPlayerName(playerid, sendername, sizeof(sendername));
    format(string, sizeof(string), "** %s braucht einen Tuner. (Benutze /accept um anzunehmen)", sendername);
    SendJobMessage(7, TEAM_AZTECAS_COLOR, string);
    SendClientMessage(playerid, COLOR_LIGHTBLUE, "* Du rufst einen Tuner an. Warte auf eine Antwort.");
    MechanicCall = playerid;
    return 1;
    }
    else if(strcmp(x_nr,"ADAC",true) == 0)
    {
    if(ADAC < 1)
    {
    SendClientMessage(playerid, COLOR_GREY, "Es sind keine ADAC-Mitarbeiter im Dienst! Versuch es später noch mal!");
    return 1;
    }
    GetPlayerName(playerid, sendername, sizeof(sendername));
    format(string, sizeof(string), "** %s braucht einen ADAC. (Benutze /accept ADAC um anzunehmen)", sendername);
    SendRadioMessage(5, TEAM_AZTECAS_COLOR, string);
    SendClientMessage(playerid, COLOR_LIGHTBLUE, "* Du rufst einen ADAC an. Warte auf eine Antwort.");
    ADACCall = playerid;
    return 1;
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREY, "Unbekannter Service Befehl!");
    return 1;
    }
    }
    return 1;
    }


    Kann mir jemand zeigen, wie man das macht?


    Liebe Grüße
    Mr.X


    Diese Signatur wird erneuert.
    Bitte haben Sie ein wenig geduld...



  • So:


    oben: #define DIALOG_SERVICE


    if(strcmp(cmd, "/service", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    ShowPlayerDialog(playerid, DIALOG_SERVICE, DIALOG_STYLE_LIST, "Service", "..............................","Auswählen","Abbrechen");
    }
    }


    unter OnDialogResponse
    if(dialogid == DIALOG_SERVICE)
    {
    if(response)
    {
    if(listitem == 0)
    {
    if(TaxiDrivers < 1)
    {
    SendClientMessage(playerid, COLOR_GREY, "Es sind keine Taxifahrer im Dienst! Versuch es später noch mal!");
    return 1;
    }
    }
    if(listitem == 1)
    {
    if(TransportDuty[playerid] > 0)
    {
    SendClientMessage(playerid, COLOR_GREY, "Du kannst jetzt kein Taxi rufen!");
    return 1;
    }
    GetPlayerName(playerid, sendername, sizeof(sendername));
    format(string, sizeof(string), "** %s braucht einen Taxifahrer. (Benutze /accept taxi um anzunehmen)", sendername);
    SendJobMessage(23, TEAM_AZTECAS_COLOR, string);
    SendClientMessage(playerid, COLOR_LIGHTBLUE, "* Du rufst einen Taxifahrer. Warte auf eine Antwort.");
    TaxiCall = playerid;
    return 1;
    }
    if(listitem == 2)
    {
    if(strcmp(x_nr,"Müllabfuhr",true) == 0)
    {
    new dman;
    for(new i; i<GetMaxPlayers();i++)
    {
    if(PlayerInfo[i][pMember] == 22 || PlayerInfo[i][pLeader] == 22)
    {
    dman++;
    }
    }
    if(dman < 1)
    {
    SendClientMessage(playerid, COLOR_GREY, "Es sind zurzeit keine Müllmänner online");
    }
    GetPlayerName(playerid, sendername, sizeof(sendername));
    format(string, sizeof(string), "** %s braucht einen Müllmann. (Benutze /accept Müllabfuhr um anzunehmen)", sendername);
    SendRadioMessage(22, TEAM_AZTECAS_COLOR, string);
    SendClientMessage(playerid, COLOR_LIGHTBLUE, "* Du rufst die Müllabfuhr. Warte auf eine Antwort.");
    DustmanCall = playerid;
    return 1;
    }
    }
    if(listitem == 3)
    {
    if(strcmp(x_nr,"Sanitäter",true) == 0)
    {
    if(Medics < 1)
    {
    SendClientMessage(playerid, COLOR_GREY, "Es sind keine Sanitäter im Dienst! Versuch es später noch mal!");
    return 1;
    }
    GetPlayerName(playerid, sendername, sizeof(sendername));
    format(string, sizeof(string), "** %s braucht einen Sanitäter. (Benutze /accept medic um anzunehmen)", sendername);
    SendRadioMessage(4, TEAM_AZTECAS_COLOR, string);
    SendClientMessage(playerid, COLOR_LIGHTBLUE, "* Du rufst einen Sanitäter. Warte auf eine Antwort.");
    MedicCall = playerid;
    return 1;
    }
    }
    if(listitem == 4)
    {
    if(strcmp(x_nr,"Tuner",true) == 0)
    {
    if(Mechanics < 1)
    {
    SendClientMessage(playerid, COLOR_GREY, "Es sind keine Tuner im Dienst! Versuch es später noch mal!");
    return 1;
    }
    GetPlayerName(playerid, sendername, sizeof(sendername));
    format(string, sizeof(string), "** %s braucht einen Tuner. (Benutze /accept um anzunehmen)", sendername);
    SendJobMessage(7, TEAM_AZTECAS_COLOR, string);
    SendClientMessage(playerid, COLOR_LIGHTBLUE, "* Du rufst einen Tuner an. Warte auf eine Antwort.");
    MechanicCall = playerid;
    return 1;
    }
    }
    if(listitem == 5)
    {
    if(strcmp(x_nr,"ADAC",true) == 0)
    {
    if(ADAC < 1)
    {
    SendClientMessage(playerid, COLOR_GREY, "Es sind keine ADAC-Mitarbeiter im Dienst! Versuch es später noch mal!");
    return 1;
    }
    GetPlayerName(playerid, sendername, sizeof(sendername));
    format(string, sizeof(string), "** %s braucht einen ADAC. (Benutze /accept ADAC um anzunehmen)", sendername);
    SendRadioMessage(5, TEAM_AZTECAS_COLOR, string);
    SendClientMessage(playerid, COLOR_LIGHTBLUE, "* Du rufst einen ADAC an. Warte auf eine Antwort.");
    ADACCall = playerid;
    return 1;
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREY, "Unbekannter Service Befehl!");
    return 1;
    }
    }
    }
    }

    Einmal editiert, zuletzt von K3V1N ()