Lionely
Умник
Добрый день пользователи P-I
Сразу перейду к делу, сегодня писал систему капта для банд.
И вот у меня не получается, почему то.
Суть в чем, я нападаю сам на себя, хотя территория пренадлежит Groov
Скрин
Код команды:
Код
Сразу перейду к делу, сегодня писал систему капта для банд.
И вот у меня не получается, почему то.
Суть в чем, я нападаю сам на себя, хотя территория пренадлежит Groov
Скрин
Чтобы видеть скрытое содержание Зарегистрируйтесь на форуме!
Код команды:
PHP:
CMD:capture(playerid, params[])
{
if(PI[playerid][pRang] < 7) return SCM(playerid,COLOR_LIGHTRED,"Доступно с 7 ранга!");
new fraction = 0;
if(PI[playerid][pMember] != 0) fraction = PI[playerid][pMember];
if(IsAGang(playerid))
{
for(new i = 0; i <sizeof(GZI); i++)
{
if(PlayerToKvadrat(playerid, GZI[i][gLocationminx], GZI[i][gLocationminy], GZI[i][gLocationmaxx], GZI[i][gLocationmaxy]) && ZoneOnBattle[i] == 0)
{
new string[150];
format(string,sizeof(string),"[Внимание]: Ваша банда напала на территорию \"%s\"",GetGangName(GZI[i][gFraction]));
SendFamilyMessage(PI[playerid][pMember],0x00B953AA,string);
format(string,sizeof(string), "[Внимание]: На вашу территорию напала банда \"%s\"",GetGangName(PI[playerid][pMember]));
SendFamilyMessage(GZI[i][gFraction],0xFF8CEFAA,string);
SendFamilyMessage(GZI[i][gFraction], TEAM_AZTECAS_COLOR, "Ваша зона под атакой. У вас есть 2 минуты на подготовку.");
new qwer[130];
format(qwer, sizeof(qwer), "[F] Если по истечению времени вас не будет на территории, она перейдет банде %s",GetGangName(PI[playerid][pMember]));
SendFamilyMessage(GZI[i][gFraction],COLOR_LIGHTRED,qwer);
GangZoneFlashForAll(GZI[i][gID],GetGZColorF(PI[playerid][pMember]));
SCM(playerid,COLOR_WHITE,"Территория будет мигать 7 минут. Победит банда, которая удержится в квадрате!");
SCM(playerid,COLOR_WHITE,"У варажеской команды есть 2 минуты на подготовку.");
GZSafeTime[i] = 420;// защина присваивает твою фраку
PodgotovkaCapt[i] = 120;
FrakCD[fraction] = 1800;
ZoneOnBattle[i] = 1;
GZI[i][gAttack] = PI[playerid][pMember];
if(GzCheckOn == 0)
{
GzCheckTimer = SetTimer("GangZoneCapture", 1000,1);
GzCheckOn = 1;
}
break;
}
}
}
return 1;
}
PHP:
GangZoneCapture
PHP:
forward GangZoneCapture();
public GangZoneCapture()
{
for(new i = 0; i < sizeof(GZI); i++)
{
if(ZoneOnBattle[i] == 1)
{
if(GZSafeTime[i] > 0) GZSafeTime[i] --;
for(new x = 0; x<MAX_PLAYERS; x++)
{
new y = PI[x][pMember];
if(y == GZI[i][gAttack] || y == GZI[i][gFraction])
{
if(CaptureOn[x] == 0)
{
CaptureTextDraws(x);
PlayerTextDrawShow(x, CaptureTime[x]);
PlayerTextDrawShow(x, CaptureGang[x]);
PlayerTextDrawShow(x, CaptureWar[x]);
PlayerTextDrawShow(x, BoxCapture[x]);
CaptureOn[x] = 1;
}
new string[110];
if(GZSafeTime[i] > 0) format(string,sizeof(string),"~y~TIME:~g~ %s",Canevert(GZSafeTime[i]));
PlayerTextDrawSetString(x,CaptureTime[x],string);
format(string,sizeof(string),"%s: ~g~%d",GetGangName(GZI[i][gAttack]),CountOnZone[GZI[i][gAttack]]);
PlayerTextDrawSetString(x,CaptureGang[x],string);
format(string,sizeof(string),"%s: ~g~%d",GetGangName(GZI[i][gFraction]),CountOnZone[GZI[i][gFraction]]);
PlayerTextDrawSetString(x,CaptureWar[x],string);
}
}
if(GZSafeTime[i] == 0)
{
new string[110];
if(CountOnZone[GZI[i][gFraction]] > CountOnZone[GZI[i][gAttack]])
{
SendFamilyMessage(GZI[i][gFraction],0x00B953AA,"Вы отстояли свою территорию");
SendFamilyMessage(GZI[i][gAttack],0xC56565AA,"Вам не удалось захватить территорию");
CountOnZone[GZI[i][gFraction]] = 0;
CountOnZone[GZI[i][gAttack]] = 0;
for(new y = 0; y<MAX_PLAYERS; y++)
{
if(PI[y][pMember] == GZI[i][gAttack] || PI[y][pMember] == GZI[i][gFraction])
{
CaptureOn[y] = 0;
PlayerTextDrawDestroy(y, CaptureTime[y]);
PlayerTextDrawDestroy(y, CaptureGang[y]);
PlayerTextDrawDestroy(y, CaptureWar[y]);
PlayerTextDrawDestroy(y, BoxCapture[y]);
}
}
}
else if(CountOnZone[GZI[i][gFraction]] < CountOnZone[GZI[i][gAttack]])
{
CountOnZone[GZI[i][gFraction]] = 0;
CountOnZone[GZI[i][gAttack]] = 0;
SendFamilyMessage(GZI[i][gAttack], 0x00B953AA,"Вы взяли под свой контроль новую территорию");
for(new y = 0; y < sizeof(GZI); y++)
{
if(GZI[y][gFraction] == 16) TotalGzR++;
if(GZI[y][gFraction] == 17) TotalGzG++;
if(GZI[y][gFraction] == 18) TotalGzB++;
if(GZI[y][gFraction] == 19) TotalGzV++;
if(GZI[y][gFraction] == 20) TotalGzA++;
}
switch(GZI[i][gAttack])
{
case 16: format(string, sizeof(string), "Теперь ваша банда будет получать каждый час %d вирт",TotalGzR*300);
case 17: format(string, sizeof(string), "Теперь ваша банда будет получать каждый час %d вирт",TotalGzG*300);
case 18: format(string, sizeof(string), "Теперь ваша банда будет получать каждый час %d вирт",TotalGzB*300);
case 19: format(string, sizeof(string), "Теперь ваша банда будет получать каждый час %d вирт",TotalGzV*300);
case 20: format(string, sizeof(string), "Теперь ваша банда будет получать каждый час %d вирт",TotalGzA*300);
}
SendFamilyMessage(GZI[i][gFraction], 0xC56565AA,"Вы потеряли контроль одной из своих территорий");
GZI[i][gFraction] = GZI[i][gAttack];
SendFamilyMessage(GZI[i][gAttack], 0x00B953AA, string);
GZI[i][gAttack] = 0;
for(new y = 0; y<MAX_PLAYERS; y++)
{
if(PI[y][pMember] == GZI[i][gAttack] || PI[y][pMember] == GZI[i][gFraction])
{
CaptureOn[y] = 0;
PlayerTextDrawDestroy(y, CaptureTime[y]);
PlayerTextDrawDestroy(y, CaptureGang[y]);
PlayerTextDrawDestroy(y, CaptureWar[y]);
PlayerTextDrawDestroy(y, BoxCapture[y]);
}
}
}
else if(CountOnZone[GZI[i][gFraction]] == CountOnZone[GZI[i][gAttack]])
{
CountOnZone[GZI[i][gFraction]] = 0;
CountOnZone[GZI[i][gAttack]] = 0;
SendFamilyMessage(GZI[i][gAttack], 0x00B953AA,"Вы взяли под свой контроль новую территорию");
for(new y = 0; y < sizeof(GZI); y++)
{
if(GZI[y][gFraction] == 16) TotalGzR++;
if(GZI[y][gFraction] == 17) TotalGzG++;
if(GZI[y][gFraction] == 18) TotalGzB++;
if(GZI[y][gFraction] == 19) TotalGzV++;
if(GZI[y][gFraction] == 20) TotalGzA++;
}
switch(GZI[i][gAttack])
{
case 16: format(string, sizeof(string), "Теперь ваша банда будет получать каждый час %d вирт",TotalGzR*300);
case 17: format(string, sizeof(string), "Теперь ваша банда будет получать каждый час %d вирт",TotalGzG*300);
case 18: format(string, sizeof(string), "Теперь ваша банда будет получать каждый час %d вирт",TotalGzB*300);
case 19: format(string, sizeof(string), "Теперь ваша банда будет получать каждый час %d вирт",TotalGzV*300);
case 20: format(string, sizeof(string), "Теперь ваша банда будет получать каждый час %d вирт",TotalGzA*300);
}
SendFamilyMessage(GZI[i][gFraction], 0xC56565AA,"Вы потеряли контроль одной из своих территорий");
GZI[i][gFraction] = GZI[i][gAttack];
SendFamilyMessage(GZI[i][gAttack], 0x00B953AA, string);
GZI[i][gAttack] = 0;
for(new y = 0; y<MAX_PLAYERS; y++)
{
if(PI[y][pMember] == GZI[i][gAttack] || PI[y][pMember] == GZI[i][gFraction])
{
CaptureOn[y] = 0;
PlayerTextDrawDestroy(y, CaptureTime[y]);
PlayerTextDrawDestroy(y, CaptureGang[y]);
PlayerTextDrawDestroy(y, CaptureWar[y]);
PlayerTextDrawDestroy(y, BoxCapture[y]);
}
}
}
ItsWar[GZI[i][gAttack]] = -1;
ItsWar[GZI[i][gFraction]] = -1;
ClearTotalGz();
ZoneOnBattle[i] = 0;
GangZoneStopFlashForAll(GZI[i][gID]);
GangZoneHideForAll(GZI[i][gID]);
GangZoneShowForAll(GZI[i][gID],GetGangZoneColor(i));
SaveGangZones(i);
KillTimer(GzCheckTimer), GzCheckOn = 0;
break;
}
}
}
return 1;
}
