01.04.2018, 19:56
(
Последний раз редактировалось Stepashka; 09.04.2018 в 10:39.
)
pawn Код:
forward StopAttack(gang, attacker, zoneid);
public StopAttack(gang, attacker, zoneid)
{
new str[150];
ThisGangWar[gang] = false; // война закончена
ThisGangWar[attacker] = false; // война закончена
ThisGangWarAgainst[attacker] = 0;
ThisGangWarAgainst[gang] = 0;
ZoneInfo[zoneid][zAttacked] = 0; // зона не атакована
GangZoneStopFlashForAll(ZoneInfo[zoneid][zID]);
if(KillPoint[gang] > KillPoint[attacker]) // У кого сколько убийств
{
new conter;
for(new i; i < MAX_PLAYERS; i++)
{
if(!IsPlayerConnected(i)) continue;
if( GetPVarInt(i, "Team") == gang &&
AFKText[i] < 4 && GetPlayerInterior(i) == 0 &&
GetPlayerVirtualWorld(i) == 0 &&
IsPlayerInArea(i, ZoneInfo[zoneid][zoneX], ZoneInfo[zoneid][zoneY], ZoneInfo[zoneid][zoneX2], ZoneInfo[zoneid][zoneY2]))
{
conter++;
}
}
if(conter < 3) // Если небыло защитников
{
for(new i; i < MAX_PLAYERS; i++)
{
if(!IsPlayerConnected(i)) continue;
if(GetPVarInt(i, "Team") == attacker && GetPlayerState(i) == PLAYER_STATE_ONFOOT && IsPlayerInArea(i, ZoneInfo[zoneid][zoneX], ZoneInfo[zoneid][zoneY], ZoneInfo[zoneid][zoneX2], ZoneInfo[zoneid][zoneY2]))
{
//=============V1================
GiveAC(i, "Achievement_Gangwar", 0);
//===============================
}
}
ZoneInfo[zoneid][zOwner] = attacker; // Зона принадлежит тем кто напал
GangZoneShowForAll(ZoneInfo[zoneid][zID], GetFactionColor(ZoneInfo[zoneid][zOwner]));
SaveZone(zoneid);
format(str, sizeof(str), RGB_LAZUREGREY"%s покинули защищаемую территорию(%d) и отдали её %s", OrganizationsInfo[gang-1][orgName], zoneid, OrganizationsInfo[attacker-1][orgName]);
}
else
{
ZoneInfo[zoneid][zOwner] = gang; // Осталась у кого и была...
format(str, sizeof(str), RGB_LAZUREGREY"Территория %d осталась под контролем %s, счет %d:%d!", zoneid, OrganizationsInfo[gang-1][orgName], KillPoint[gang],KillPoint[attacker]);
}
}
else
{
new attack;
for(new i; i < MAX_PLAYERS; i++)
{
if(!IsPlayerConnected(i)) continue;
if( GetPVarInt(i, "Team") == attacker &&
AFKText[i] < 4 &&
GetPlayerInterior(i) == 0 &&
GetPlayerVirtualWorld(i) == 0 &&
IsPlayerInArea(i, ZoneInfo[zoneid][zoneX], ZoneInfo[zoneid][zoneY], ZoneInfo[zoneid][zoneX2], ZoneInfo[zoneid][zoneY2]))
{
attack++;
}
}
if(attack < 3)
{
ZoneInfo[zoneid][zOwner] = gang; // Осталась у кого и была...
format(str, sizeof(str), RGB_LAZUREGREY"%s покинули захватываемую территорию(%d)", OrganizationsInfo[attacker-1][orgName], zoneid);
}
else
{
for(new i; i < MAX_PLAYERS; i++)
{
if(!IsPlayerConnected(i)) continue;
if(GetPVarInt(i, "Team") == attacker && GetPlayerState(i) == PLAYER_STATE_ONFOOT && IsPlayerInArea(i, ZoneInfo[zoneid][zoneX], ZoneInfo[zoneid][zoneY], ZoneInfo[zoneid][zoneX2], ZoneInfo[zoneid][zoneY2]))
{
//=============V1================
GiveAC(i, "Achievement_Gangwar", 0);
//===============================
}
}
format(str, sizeof(str), RGB_LAZUREGREY"%s отвоевали территорию у '%s'(%d) счет %d:%d!", OrganizationsInfo[attacker-1][orgName], OrganizationsInfo[gang-1][orgName], zoneid, KillPoint[attacker], KillPoint[gang]);
ZoneInfo[zoneid][zOwner] = attacker; // Зона принадлежит тем кто напал
GangZoneShowForAll(ZoneInfo[zoneid][zID], GetFactionColor(ZoneInfo[zoneid][zOwner]));
SaveZone(zoneid);
}
}
for(new i; i < MAX_PLAYERS; i++)
{
if(!IsPlayerConnected(i)) continue;
if(GetPVarInt(i,"Team") == gang || GetPVarInt(i,"Team") == attacker)
{
SendClientMessage(i, COLOR_WHITE, str);
PlayerTextDrawHide(i, GangWarTextdraw[i]);
}
}
KillPoint[gang] = 0; // обнулили счетчик убийств
KillPoint[attacker] = 0; // обнулили счетчик убийств
if(ZoneInfo[zoneid][zTimer])
{
KillTimer(ZoneInfo[zoneid][zTimer]);
ZoneInfo[zoneid][zTimer] = 0;
}
return 1;
}