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