Hallo,
ich habe ein Gangwarsystem was aber leider nicht ganz funktioniert. Wenn ich im Bereich der Zonen bin und /angriff eingebe bin ich angeblich nicht im Bereich..
Ich hoffe Ihr könnt mir helfen
Der Befehl:
// ---------------[Gangwar krimskrams]----------------//
if(strcmp(cmd, "/angriff",true)==0)
{
new PlayerGangZone = GetPlayerGangZone(playerid);
new PlayerFraction;
if(IsPlayerInFrac(playerid,5) || IsPlayerInFrac(playerid,6) || IsPlayerInFrac(playerid,13)
|| IsPlayerInFrac(playerid,14) || IsPlayerInFrac(playerid,15) || IsPlayerInFrac(playerid,16) || IsPlayerInFrac(playerid,17)
|| IsPlayerInFrac(playerid,18) || IsPlayerInFrac(playerid,19) || IsPlayerInFrac(playerid,23))
{
if(PlayerGangZone >= 0 && PlayerGangZone < 10)
{
if(GangZone[PlayerGangZone][gzOwner] != PlayerInfo[playerid][pMember] && GangZone[PlayerGangZone][gzOwner] != PlayerInfo[playerid][pLeader])
{
if(GangZone[PlayerGangZone][gzLock] == 0)
{
for(new i=4; i<25; i++)
{
if(IsPlayerInFrac(playerid,i))
{
PlayerFraction = i;
}
}
GangZone[PlayerGangZone][gzAttacker] = PlayerFraction;
printf("%d",PlayerFraction);
GangZone[PlayerGangZone][gzAttacked] = 1;
GangZone[PlayerGangZone][gzLock] = 22;
GangZone[PlayerGangZone][gzAttackerdeaths] = 0;
GangZone[PlayerGangZone][gzOwnerdeaths] = 0;
new getsAttackedstring[128];
for(new i=0; i<MAX_PLAYERS; i++)
{
if(GangZone[PlayerGangZone][gzOwner] == PlayerInfo[i][pMember] || GangZone[PlayerGangZone][gzOwner] == PlayerInfo[i][pLeader]
||GangZone[PlayerGangZone][gzAttacker] == PlayerInfo[i][pMember] || GangZone[PlayerGangZone][gzAttacker] == PlayerInfo[i][pLeader])
{
format(getsAttackedstring, sizeof(getsAttackedstring), "GZ: Die GangZone %d wird angegriffen begib dich schnell dort hin(blinkende GangZone)!",GangZone[PlayerGangZone][gzID]);
SendClientMessage(i, COLOR_LIGHTRED, getsAttackedstring);
SendClientMessage(i, COLOR_LIGHTRED, "Sieh zu dass du nicht stirbst und die Gegner tötest. In 7 Minuten wird der Gewinner entschieden.");
GangZoneFlashForPlayer(i,GangZone[PlayerGangZone][gzID],GetPlayerGangZoneColor(playerid));
}
}
new rand = random(sizeof(GangZoneAttackZeiten));
SetTimerEx("GangZoneAttacked",GangZoneAttackZeiten[rand], false,"d",PlayerGangZone);
}
else
{
new Lockstring[128];
format(Lockstring, sizeof(Lockstring), "GZ: Die GangZone ist noch etwa %d Minuten geschützt",GangZone[PlayerGangZone][gzLock]);
SendClientMessage(playerid, COLOR_LIGHTRED, Lockstring);
}
}
else
{
SendClientMessage(playerid, COLOR_LIGHTRED, "GZ: Diese GangZone gehört dir schon.");
}
}
else
{
SendClientMessage(playerid, COLOR_LIGHTRED, "GZ: Du bist in keiner Gangzone");
}
}
else
{
SendClientMessage(playerid, COLOR_LIGHTRED, "GZ: Dafür musst du in einer Gang/Mafia sein.");
}
return 1;
}
Und die Zonen..
Function GetPlayerGangZone(playerid)
{
new GangZoneID;
if(IsPlayerInArea(playerid,-2360.5784-25,-63.8015-25,-2266.4443+25,41.4670+25))//Gangzone 0
{
GangZoneID = 0;
}
//437.4212,-1748.4917,9.0968,148.5090
else if(IsPlayerInArea(playerid,437.4212-25,-1748.4917-25,9.0968+25,148.5090+25))//Gangzone 1
{
GangZoneID = 1;
}
else if(IsPlayerInArea(playerid,-2243.7849-25,928.6682-25,-2157.0869+25,1086.2805+25))//Gangzone 2
{
GangZoneID = 2;
}
else if(IsPlayerInArea(playerid,-1579.2808-25,1016.1865-25,-1508.3629+25,1229.0961+25))//Gangzone 3
{
GangZoneID = 3;
}
else if(IsPlayerInArea(playerid,-387.1795-25,-1070.4860-25,-341.3897+25,-1032.0968+25))//Gangzone 4
{
GangZoneID = 4;
}
else if(IsPlayerInArea(playerid,609.4978-25,-525.3286-25,716.3276+25,-490.1229+25))//Gangzone 5
{
GangZoneID = 5;
}
else if(IsPlayerInArea(playerid,803.6276-25,-1387.7039-25,910.3912+25,-1333.4557+25))//Gangzone 6
{
GangZoneID = 6;
}
else if(IsPlayerInArea(playerid,2579.8970-25,-1249.8596-25,2634.1042+25,-1189.3790+25))//Gangzone 7
{
GangZoneID = 7;
}
else if(IsPlayerInArea(playerid,2183.9800-25,-2652.6365-25,2218.9609+25,-2496.9536+25))//Gangzone 8
{
GangZoneID = 8;
}
else if(IsPlayerInArea(playerid,148.0511-25,-1962.4158-25,165.0561+25,-1845.9280+25))//Gangzone 9
{
GangZoneID = 9;
}
else
{
GangZoneID = 255;
}
return GangZoneID;
}