/accept taxi problem

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
  • Liebe Mitglieder ,



    Ich habe mich mal an ein Selfmade geschmissen und bin seit Stunden bei der gleichen stelle ich probiere nunmal sehr gerne aus und versuche meine
    Probleme alleine herrauszufinden. Dadurch lernt man alleine schon viel :)


    Nunja wollen wir mal zu meinem Problem vorstreiten.


    Ich habe mir einen Befehl angeschafft.


    Zitat

    /service

    Dieser funktioniert ohne weitere Probleme. In diesem wird ein Dialog angezeigt bei dem man "Taxi" auswählen kann.
    Sollte der Spieler nun Taxi auswählen wird die Variable

    Zitat

    Taxi[MAX_PLAYERS];

    Auf 1. gesetzt mit diesem Command

    Zitat

    Taxi[playerid]=1;

    Das funktioniert alles soweit , so nun wisst Ihr wie es bei mir eingespeichert wird ob jemand ein Taxi gerufen wird.


    Nun gibt es den Befehl als Taxifahrer

    Zitat

    /accept taxi

    Bei diesem komme ich auch noch etwas weiter und zwar gebe ich einen Dialog aus , mit allen Spielernamen die ein Taxi angefordert haben.




    ocmd:accepttaxi(playerid,params[])
    {
    if(GetPVarInt(playerid,"Job")==2)
    {
    if(GetPVarInt(playerid,"Taxiduty")==1)
    {
    new Aktiv =0,string[128];
    for(new i=0; i < GetMaxPlayers(); i++)
    {
    if(IsPlayerConnected(i))
    {
    if(Taxi == 1)
    {
    format(string,128,"%s\n%s",string,SpielerName(i));
    Aktiv++;
    }
    }
    }
    if(Aktiv == 0) return SendClientMessage(playerid,ROT,"Es wird derzeit kein Taxi benötigt!");
    ShowPlayerDialog(playerid,DIALOG_TAXI,DIALOG_STYLE_LIST,"Taxi",string,"Annehmen","Beenden");
    return 1;
    }
    else SendClientMessage(playerid,NORMAL,"Du bist nicht im Dienst!");
    return 1;
    }
    else SendClientMessage(playerid,NORMAL,"Du bist kein Taxifahrer!");
    return 1;
    }


    So nun weiter habe ich es noch nicht geschafft nun sollte eigentlich folgendes noch passieren.



    Sobald der Taxifahrer einen Spieler auswählt und auf "Annehmen" klickt soll zunächst eine Nachricht zu dem Spieler geschickt werden
    wer denn seinen Auftrag angenommen hat und eine Makierung auf der Karte gesetzt werden.
    Leider weiss ich nicht wie ich da anstellen soll da ich nicht weiss wie ich an die ID des ausgewählten Spielers komme...


    Könnt ihr mir vielleicht sagen wie ich an die SpielerID von dem ausgewählten Spieler in dem Dialog rankomme?


    Liebe Grüße


    Timoleini

    Einmal editiert, zuletzt von Timoleini ()

  • Schreib bitte SO :
    ocmd:accepttaxi(playerid,params[])
    {
    if(GetPVarInt(playerid,"Job")==2)
    {
    if(GetPVarInt(playerid,"Taxiduty")==1)
    {
    new Aktiv =0,string[128];
    for(new i=0; i < GetMaxPlayers(); i++)
    {
    if(IsPlayerConnected(i))
    {
    if(Taxi == 1)
    {
    format(string,128,"%s\n%s",string,SpielerName(i));
    Aktiv++;
    }
    }
    }
    if(Aktiv == 0) return SendClientMessage(playerid,ROT,"Es wird derzeit kein Taxi benötigt!");
    ShowPlayerDialog(playerid,DIALOG_TAXI,DIALOG_STYLE_LIST,"Taxi",string,"Annehmen","Beenden");
    return 1;
    }
    else SendClientMessage(playerid,NORMAL,"Du bist nicht im Dienst!");
    return 1;
    }
    else SendClientMessage(playerid,NORMAL,"Du bist kein Taxifahrer!");
    return 1;
    }
    Danke ... Sonst erkennt man Nichts !
    /ps accepttaxi ist in dem Command Zusammen :)