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