listitems

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


    Wenn jemand ein Taxi ruft, wird dieser in einer Dialogliste angezeigt. nun würde ich gerne, wenn man denjenigen annimt, also in der dialog liste auswählt, das diese position abgefragt wird. nun giebt es da das problem mit der playerid. ich muss ja die playerid angeben wenn ich von jemanden die position abfragen will, und da habe ich das problem.


    kann mir eine rhelfen? also wenn ich einen in einer liste aussuche, das auch die position von denjenigem abgefragt wird.

  • Ich habe das mit einem enum gelöscht:

    enum dialog
    {
    lastid,
    }


    new pDialog[MAX_PLAYERS][dialog];


    Jetzt speicherst du die playerid in "lastid".
    Dann kannst du Sie bei OnDialogResponse einfach auslesen.


    P.S. Du kannst auch SetPVar & GetPVar benutzen.

  • ich weiß mit SetpVar nichts anzufangen..
    ich weiß auch nicht genau wie ich das dann machen muss im dialog.. könntest du mir da vllt helfen? hier ein teil vom taxi system.. habs schon selber probiert aber es net hinbekommen:


    new ptaxi[MAX_PLAYERS];//ob er als Taxifahrer unterwegs ist
    new needtaxi[MAX_PLAYERS];//ob er ein Taxi gerufen hat.
    new taxicheck[MAX_PLAYERS];//taxicheckpoint
    new taxicount[MAX_PLAYERS];//die 180 sekunden die ablaufen


    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");
    }
    if(strcmp("/taxi", cmdtext, true, 10) == 0)
    {
    if(gTeam[playerid] == 1)
    {
    for(new j = 0;j<sizeof taxiauto;j++)
    {
    new vehicleid = GetPlayerVehicleID(playerid);
    if(vehicleid == taxiauto[j])
    {
    if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
    {
    if(ptaxi[playerid] == 0)
    {
    SendClientMessage(playerid,0xFFFFFFFF,"Du Kannst nun Taxianrufe mit /taxiannehmen entgegennehmen!");
    ptaxi[playerid] = 1;
    }
    else
    {
    SendClientMessage(playerid,0xFFFFFFFF,"Du kannst nun keine Taxianrufe mehr engegennehmen!");
    ptaxi[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;
    }


    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
    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;
    }