Помогите доделать систему каптов,хуть я и знаю математику на базе 9 классов,но мне это еще как-то сложно..,а именно: Я пытался сделать проверку на близ стоящие территории..То есть что бы когда игрок писал команду /capture в квадрате который не соприкасается с территорий его банды ему писала типо "Данную территорию нельзя завоевать. Нужно находиться возле своей территории!"
Вот код
Конкретно сейчас фразу "Данную территорию нельзя завоевать. Нужно находиться возле своей территории!" пишет когда я пытаюсь захватить любой квадрат..даже своей банды...PHP код:
CMD:capture(playerid, params[])
{
if(!pTemp[playerid][pLogined]) return 1;
new string[256];
if(IsAGang(playerid))
{
new h, ZonePos[MAX_PLAYERS]; gettime(h);
if(h < 13 || h > 23 ) return SendClientMessage(playerid, CGRAY, "Использовать команду можно только с 13:00 до 23:00");
if(pData[playerid][pRank] < 7) return SendClientMessage(playerid,COLOR_LIGHTRED,"Функция доступна с 7 ранга и выше!");
new faction = pData[playerid][pFraction];
if(!IsInAllowed(playerid)) return SendClientMessage(playerid, COLOR_GREY, "Ваша банда уже учавствует в захвате зон!");
if(zGangTime[faction] <= 0) return SendClientMessage(playerid, -1, "Сегодня ваша банда больше не может учавствовать в захвате");
new bool: dostup = false;
for(new i; i < MAX_GZONE;i++)
{
if(PlayerToKvadrat(playerid,GZMZ[i][gCoords][0], GZMZ[i][gCoords][1],GZMZ[i][gCoords][2],GZMZ[i][gCoords][3]) && ZoneOnBattle[i] == 0)
{
ZonePos[playerid] = i;
switch(i)
{
case 1, 2, 3, 4, 5: dostup = true;
}
if(dostup == true) return SendClientMessage(playerid, COLOR_GREY, "Эта основная территория банды её нельзя захватить");
}
}
for(new i; i < MAX_GZONE;i++)
{
if ((PlayerToKvadrat(playerid,GZMZ[ZonePos[playerid]][gCoords][0], GZMZ[ZonePos[playerid]][gCoords][1],GZMZ[i][gCoords][2],GZMZ[i][gCoords][3]) || PlayerToKvadrat(playerid,GZMZ[i][gCoords][0], GZMZ[i][gCoords][1],GZMZ[ZonePos[playerid]][gCoords][2],GZMZ[ZonePos[playerid]][gCoords][3]))&& ZoneOnBattle[i] == 0)
{
if(GZMZ[i][gFrak] != pData[playerid][pFraction]) return SendClientMessage(playerid, COLOR_GREY, "Данную территорию нельзя завоевать. Нужно находится возле своей территории!");
}
}
if(FrakCD > 0)
{
new fd[128];
format(fd,128,"До следующего захвата территори %d минут.", floatround(FrakCD/60));
SendClientMessage(playerid,CGRAY,fd);
return 1;
}
for(new i=1;i<=TOTALGZ;i++)
{
if(PlayerToKvadrat(playerid,GZMZ[i][gCoords][0], GZMZ[i][gCoords][1],GZMZ[i][gCoords][2],GZMZ[i][gCoords][3]) && ZoneOnBattle[i] == 0)
{
if(IsPlayerInBandOnline(faction) < 1) return SendMes(playerid,COLOR_GREY, "В вашей банде мало игроков онлайн!");
if(IsPlayerInBandOnline(GZMZ[i][gFrak]) < 1) return SendMes(playerid,COLOR_GREY, "У банды \"%s\" мало игроков!", GetGangName(GZMZ[i][gFrak]));
if(IsCapture == 1) return SendClientMessage(playerid, COLOR_GREY, "Уже происходит захват одной из зон. Дождитесь окончания!");
format(string, 2024, ""W"Эта территория принадлежит %s\nВы уверены что хотите её захватить?",GetGangName(GZMZ[i][gFrak]));
ShowPlayerDialog(playerid,dZaxvat,DIALOG_STYLE_MSGBOX,"{F3FF02}Захват территории",string,"Да","Нет");
}
}
}
return true;
}