Доступ к архиву

Переход в группу "Пользователь"

300.00
Одноразовый платёж
Быстрый переход в группу "Пользователи", без надобности написания постов и ожидания.

Покупка дает возможность:
Быть полноправным участником форума
Нормальное копирование кода
Создавать темы
Скачивать файлы
Доступ к архиву Pawno-Info

Система как на ДРП (гетто)

Статус
В этой теме нельзя размещать новые ответы.

redo

Начинающий
Пользователь
Регистрация
16 Окт 2016
Сообщения
31
Лучшие ответы
0
Репутация
0
Честно говоря даже не знаю как все это описать...
Вообщем я хочу сделать систему гетто как на ДРП, а именно что бы команду /capture можно было прописывать только на той территории, которая соприкасается с территория твоей банды... Что бы не было кулибяки ( цвета не должны быть перемешаны.. то есть должны быть вот так , ) я пытался что-то сделать... и знакомые помогали но ничего не вышло.. Вот что есть на данный момент
PHP:
{
    if(!pTemp[playerid][pLogined]) return 1;
	new string[256];
	if(IsAGang(playerid))
	{
		new h, ZonePos[MAX_PLAYERS], ZoneTrue; gettime(h);
		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++)
	    {
	        
	        new Float: PosXZone = (GZMZ[ZonePos[playerid]][gCoords][0] + GZMZ[i][gCoords][2])/2;
			new Float: PosYZone = (GZMZ[ZonePos[playerid]][gCoords][1] + GZMZ[i][gCoords][3])/2;
		    if(((PosXZone <= GZMZ[ZonePos[playerid]][gCoords][0] && PosXZone >= GZMZ[i][gCoords][2]) && (PosYZone <= GZMZ[ZonePos[playerid]][gCoords][1] && PosYZone >= GZMZ[i][gCoords][3])) && ZoneOnBattle[i] == 0)
			{
		       
				if(GZMZ[i][gFrak] == pData[playerid][pFraction]) ZoneTrue++;
			}
		}
		if(ZoneTrue == 0) 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;
}
 
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу