Joker_
Умник
Короче баг заключается в том что - терра идет багом.
Сейчас расскажу в чем заключается баг. Если например Grove Street нападают на El Coronos все будет хорошо, но как только El Coronos нападет на Grove Street (То есть нападут вместе на территории) то территории будут идти багом, а багом то есть игроки могут выходить с территории и она будет идти, хотя должны сидеть в территории чтобы она не слетела с захвата, даже возможно если На Grove Street напали по 2 банды/мафии тоже багом будет идти территория.
Это не только с грувами, это со всеми бандамы/мафиями. Помогите пожалуйста! Я уже сломал себе голову, не представляю что еще можно сделать.
UPD: Баг с территорий спадает после того как самую первую территорию отбили.
Нападение на территорию:
Остальное
Сейчас расскажу в чем заключается баг. Если например Grove Street нападают на El Coronos все будет хорошо, но как только El Coronos нападет на Grove Street (То есть нападут вместе на территории) то территории будут идти багом, а багом то есть игроки могут выходить с территории и она будет идти, хотя должны сидеть в территории чтобы она не слетела с захвата, даже возможно если На Grove Street напали по 2 банды/мафии тоже багом будет идти территория.
Это не только с грувами, это со всеми бандамы/мафиями. Помогите пожалуйста! Я уже сломал себе голову, не представляю что еще можно сделать.
UPD: Баг с территорий спадает после того как самую первую территорию отбили.
Нападение на территорию:
PHP:
if(IsAMember(i))
{
new d, fraka[MAX_PLAYERS];
if(Player[i][pLeader] > 0) fraka[i] = Player[i][pLeader];
if(Player[i][pMember] > 0) fraka[i] = Player[i][pMember];
for(new b = 0; b < sizeof(BizzInfo); b++)
{
if(bZahvat[b] == fraka[i]) d++;
}
for(new b = 0; b < sizeof(BizzInfo); b++)
{
if(Player[i][pRank] > 5 && d == 0)
{
if(PlayerToKvadrat(i,BizzInfo[b][bTeraX],BizzInfo[b][bTeraY],BizzInfo[b][bTeraZ],BizzInfo[b][bTeraD]))
{
if(GOZH[b][BizzInfo[b][bMafia]] == 1) continue;
if(BizzInfo[b][bMafia] == fraka[i]) continue;
if(GetPVarInt(i,"bizz") == 255)
{
BKolZona[b][fraka[i]] ++;
SetPVarInt(i,"bizz",b);
}
if(BKolZona[b][fraka[i]] >= 1)
{
for(new n = 0; n < GetMaxPlayers(); n++)
{
if(Player[n][pLeader] == fraka[i] || (Player[n][pMember] == fraka[i] && Player[n][pRank] >= 3))
{
if(PlayerToKvadrat(n,BizzInfo[b][bTeraX],BizzInfo[b][bTeraY],BizzInfo[b][bTeraZ],BizzInfo[b][bTeraD])) SetPVarInt(n,"cap",b),GOZH[b][fraka[i]] = 1;
}
}
}
if(BKolZona[b][fraka[i]] >= 1 && GOZH[b][fraka[i]] == 1)
{
GOZH[b][fraka[i]] = 1;
if(bZonaOtkat[b] <= 0 && bZahvat[b] == 255)
{
new bOnl[2];
for(new o = 0; o < GetMaxPlayers(); o++)
{
if(Player[o][pMember] == BizzInfo[b][bMafia]) bOnl[0]++;
if(Player[o][pMember] == Player[o][pMember]) bOnl[1]++;
}
if(bOnl[0] >= 2 && bOnl[1] >= 2)
{
bTime[b] = 480;
bZahvat[b] = fraka[i];
new zonecolor,bancolor;
BKolZona[b][fraka[i]] = 0;
switch(BizzInfo[b][bMafia])
{
case 5: zonecolor = 0x057F9499;
case 6: zonecolor = 0xFAFB7199;
case 7: zonecolor = 0xFF06F799;
case 11: zonecolor = 0x8A2CD799;
case 12: zonecolor = 0x00FF1499;
case 13: zonecolor = 0xFFD72099;
case 14: zonecolor = 0x0FD9FA99;
case 15: zonecolor = 0x0FBEA1AA;
case 16: zonecolor = 0x77889999;
case 18: zonecolor = 0x6495EDAA;
case 20: zonecolor = 0x271414AA;
case 21: zonecolor = 0x36206096;
}
switch(fraka[i])
{
case 5: bancolor = 0x057F9499;
case 6: bancolor = 0xFAFB7199;
case 7: bancolor = 0xFF06F799;
case 11: bancolor = 0x8A2CD799;
case 12: bancolor = 0x00FF1499;
case 13: bancolor = 0xFFD72099;
case 14: bancolor = 0x0FD9FA99;
case 15: bancolor = 0x0FBEA1AA;
case 16: bancolor = 0x77889999;
case 18: bancolor = 0x6495EDAA;
case 20: bancolor = 0x271414AA;
case 21: bancolor = 0x36206096;
}
for(new y = 0; y < GetMaxPlayers(); y++)
{
GangZoneShowForPlayer(y,BizZona[b], zonecolor);
GangZoneFlashForPlayer(y,BizZona[b],bancolor);
}
new biz[40];
switch(fraka[i])
{
case 5: biz = "La Cosa Nostra";
case 6: biz = "Yakuza Family";
case 7: biz = "The Triads Mafia";
case 11: biz = "The Ballas Gang";
case 12: biz = "The Grove Street";
case 13: biz = "Los Santos Vagos";
case 14: biz = "Los Aztecas";
case 15: biz = "San Fierro Rifa";
case 16: biz = "Русская Мафия";
case 18: biz = "Street Racers";
case 20: biz = "Hell Angels";
case 21: biz = "Black Kings";
}
new ray[50];
GetPlayer3DZone(BizzInfo[b][bEntranceX], BizzInfo[b][bEntranceY], BizzInfo[b][bEntranceZ],ray, 50);
format(strinz,sizeof(strinz),"%s атаковали нашу территорию в районе %s. У вас есть 8 минут на отхват территории.",biz,ray,BizzInfo[b][bMessage]);
SendRadioMessage(BizzInfo[b][bMafia], GREEN2, strinz);
if(gPlayerLogged[i] == 1)
{
SendRadioMessage(fraka[i], GREEN2, "Начался захват территории. Удерживайте её 8 минут.");
}
}
}
}
}
else
{
if(GetPVarInt(i,"bizz") != 255)
{
if(BizzInfo[b][bMafia] == Player[i][pMember] || BizzInfo[b][bMafia] == Player[i][pLeader]) continue;
if(PlayerToKvadrat(i,BizzInfo[GetPVarInt(i,"bizz")][bTeraX],BizzInfo[GetPVarInt(i,"bizz")][bTeraY],BizzInfo[GetPVarInt(i,"bizz")][bTeraZ],BizzInfo[GetPVarInt(i,"bizz")][bTeraD])) continue;
BKolZona[GetPVarInt(i,"bizz")][fraka[i]] --;
SetPVarInt(i,"cap",0);
SetPVarInt(i,"bizz",255);
}
}
}
}
}
PHP:
new capp;
for(new b = 0; b < sizeof(BizzInfo); b++)
{
if(bZonaOtkat[b] > 0) bZonaOtkat[b]--;
if(bZahvat[b] != 255 && bTime[b] > 0)
{
bTime[b] --;
if(bTime[b] <= 0)
{
foreach(Player, i)
{
if(!IsAMember(i)) continue;
if(Player[i][pMember] == bZahvat[b] || Player[i][pLeader] == bZahvat[b])
{
if(PlayerToKvadrat(i,BizzInfo[b][bTeraX],BizzInfo[b][bTeraY],BizzInfo[b][bTeraZ],BizzInfo[b][bTeraD]))
{
if(GetPVarInt(i,"cap") == b) capp++;
}
}
}
if(capp > 0)
{
new biz[60];
switch(bZahvat[b])
{
case 5: biz = "La Cosa Nostra";
case 6: biz = "Yakuza Family";
case 7: biz = "The Triads Mafia";
case 11: biz = "The Ballas Gang";
case 12: biz = "The Grove Street";
case 13: biz = "Los Santos Vagos";
case 14: biz = "Los Aztecas";
case 15: biz = "San Fierro Rifa";
case 16: biz = "Русская Мафия";
case 18: biz = "Street Racers";
case 20: biz = "Hell Angels";
case 21: biz = "Black Kings";
}
format(strinz,sizeof(strinz),"%s захватили нашу территорию!",biz);
SendRadioMessage(BizzInfo[b][bMafia], GREEN2,strinz);
BizzInfo[b][bMafia] = bZahvat[b];
UpdateBizz(b);
GangZoneStopFlashForAll(BizZona[b]);
GangZoneHideForAll(BizZona[b]);
bZahvat[b] = 255;
bZonaOtkat[b] = 3600;
SendRadioMessage(bZahvat[b], GREEN2, "Вы взяли под свой контроль новую территорию!");
for(new y = 0; y < GetMaxPlayers(); y++)
{
if(GetPVarInt(y,"cap") == b) SetPVarInt(y,"cap",255);
if(GetPVarInt(y,"bizz") == b) SetPVarInt(y,"bizz",255);
GangZoneShowForPlayer(y,BizZona[b], GangColor(b));
}
}
}
else
{
foreach(Player, i)
{
if(!IsAMember(i)) continue;
if(Player[i][pMember] == bZahvat[b] || Player[i][pLeader] == bZahvat[b])
{
if(PlayerToKvadrat(i,BizzInfo[b][bTeraX],BizzInfo[b][bTeraY],BizzInfo[b][bTeraZ],BizzInfo[b][bTeraD]))
{
if(GetPVarInt(i,"cap") == b) capp++;
}
}
}
if(capp < 1)
{
SendRadioMessage(bZahvat[b], GREEN2, "Захват территории провален!");
UpdateBizz(b);
bZahvat[b] = 255;
bTime[b] = 0;
bZonaOtkat[b] = 3600;
GangZoneStopFlashForAll(BizZona[b]);
GangZoneHideForAll(BizZona[b]);
for(new y = 0; y < GetMaxPlayers(); y++)
{
if(GetPVarInt(y,"cap") == b) SetPVarInt(y,"cap",255);
if(GetPVarInt(y,"bizz") == b) SetPVarInt(y,"bizz",255);
GangZoneShowForPlayer(y,BizZona[b], GangColor(b));
}
SendRadioMessage(BizzInfo[b][bMafia], GREEN2, "Территория снова под нашим контролем!");
}
else
{
if(bTime[b] == 180)
{
SendRadioMessage(BizzInfo[b][bMafia], GREEN2, "Осталось 3 минуты до потери территории!");
SendRadioMessage(bZahvat[b], GREEN2, "Осталось 3 минуты до захвата территории!");
}
if(bTime[b] == 60)
{
SendRadioMessage(BizzInfo[b][bMafia] , GREEN2, "Осталось 60 секунд до потери территории!");
SendRadioMessage(bZahvat[b] , GREEN2, "Осталось 60 секунд до захвата территории!");
}
}
}
}
}
Последнее редактирование:
