Dimarios
Умник
Добрый день всем. У меня такая проблема. Значит система капта у меня простая, кто на территории последний, того и терра. Вот в чём проблема. Добавил 2 банды Crips и Bloods (Может кто знает), но когда кончается капт, то она должна стать той, кто последний на терре. Значит, к примеру, я в блудз закаптил ацтек, время прошло, если ацтек на терре будет, то отстоит, а если блудз, то ничего не происходит, как бы не видит его. Прошу помощи.
Вот GzCheck:
Вот /capture:
P.s немного изменил, но суть вопроса таже.
Вот GzCheck:
PHP:
stock GzCheck()
{
new string[128];
for(new i =0;i<sizeof(GZInfo);i++)
{
if(ZoneOnBattle[i] == 1 && GZSafeTime[i] == 0)
{
ZoneTimer[i] -=5;
new faction;
new zl;
zl = i;
for(new x =0;x<MAX_PLAYERS;x++)
{
if(PlayerToKvadrat(x,GZInfo[i][gCoords][0], GZInfo[i][gCoords][1],GZInfo[i][gCoords][2],GZInfo[i][gCoords][3])&&IsInAllowed(x))
{
if(PlayerInfo[x][pLeader] !=0) {faction = PlayerInfo[x][pLeader];}
else { faction = PlayerInfo[x][pMember];}
OnZONE[i][faction] ++;
}
}
new asd;
for(new x =0;x<23;x++)
{
if(OnZONE[i][x] > 0 && IsInAllowedF(x)) asd ++;
}
if(asd == 1)
{
for(new x =0;x<23;x++)
{
if(OnZONE[i][x] > 0)
{
new zx;
zx = x;
if(GZInfo[i][gFrak] == x) {format(string,90,"Банда %s отстояла свою территорию",GetGangName(zx)); }
if(GZInfo[i][gNapad] == x){format(string,90,"Банда %s выиграла войну за территорию",GetGangName(zx)); }
SendFMes(GZInfo[i][gFrak],COLOR_GREEN, string);
SendFMes(GZInfo[i][gNapad],COLOR_GREEN, string);
if(GZInfo[i][gNapad] == x && GZInfo[i][gFrak] == x)
{
format(string,90,"Война за территорию продлена на 1 минуту, поскольку на поле боя присутствуют 2 враждующиеся банды");
SendFMes(GZInfo[i][gFrak],COLOR_GREEN, string);
SendFMes(GZInfo[i][gNapad],COLOR_GREEN, string);
GZSafeTime[x] = 60;
return true;
}
ZoneOnBattle[zl] =0;
GZInfo[zl][gNapad] = 0;
GZInfo[zl][gFrak] = zx;
GangZoneStopFlashForAll(GZInfo[zl][id]);
GangZoneHideForAll(GZInfo[zl][id]);
GangZoneShowForAll(GZInfo[zl][id],GetGangZoneColor(zl));
SaveGZ(zl);
break;
}
}
}
}
}
for(new i =0;i<120;i++)
{
for(new z = 0;z<20;z++)
{
OnZONE[i][z] =0;
}
}
PHP:
CMD:capture(playerid, params[])
{
new string[128];
if(PlayerLogged[playerid] == 0) return true;
if(IsAGang(playerid))
{
if(PlayerInfo[playerid][pRank] < 7) return SendClientMessage(playerid,COLOR_GREY,"Функция доступно с 7 ранга!");
new faction = PlayerInfo[playerid][pMember];
if(FrakCD[faction] > 0) return SendClientMessage(playerid, COLOR_GREY, "Захватывать территорию можно 1 раз в час!");
if(!IsInAllowed(playerid)) return SendClientMessage(playerid, COLOR_GREY, "Ваша банда уже учавствует в захвате территории!");
for(new i = 1;i<=TOTALGZ;i++)
{
if(PlayerToKvadrat(playerid,GZInfo[i][gCoords][0], GZInfo[i][gCoords][1],GZInfo[i][gCoords][2],GZInfo[i][gCoords][3]) && ZoneOnBattle[i] == 0)
{
if(GZInfo[i][gFrak] == faction) return SendClientMessage(playerid, COLOR_GREY, "Вы не можете захватить свою территорию!");
//if(!IsPlayerInBandOnline(GZInfo[i][gFrak])) return SendMes(playerid,COLOR_GREY, "Игроков банды \"%s\" нет в сети!", GetGangName(GZInfo[i][gFrak]));
format(string, 127,"[Внимание]: На вашу территорию напала банда %s", FracInfo[PlayerInfo[playerid][pMember]][fName]);
SendFMes(GZInfo[i][gFrak],COLOR_GREEN,string);
format(string, 127, "Территория будет мигать 7 минут, после чего перейдет к банде, оставшейся последней");
SendFMes(GZInfo[i][gFrak],COLOR_WHITE,string);
format(string, 127, "Если на территорию присутствуют обе банды, война за территорию продлится на 1 минуту");
SendFMes(GZInfo[i][gFrak],COLOR_WHITE,string);
format(string,128,"[Внимание]: %s назначил войну банде %s",sendername(playerid),GetGangName(GZInfo[i][gFrak]));
SendFMes(faction,COLOR_GREEN,string);
format(string,128,"Территория будет мигать 7 минут, после чего перейдет к банде, оставшейся последней");
SendFMes(faction,COLOR_WHITE,string);
format(string,128,"Если на территорию присутствуют обе банды, война за территорию продлится на 1 минуту");
SendFMes(faction,COLOR_WHITE,string);
GangZoneFlashForAll(GZInfo[i][id],GetGZColorF(PlayerInfo[playerid][pMember]));
GZSafeTime[i] = 300;
FrakCD[PlayerInfo[playerid][pMember]] = 1800;
GZInfo[i][gNapad] = PlayerInfo[playerid][pMember];
ZoneTimer[i] = 720;
ZoneOnBattle[i] = 1;
break;
}
}
}
else SendClientMessage(playerid, COLOR_GREY, YouCanNot);
return true;
}
Последнее редактирование:
