Clybzotik
Ученик
Здравствуйте, в pawno я не так долго но всё-же напишу этот мануал.
Для написания системы понадобиться командный процессор DC_CMD
И так начнём.
Создаём глобальную переменную которая будет отвечать за включение/выключение эфира.
И так, начнём писать команду для просмотра эфира.
С командой просмотра завершили, теперь будем делать команду включения эфира.
Если у Вас появились какие-то ошибки можете написать мне в личные сообщения vk.com/darkclybzotik
Для написания системы понадобиться командный процессор 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;
}
Последнее редактирование:
