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

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

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

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

[DC_CMD] Система проведения ТВ эфиров для Новостного Агенства

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

Clybzotik

Ученик
Здравствуйте, в pawno я не так долго но всё-же напишу этот мануал.
Для написания системы понадобиться командный процессор DC_CMD
И так начнём.

Создаём глобальную переменную которая будет отвечать за включение/выключение эфира.
PHP:
new tv;
И так, начнём писать команду для просмотра эфира.
PHP:
if(!GetPVarInt(playerid, "Logged")) return SCM(playerid,COLOR_RED,"Вы не авторизованы!"); // Проверка на авторизацию
    if(tv == 0) return SCM(playerid,COLOR_ORANGE,"На данный момент Новостное Агенство не проводит эфир.");
	if(IsPlayerInAnyVehicle(playerid)) return  SCM(playerid,COLOR_ORANGE,"Вы не можете смотреть телевизор во время езды."); // Если игрок в машине он не может смотреть эфир
	if(tv == 1)
	{
	        new Float: LX, Float: LY, Float: LZ; // Сохраняем координаты и виртуальный мир игрока чтобы вернуть их если он перестанет смотреть
		GetPlayerPos(playerid,LX,LY,LZ);
		SetPVarInt(playerid,"TVINT",GetPlayerInterior(playerid));
 		SetPVarInt(playerid,"TVWORLD",GetPlayerVirtualWorld(playerid));
		if(GetPVarInt(playerid,"TV") == 0) // Проверка смотрит ли игрок телевизор
		{
		        SetPlayerPos(playerid,1,1,1); // Вместо 1 пишем свои координаты(желательно в текстурках чтобы игрок видел что пишет ведущий)
		        SetPlayerCameraPos(playerid,1,1,1); // Тут пишем координаты места в котором установлена камера
			SetPlayerCameraLookAt(playerid,1,1,1); // Устанавливаем нужный разворот камеры(чтобы она смотрела куда нужно)
			SetPVarInt(playerid,"TV",1); // Создаём переменную в которой указываем что игрок смотрит телевизор 
		        SCM(playerid,COLOR_ORANGE,"Вы смотрите телевизор. Введите /tv чтобы перестать смотреть.");
		}
		else if(GetPVarInt(playerid,"TV") == 1)
		{
			SetPlayerPos(playerid,LX,LY,LZ); // Возвращаем позицию игрока сохранённую ранее
	  	  	SetPlayerInterior(playerid,GetPVarInt(playerid,"TVINT")); // Возвращаем его интерьер 
		        SetPlayerVirtualWorld(playerid,GetPVarInt(playerid,"TVWORLD")); // Виртуальный мир
		        SetCameraBehindPlayer(playerid); // И устанавливаем позицию камеры сзади игрока
		        SCM(playerid,COLOR_ORANGE,"Вы перестали смотреть телевизор.");
		}
	}
 	return 1;
    
}
С командой просмотра завершили, теперь будем делать команду включения эфира.

PHP:
CMD:channel(playerid)
{
    if(!GetPVarInt(playerid, "Logged")) return SCM(playerid,COLOR_RED,"Вы не авторизованы!");
	if(IsPlayerInRangeOfPoint(playerid, 2.0, 1, 1,1)) // Вместо 1 устанавливаем координаты камеры/панели управления
	{
		if(tv == 0) // Если эфир не включен
		{
			if(PlayerInfo[playerid][pMember] == 1 && PlayerInfo[playerid][pRank] >= 4) // Проверка на фракцию и ранг
	 		{ 
				SendClientMessageToAll(COLOR_ORANGE,"Новостное агенство начинает эфир.");
				SCM(playerid,COLOR_ORANGE,"Вы начали эфир.");
				tv = 1;
				return 1;
	 		}
	 		if(PlayerInfo[playerid][pMember] != 1) return SCM(playerid,COLOR_ORANGE,"Вы не сотрудник Новостного Агенства!");
	 		if(PlayerInfo[playerid][pRank] < 4) return SCM(playerid,COLOR_ORANGE,"Для проведения эфиров вы должны иметь должность Журналист!");
		}
		if(tv == 1) // Если эфир включен
		{
		    if(PlayerInfo[playerid][pMember] == 1 && PlayerInfo[playerid][pRank] >= 4)
	 		{
				SCM(playerid,COLOR_ORANGE,"Вы закончили эфир.");
				tv = 0;
				return 1;
	 		}
	 		if(PlayerInfo[playerid][pMember] != 1) return SCM(playerid,COLOR_ORANGE,"Вы не сотрудник Новостного Агенства!");
	 		if(PlayerInfo[playerid][pRank] < 4) return  SCM(playerid,COLOR_ORANGE,"Для завершения  эфира вы должны иметь должность Журналист!");
		}
 		
	}
	return 1;
}
Если у Вас появились какие-то ошибки можете написать мне в личные сообщения vk.com/darkclybzotik
 
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу