dialog list aktualisieren

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 Tag


    Ich würde gerne wissen wie man so eine dialogliste aktualisiert. also ich meine damit das etwas ins dialog dazu kommt bzw. weggeht.
    wenn zum beispiel jemand ein taxi nruft, soll sein name in einer dialogliste stehen. ruft nun nocheiner ein taxi, soll er in die liste dazu kommen..
    wenn nun ein taxifahrer jemand aus der liste auswählt, soll er wieder verschwinden aus der liste. das nächste problem wäre dann beim annehmen von leuten aus der liste.
    wie muss das dann beim antworten einer dialoglist aussehen, wo ich noch extra die listitem abfragen muss..


    ich hoffe mir kann da einer helfen.. bisher habe ich das taxisystem im offenen chat. ruft einer, wird es im text angezeigt und mann muss es annehmen, man kann nicht nachschauen wer alles gerufen hat..
    das habe ich bisher:


    OnPlayerCommandText()
    {
    if(strcmp("/service", cmdtext, true, 10) == 0)
    {
    ShowPlayerDialog(playerid,DIALOG_SERVICE,DIALOG_STYLE_LIST,"Service","Taxi","Wählen","Abbrechen");
    }
    if(strcmp("/cancel", cmdtext, true, 10) == 0)
    {
    ShowPlayerDialog(playerid,DIALOG_CANCEL,DIALOG_STYLE_LIST,"Was Wollen sie Canceln?","Taxi","Wählen","Abbrechen");
    }
    return 1;
    }


    OnDialogResponse(...)
    {
    if(dialogid == DIALOG_SERVICE)
    {
    if(response)
    {
    if(listitem == 0)
    {
    if(needtaxi[playerid] == 0)
    {
    new str1[256],name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(str1,sizeof(str1),"%s (%d) Benötigt ein Taxi nahe %s (%s). Benutzte /taxiannehmen, um den Anruf engenenzunehmen!",name, playerid ,ReturnPlayerZone(playerid), ReturnPlayerMainZone(playerid));
    needtaxi[playerid] = 1;
    SendClientMessage(playerid,türkis,"Sie haben ein Taxi geruden, warten sie auf eine Antwort!");
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(gTeam[i] == 1)
    {
    SendClientMessage(i,türkis,str1);
    }
    }
    }
    else
    {
    SendClientMessage(playerid,0xFF0000FF,"Sie haben bereits ein Taxi gerufen!");
    }
    }
    }
    }
    if(dialogid == DIALOG_CANCEL)
    {
    if(response)
    {
    if(listitem == 0)
    {
    SendClientMessage(playerid,0xFFFFFFFF,"Taxianfrage gecancelt!");
    needtaxi[playerid] = 0;
    }
    }
    }
    return 1;
    }


    dcmd_taxiannehmen(playerid,params[])
    {
    new pID;
    if(sscanf(params, "u", pID))
    {
    return SendClientMessage(playerid,0xFF0000FF,"Benutzung: /taxiannehmen [ID]");
    }
    if(!IsPlayerConnected(pID))
    {
    return SendClientMessage(playerid,0xFF0000FF,"Ungültige Id!");
    }
    if(needtaxi[pID] == 0)
    {
    return SendClientMessage(playerid,0xFF0000FF,"Dieser Spieler benötigt kein Taxi!");
    }
    if(ptaxi[playerid] == 0)
    {
    return SendClientMessage(playerid,0xFF0000FF,"Du musst /taxi benutzten um Anrufe anzunehmen!");
    }
    if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER)
    {
    return SendClientMessage(playerid,0xFF0000FF,"Du musst der Fahrer eines Taxi´s sein!");
    }
    if(taxicheck[playerid] == 1)
    {
    return SendClientMessage(playerid,0xFF0000FF,"Du hast bereits ein Anruf angenommen!");
    }
    else
    {
    new aname[MAX_PLAYER_NAME],bname[MAX_PLAYER_NAME],str1[256],str2[256];
    GetPlayerName(playerid,aname,sizeof(aname));
    GetPlayerName(pID,bname,sizeof(bname));
    format(str1,sizeof(str1),"Sie haben den Anruf von %s (%d) angenommen, sie haben 3 Minuten Zeit!",bname, pID);
    format(str2,sizeof(str2),"%s (%d) hat ihren Anruf angenommen und wird in kürze Eintreffen!",aname, playerid);
    SendClientMessage(playerid,türkis,str1);
    SendClientMessage(pID,türkis,str2);
    needtaxi[pID] = 0;
    new Float:x1, Float:y1, Float:z1;
    GetPlayerPos(pID,x1,y1,z1);
    SetPlayerCheckpoint(playerid,x1,y1,z1,5);
    taxicheck[playerid] = 1;
    taxicount[playerid] = 181;
    taxicountdown(playerid);
    }
    return 1;
    }