Problem mit Taxicommands

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
  • Ich benutze ocmd für eine Taxi-Funktion.
    Die sieht momentan folgendermaßen aus:



    enum Duties
    {
    D_NONE,
    D_TAXI,
    };


    new Duties:PlayerDuties[MAX_PLAYERS] = D_NONE;


    ...


    ocmd:taxiduty(playerid, params[])
    {
    PlayerDuties[playerid] = D_TAXI;
    SendClientMessage(playerid,0xFFFF00AA,"Du bist nun als Taxifahrer OnDuty");
    }


    ocmd:taxi(playerid, params[])
    {
    new message[64];
    format(message,sizeof(message),"Spieler %s hat ein Taxi angefordert! Benutze /annehmen",GetPlayerName(playerid));
    new available = 0;
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(PlayerDuties[i] == D_TAXI)
    {
    printf("Spieler gefunden");
    available = 1;
    SendClientMessage(i,0x0000FFAA,message);


    }
    }

    if(available == 0)
    {
    SendClientMessage(playerid,0xFF0000AA,"Kein Taxifahrer im Dienst!");
    printf("Kein Taxi!");
    }
    else
    {
    printf("Taxis informiert!");
    SendClientMessage(playerid,0x0000FFAA,"Die Taxifahrer wurden informiert!");
    }
    }



    Obwohl kein Taxifahrer onduty ist, kommt immer: Die Taxifahrer wurden informiert.


    Die Serverkonsole zeigt nur: Taxis informiert, nicht aber "Spieler gefunden".


    Es ist mir unklar warum available nicht 0 ist, obwohl es nach der Initialisierung nicht verändert wurde.


    Ich hoffe jmd kann mir helfen.
    mfg

  • Die Variable D_TAXI hat genauso, wie D_NONE den Wert 0. Am besten du schreibst in dein Spieler Informations Enum noch "JobDuty" oder ähnliches. Dann setzt du, wenn der Spieler Job Duty geht die Variable auf einen entsprechenden Wert.
    Außerdem solltest du in der for Schleife noch IsPlayerConnected(i) abfragen, weil der Wert in den Spieler Variablen nach dem Logout erhalten bleiben (Außer du setzt alle Variablen auf 0).


    Mfg,
    UncleSub