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; }
for(new i = 0; i < MAX_ZONES; i++) |
IsPlayerInArea(playerid, Float:MinX, Float:MinY, Float:MaxX, Float:MaxY)
forward SetZone(playerid); public SetZone(playerid) { new string[128]; SetPlayerScore(playerid, GetPlayerScore(playerid) + ZoneInfo[tCheck[playerid]][zEXP]); PlayerInfo[playerid][pScore] += ZoneInfo[tCheck[playerid]][zEXP]; GivePlayerMoney(playerid, ZoneInfo[tCheck[playerid]][zMoney]); PlayerInfo[playerid][pMoney] += ZoneInfo[tCheck[playerid]][zMoney]; PlayerInfo[playerid][pTurfs]++; format(string, sizeof(string), "INFO:{FFFFFF} Gangzone captured, +%d EXP points and %d$.", ZoneInfo[tCheck[playerid]][zEXP], ZoneInfo[tCheck[playerid]][zMoney]); SendClientMessage(playerid, COLOR_GREY, string); UnderAttack[tCheck[playerid]] = 0; KillTimer(timer[playerid]); SetGangZone(playerid); return 1; } forward SetGangZone(playerid); public SetGangZone(playerid) { new string[128]; GangZoneShowForAll(Zone[tCheck[playerid]],GetTeamZoneColor(playerid)); format(string, sizeof string, "GANGZONE:{FFFFFF} %s has captured the %s for %s.", GetName(playerid), ZoneInfo[tCheck[playerid]][zName], GetTeamName(playerid)); SendClientMessageToAll(orange, string); GangZoneStopFlashForAll(Zone[tCheck[playerid]]); ZoneInfo[tCheck[playerid]][zTeam] = gTeam[playerid]; SaveZone(tCheck[playerid]); return 1; }
new tCheck[MAX_PLAYERS];
stock IsPlayerInArea(playerid, Float:minx, Float:maxx, Float:miny, Float:maxy) { new Float:Pos[3]; GetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]); if(Pos[0] > minx && Pos[0] < maxx && Pos[1] > miny && Pos[1] < maxy) return 1; else return 0; }