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