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; }