Schönen guten Tag,
ich habe in meinem Copsystem drei Befehle, einmal /rb (=/roadblock), /rrb (=/roadunblock) und /rrball (=/roadunblockall).
Allerdings funktioniert nur ein Befehl, das wäre der Befehl zum erstellen der Roadblock. (/rb) Die anderen Befehle funktionieren
nicht, da sie die Straßensperre/n nicht entfernt. Hier die Befehle:
if(strcmp(cmdtext, "/roadblock", true)==0 || strcmp(cmdtext, "/rb", true)==0)
{
if (!IsACop(playerid)) return SendClientMessage(playerid, COLOR_GREY, "Du bist kein Cop!");
if (PlayerInfo[playerid][pRank] < 1)
{
SendClientMessage(playerid, COLOR_GREY, "Du musst mindestens Rang 1 haben, um diesen Befehl nutzen zu können!");
return 1;
}
if (PlayerInfo[playerid][pRoadblock] != 0) return SendClientMessage(playerid, COLOR_GREY, "Du kannst nur eine Straßensperre errichten, gib /rrb ein um eine vorhandene Sperre zu entfernen.");
new Float:X, Float:Y, Float:Z, Float:A;
GetPlayerPos(playerid, X, Y, Z);
GetPlayerFacingAngle(playerid, A);
PlayerInfo[playerid][pRoadblock] = CreateObject(981, X, Y, Z, 0.0, 0.0, A+180);
SetPlayerPos(playerid, X, Y, Z+4);
GameTextForPlayer(playerid, "~w~Strassensperre ~r~platziert", 5000, 5);
SendClientMessage(playerid, COLOR_GREEN, "Straßensperre erfolgreich platziert, gib /rrb oder /roadunblock ein um sie zu entfernen.");
GetPlayerName(playerid, sendername, sizeof(sendername));
format(string, sizeof(string), "HQ: Officer %s hat eine Straßensperre platziert, auf der Karte ist sie als Checkpoint zu sehen.", sendername);
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
if(IsACop(i))
{
SetPlayerCheckpoint(playerid, X, Y, Z-10, 1.0);
SendClientMessage(i, TEAM_BLUE_COLOR, string);
if (PlayerInfo[i][pRank] >= 5 && PlayerInfo[i][pMember] || PlayerInfo[i][pLeader] == 1)
{
SendClientMessage(i, COLOR_YELLOW, "Du kannst alle Sperren mit /rrball entfernen");
}
}
}
}
return 1;
}
if(strcmp(cmdtext, "/roadunblock", true)==0 || strcmp(cmdtext, "/rrb", true)==0)
{
if(!IsACop(playerid))
{
SendClientMessage(playerid, COLOR_GREY, "Du bist kein Cop!");
return 1;
}
if (PlayerInfo[playerid][pRank] < 1)
{
SendClientMessage(playerid, COLOR_GREY, "Du mußt mindestens Rang 2 haben um diesen Befehl nutzen zu können!");
return 1;
}
if (PlayerInfo[playerid][pRoadblock] == 0)
{
SendClientMessage(playerid, COLOR_GREY, "Du hast keine Straßensperre platziert!");
return 1;
}
RemoveRoadblock(playerid);
SendClientMessage(playerid, COLOR_GREEN, "Straßensperre erfolgreich entfernt.");
return 1;
}
if(strcmp(cmdtext, "/roadunblockall", true)==0 || strcmp(cmdtext, "/rrball", true)==0)
{
if (PlayerInfo[playerid][pRank] >= 4 && PlayerInfo[playerid][pMember] == 1 || PlayerInfo[playerid][pLeader] == 1 || PlayerInfo[playerid][pAdmin] > 1 || PlayerInfo[playerid][pLeader] == 2 || PlayerInfo[playerid][pMember] == 2|| PlayerInfo[playerid][pLeader] == 3 || PlayerInfo[playerid][pMember] == 3)
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(PlayerInfo[i][pRoadblock] != 0)
{
RemoveRoadblock(i);
}
}
GetPlayerName(playerid, sendername, sizeof(sendername));
format(string, sizeof(string), "HQ: Durch die Anordnung von Officer %s wurden alle Straßensperren entfernt.", sendername);
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
if(PlayerInfo[i][pMember] == 1 || PlayerInfo[i][pLeader] == 1 || PlayerInfo[playerid][pLeader] == 2 || PlayerInfo[playerid][pMember] == 2)
{
SendClientMessage(i, TEAM_BLUE_COLOR, string);
}
}
}
}
else
{
SendClientMessage(playerid, COLOR_GREY, "Du mußt Rang 2 haben oder Polizeichef sein um alle Straßensperren entfernen zu können!");
}
return 1;
}