10.04.2015, 23:10
Hello, I am currently developing a TDM gamemode with Turf system.
I've tried to make the attack command for the GM but it has some very nasty bugs:
- When I try to attack it doesn't checks on what turf i am on so on every turf i go when i am in Groove team it says it's already captured (That's turf 1..), although i'm on other turfs.
- If I change the team and attack on a random turf, it somehow attacks every turf (makes them flash) and captures the last one 24 times. (If I have 24 turfs it captures the 24th turf or 23th and so on)
^The turf captured stops flashing but the others still keep on flashing.
Here's the attack command:
I've tried to make the attack command for the GM but it has some very nasty bugs:
- When I try to attack it doesn't checks on what turf i am on so on every turf i go when i am in Groove team it says it's already captured (That's turf 1..), although i'm on other turfs.
- If I change the team and attack on a random turf, it somehow attacks every turf (makes them flash) and captures the last one 24 times. (If I have 24 turfs it captures the 24th turf or 23th and so on)
^The turf captured stops flashing but the others still keep on flashing.
Here's the attack command:
Код:
CMD:attack(playerid, params[])
{
for(new i = 0; i < MAX_ZONES; i++)
if (IsPlayerInArea(playerid, ZoneInfo[i][zMinX], ZoneInfo[i][zMaxX], ZoneInfo[i][zMinY], ZoneInfo[i][zMaxY]))
{
new string[128];
{
if(ZoneInfo[i][zTeam] == gTeam[playerid]) return SendClientMessage(playerid, COLOR_RED,"ERROR:{FFFFFF} Your team is the current holder of this zone.");
if(UnderAttack[i] == 1) return SendClientMessage(playerid, COLOR_RED,"ERROR:{FFFFFF} Somebody is already attacking this zone.");
if(IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, COLOR_RED,"ERROR:{FFFFFF} You can't capture zones while being in a vehicle.");
UnderAttack[i] = 1;
timer[playerid] = SetTimerEx("SetZone", 30000, false, "i", playerid);
GangZoneFlashForAll(Zone[i],COLOR_ATTACK);
format(string, sizeof(string), "INFO:{FFFFFF} You're currently attacking the %s, stay in it the marker for 30 seconds to take it over.", ZoneInfo[i][zName]);
SendClientMessage(playerid, COLOR_GREY, string);
format(string, sizeof(string), "GANGZONE:{FFFFFF} %s is under attack!", ZoneInfo[i][zName]);
SendClientMessageToAll(orange, string);
tCheck[playerid] = i;
}
}
else
{
new string[128];
format(string, sizeof(string), "GANGZONE:{FFFFFF} Nu esti pe vreun turf!");
SendClientMessageToAll(COLOR_RED, string);
}
return 1;
}


