for(new i = 0; i<BlitzerIDS[9]; i++)
{
if(BlitzerIDS[i] == 1)
{
SendClientMessage(playerid, COLOR_GRAD2,"HQ:Du kannst keinen Blitzer mehr aufstellen!, es sind schon 10 Blitzer registriert!");
return 1;
}
}
Sobald nur einer registriert ist, wird returned.
Wenn ich gerade keinen Denkfehler habe, wird die Schleife also nicht richtig durchlaufen wie sie durchlaufen werden sollte. Zudem wird alles was hinter der Schleife kommt ebenfalls nicht fortgeführt.
Probier mal folgendes...
Hab übrigens die Klammern kommentiert, weil das bei mir ein bisschen unübersichtlich ist..man soll sich in dem Klammerhaufen ja auch zurecht finden xD
if(strcmp(cmdtext,"/setblitzer",true) == 0)
{
if(IsPlayerConnected(playerid))
{
new a = 0; //neuer Zähler damit die Schleife immer durchläuft und die exakte Zahl anzeigen kann, wie viele Blitzer schon stehen
for(new i = 0; i<BlitzerIDS[9]; i++)
{
if(BlitzerIDS[i] == 1)
{
a++; //zähler erhöhen, wenn Blitzer gefunden.
}
}
if(a == 10) //wenn 10 Blitzer aufgestellt sind
{
SendClientMessage(playerid, COLOR_GRAD2,"HQ:Du kannst keinen Blitzer mehr aufstellen!, es sind schon 10 Blitzer registriert!");
}
else //wenn weniger als 10 Blitzer stehen
{
if(IsPlayerInAnyVehicle(playerid)) //wenn Spieler im Auto
{
SendClientMessage(playerid, COLOR_GRAD2,"Du kannst nur zu Fu? einen Blitzer aufstellen!");
}
else //wenn Spieler zu Fuß
{
if(BlitzAble[playerid] == 1) //wenn Spieler schon einen Blitzer hat
{
SendClientMessage(playerid, COLOR_GRAD2,"Du hast bereits einen Blitzer aufgebaut!(/removeblitzer um ihn abzubauen!)");
}
else //wenn Spieler noch keinen Blitzer hat
{
if(PlayerInfo[playerid][pMember] == 15 || PlayerInfo[playerid][pLeader] == 15 || IsACop(playerid))
{
if(PlayerInfo[playerid][pRank] >= 5 && OnDuty[playerid] == 1)
{
ShowPlayerDialog(playerid, Dialog_Blitz,DIALOG_STYLE_LIST,"Blitzer Men?-Blitzer Aufstellen","Blitzer mit 75 KM/H Begrenzung\nBlitzer mit 90 KM/H Begrenzung\nBlitzer mit 110 KM/H Begrenzung","Ausw?hlen","Abbruch");
}
else
{
SendClientMessage(playerid,COLOR_GRAD2,"Du kannst keinen Blitzer aufstellen, da du noch nicht Rang 5 bist oder Off /duty bist!!");
}
}
else
{
SendClientMessage(playerid, COLOR_GRAD2,"Du bist kein Cop/FBI/Soldat oder Ordnungsbeamter!");
}
} //wenn Spieler noch keinen Blitzer hat
} //Wenn Spieler zu Fuß
} //wenn weniger als 10 Blitzer stehen
} //Wenn Spieler connected
return 1;
}
if(strcmp(cmdtext,"/removeblitzer",true) == 0)
{
if(BlitzAble[playerid] == 0)
{
SendClientMessage(playerid, COLOR_GRAD2,"Du hast noch keinen Blitzer aufgestellt!");
}
else
{
if(PlayerInfo[playerid][pMember] == 15 || PlayerInfo[playerid][pLeader] == 15 || IsACop(playerid))
{
RemoveBlitzer(playerid);
for(new i = 0; i<MAX_PLAYERS; i++)
{
if(IsACop(i) || PlayerInfo[i][pMember] == 24 || PlayerInfo[i][pLeader] == 24)
{
GetPlayerName(playerid, playername,sizeof(playername));
format(string,sizeof(string),"[HQ]:%s hat seinen Blitzer abgebaut!", playername);
RemoveBlitzer(playerid);
SendClientMessage(i, TEAM_BLUE_COLOR,string);
}
}
}
}
return 1;
}
//edit:
Ich weiß, weder die kürzeste, schnellste, schönste noch tollste Variante,
aber immerhin eine sehr übersichtliche (bis auf dass ich die Einrückungen an einer Stelle gefailt habe, aber das schafft ihr schon :D)