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;
}