lonin
Компетентный
Здравствуйте уважаемые форумчане!
Команда предназначена для наблюдения со спутника.И так, начнем:
Ко всем new's:
PHP:
new naut[MAX_PLAYERS];
new Float:posJad[MAX_PLAYERS][3];
new Float:posW[MAX_PLAYERS][3];
PHP:
if (strcmp(cmdtext, "/supervision", true)==0)
{
if(naut[playerid] != 1 && PlayerInfo[playerid][pMember] == 5) // PlayerInfo[playerid][pMember] при необходимости меняем на свое!
{
GetPlayerPos(playerid, posW[playerid][0], posW[playerid][1], posW[playerid][2]); // Записываем координаты х,у,z для возврата в точку на которой находились
SetPlayerPos(playerid, posJad[playerid][0]+7,posJad[playerid][1]+3,posJad[playerid][2]-20); // Меняем координат игрока по точке на карте
SetPlayerCameraPos(playerid,posJad[playerid][0],posJad[playerid][1],posJad[playerid][2]+80); // Меняем координат камеры по точке на карте
SetPlayerCameraLookAt(playerid,posJad[playerid][0],posJad[playerid][1],posJad[playerid][2]); // Меняем координат в который смотрит камера по точке на карте
TogglePlayerControllable(playerid, 0); // замораживаем игрока
SendClientMessage(playerid, COLOR_RED, "[WARNING] Вы подключились к спутнику через переносной модуль!"); // Думаю не стоит объяснять
SendClientMessage(playerid, COLOR_RED, "[WARNING] Используйте NUM4 и NUM6 для приближения/отдаления!");// Думаю не стоит объяснять
SetTimer("Nauticoff", 30000, false); // заводим таймер на 30 секунд для отключения наблюдения
naut[playerid] = 1; // Даем значения что naut что бы нельзя было еще раз использовать команду
return 1;
}
else return SendClientMessage(playerid, COLOR_RED, "Вам не доступна эта команда!");
}
PHP:
posJad[playerid][0] = fX;
posJad[playerid][1] = fY;
posJad[playerid][2] = fZ;
PHP:
forward Nauticoff(playerid);
public Nauticoff(playerid)
{
SetCameraBehindPlayer(playerid); // Возвращаем игроку дар видеть :D
SetPlayerPos(playerid, posW[playerid][0], posW[playerid][1], posW[playerid][2]); // Возвращаем игрока в былое место
TogglePlayerControllable(playerid, 1); // Даруем ему силу овладеть собой
naut[playerid] = 0; // Даруем ему возможность все повторить
SendClientMessage(playerid, COLOR_RED, "[WARNING] Спутниковое наблюдение отключено!");
}
PHP:
if(newkeys == 8192) //ZOOM
{
if(naut[playerid] == 1)
{
new Float:posJ[MAX_PLAYERS][3];
GetPlayerCameraPos(playerid,posJ[playerid][0],posJ[playerid][1],posJ[playerid][2]);// Берем координаты камеры в переменную posJ
if(posJad[playerid][2] < posJ[playerid][2])
{
SetPlayerCameraPos(playerid, posJ[playerid][0], posJ[playerid][1], posJ[playerid][2]-10); // приближаем картинку на 10м.
SetPlayerCameraLookAt(playerid,posJad[playerid][0],posJad[playerid][1],posJad[playerid][2]); // Смотрим в прежнюю точку
return true;
}
}
}
if(newkeys == 16384) //Zoom
{
if(naut[playerid] == 1)
{
new Float:posJ1[MAX_PLAYERS][3];
GetPlayerCameraPos(playerid,posJ1[playerid][0],posJ1[playerid][1],posJ1[playerid][2]);// Берем координаты камеры в переменную posJ1
if(posJad[playerid][2] < posJ1[playerid][2])
{
SetPlayerCameraPos(playerid, posJ[playerid][0], posJ[playerid][1], posJ[playerid][2]+10);// отдаляем картинку на 10м.
SetPlayerCameraLookAt(playerid,posJad[playerid][0],posJad[playerid][1],posJad[playerid][2]); // Смотрим в прежнюю точку
return true;
}
}
}
При вводе /supervision запускается таймер на 30 секунд, после чего команда автоматом оффается. Если же нужно, что бы "спутниковое зрение" отключалось через команду, то вместо
PHP:
if (strcmp(cmdtext, "/supervision", true)==0)
{
if(naut[playerid] != 1 && PlayerInfo[playerid][pAdmin] >= 5) // PlayerInfo[playerid][pMember] при необходимости меняем на свое!
{
GetPlayerPos(playerid, posW[playerid][0], posW[playerid][1], posW[playerid][2]); // Записываем координаты х,у,z для возврата в точку на которой находились
SetPlayerPos(playerid, posJad[playerid][0]+7,posJad[playerid][1]+3,posJad[playerid][2]-20); // Меняем координат игрока по точке на карте
SetPlayerCameraPos(playerid,posJad[playerid][0],posJad[playerid][1],posJad[playerid][2]+80); // Меняем координат камеры по точке на карте
SetPlayerCameraLookAt(playerid,posJad[playerid][0],posJad[playerid][1],posJad[playerid][2]); // Меняем координат в который смотрит камера по точке на карте
TogglePlayerControllable(playerid, 0); // замораживаем игрока
SendClientMessage(playerid, COLOR_RED, "[WARNING] Вы подключились к спутнику через переносной модуль!"); // Думаю не стоит объяснять
SendClientMessage(playerid, COLOR_RED, "[WARNING] Используйте NUM4 и NUM6 для приближения/отдаления!");// Думаю не стоит объяснять
SetTimer("Nauticoff", 30000, false); // заводим таймер на 30 секунд для отключения наблюдения
naut[playerid] = 1; // Даем значения что naut что бы нельзя было еще раз использовать команду
return 1;
}
else return SendClientMessage(playerid, COLOR_RED, "Вам не доступна эта команда!");
}
PHP:
if (strcmp(cmdtext, "/svon", true)==0)
{
if(naut[playerid] != 1 && PlayerInfo[playerid][pAdmin] >= 5) // PlayerInfo[playerid][pMember] при необходимости меняем на свое!
{
GetPlayerPos(playerid, posW[playerid][0], posW[playerid][1], posW[playerid][2]); // Записываем координаты х,у,z для возврата в точку на которой находились
SetPlayerPos(playerid, posJad[playerid][0]+7,posJad[playerid][1]+3,posJad[playerid][2]-20); // Меняем координат игрока по точке на карте
SetPlayerCameraPos(playerid,posJad[playerid][0],posJad[playerid][1],posJad[playerid][2]+80); // Меняем координат камеры по точке на карте
SetPlayerCameraLookAt(playerid,posJad[playerid][0],posJad[playerid][1],posJad[playerid][2]); // Меняем координат в который смотрит камера по точке на карте
TogglePlayerControllable(playerid, 0); // замораживаем игрока
SendClientMessage(playerid, COLOR_RED, "[WARNING] Вы подключились к спутнику через переносной модуль!"); // Думаю не стоит объяснять
SendClientMessage(playerid, COLOR_RED, "[WARNING] Используйте NUM4 и NUM6 для приближения/отдаления!");// Думаю не стоит объяснять
naut[playerid] = 1; // Даем значения что naut что бы нельзя было еще раз использовать команду
return 1;
}
else return SendClientMessage(playerid, COLOR_RED, "Нельзя!!");
}
PHP:
if(strcmp(cmdtext, "/svoff", true) ==0)
{
if(naut[playerid] != 0 && PlayerInfo[playerid][pAdmin] >= 5)
{
Nauticoff(playerid);
return 1;
}
else return SendClientMessage(playerid, COLOR_RED, "Нельзя!");
}
ScreenShot's:
Чтобы видеть скрытое содержание Зарегистрируйтесь на форуме!
Чтобы видеть скрытое содержание Зарегистрируйтесь на форуме!
Чтобы видеть скрытое содержание Зарегистрируйтесь на форуме!
Последнее редактирование:
