Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
  • Need help?

    Create a topic in the appropriate section
    Don't write everything in the chat!
  • Take a look at the marketplace

    There you can buy
    everything related to game servers
  • Don't want a ban?

    Please read our rules
    Don't disturb the order!
  • Sell or buy?

    Use services of the guarantor
    We will make your deal safe
  • 0
TheLinsus

Изменение FOV

Реально ли реализовать изменение FOV нажатием, например, на дальномер?

Share this post


Link to post
Share on other sites

13 answers to this question

Recommended Posts

  • 0

Что значит FOV? Дальность прорисовки или что? Угол обзора? Понять не могу.

Если речь о том, что я думаю, то что ты конкретно хочешь? Чтобы он сильнее приблежал или что?

Edited by anap (see edit history)

Share this post


Link to post
Share on other sites





  • 0

Что значит FOV? Понять не могу.

 

Поле зрения, как на минус ты нажимаешь или на плюс на правой клавиатуре во время игры. FOV показывает сколько пространства вместится в твой монитор (ну не совсем пространства). Думаю ты понял.

Share this post


Link to post
Share on other sites
  • 0

 

Поле зрения, как на минус ты нажимаешь или на плюс на правой клавиатуре во время игры. FOV показывает сколько пространства вместится в твой монитор (ну не совсем пространства). Думаю ты понял.

Окей. Как я понял ты хочешь перенести данную кнопку с -/+ к примеру на дальномер?

Edited by anap (see edit history)

Share this post


Link to post
Share on other sites
  • 0

Окей. Как я понял ты хочешь перенести данную кнопку с -/+ к примеру на дальномер?

 

Ну почти. На минус или плюс FOV не фиксируется, а я хочу сделать выбор с фиксацией до смерти игрока. Т.е. значения поставить от 0 до 2, чтобы игрок сам выбрал оптимальный FOV для себя. Это всё делается для сервера без третьего лица, думаю многим будет интересно впихнуть как можно больше пространства в свой экран.

 

Нашёл команду, но не знаю как её вообще реализовать:

https://community.bistudio.com/wiki/camSetFov

Share this post


Link to post
Share on other sites
  • 0

Интересно. Что если применить данную команду, к примеру на скрипте "Изм. дальности прорисовки".
Что-то вроде этого:

(findDisplay 106) closeDisplay 1;
waitUntil { isNull (FindDisplay 106) };
view_fov_menu =
[
	["",false],
		[" Низкое", [2],  "", -5, [["expression","camSetFov 0.5; systemChat('Поле зрения: Низкое');"]], "1", "1"],
		[" Среднее", [3],  "", -5, [["expression","camSetFov 1.0; systemChat('Поле зрения: Среднее');"]], "1", "1"],
		[" Высокое", [4],  "", -5, [["expression","camSetFov 1.5; systemChat('Поле зрения: Высокое');"]], "1", "1"],
		["", [-1], "", -5, [["expression", ""]], "1", "0"],
		["Выход", [13], "", -5, [["expression", ""]], "1", "1"]
];

showCommandingMenu "#USER:view_fov_menu";

*Со значениями camSetFov также можешь поиграться в диапазоне: 0.01-2.00

Подключение:

1. В Infistar, в блок _cMenu дописать:

"#USER:view_fov_menu" 

 

2. В extra_rc.hpp(надеюсь он у тебя подключён) дописать:

class Binocular_Vector {
        class FovBV {
            text = "Поле зрения";
            script = "execVM 'путь к файлу\view_fov.sqf'";
        };
    };

 

Не уверен до конца в работе, нужно тестировать.

Edited by anap (see edit history)

Share this post


Link to post
Share on other sites
  • 0

Интересно. Что если применить данную команды, к примеру на скрипте "Изм. дальности прорисовки".

Что-то вроде этого:

(findDisplay 106) closeDisplay 1;
waitUntil { isNull (FindDisplay 106) };
view_distance_menu =
[
	["",false],
		[" Низкое", [2],  "", -5, [["expression","camSetFov 0.5; systemChat('Поле зрения: Низкое');"]], "1", "1"],
		[" Среднее", [3],  "", -5, [["expression","camSetFov 1.0; systemChat('Поле зрения: Среднее');"]], "1", "1"],
		[" Высокое", [4],  "", -5, [["expression","camSetFov 1.5; systemChat('Поле зрения: Высокое');"]], "1", "1"],
		["", [-1], "", -5, [["expression", ""]], "1", "0"],
		["Выход", [13], "", -5, [["expression", ""]], "1", "1"]
];

showCommandingMenu "#USER:view_fov_menu";

Подключение:

1. В Infistar, в блок _cMenu дописать:

"#USER:view_fov_menu" 

 

2. В extra_rc.hpp(надеюсь он у тебя подключён) дописать:

class Binocular_Vector {
        class FovBV {
            text = "Поле зрения";
            script = "execVM 'путь к файлу\view_fov.sqf'";
        };
    };

 

Не уверен до конца в работе, нужно тестировать.

 

Какой тип камеры указывать? Синтаксис такой: camera camSetFov level

"camera: Object - object of type "camera"

Это вырезка из сайта BIS.

 

Вот в этом и вся загвоздка. Помню посмотрел мельком скрипт по отдалению камеры в небо после смерти игрока, там камера привязывалась к координатам смерти. А как сделать здесь совершенно не понимаю.

Я, конечно, попробую твой код, но более чем уверен он не заработает без типа камеры.

Edited by TheLinsus (see edit history)

Share this post


Link to post
Share on other sites
  • 0

Какой тип камеры указывать? Синтаксис такой: camera camSetFov level

"camera: Object - object of type "camera"

Это вырезка из сайта BIS.

 

Вот в этом и вся загвоздка. Помню посмотрел мельком скрипт по удалению камеры в небо после смерти игрока, там камера привязывалась к координатам смерти. А как сделать здесь совершенно не понимаю.

Я, конечно, попробую твой код, но более чем уверен он не заработает без типа камеры.

Мда.. Хотя бы образец для разбора был-бы...

Share this post


Link to post
Share on other sites
  • 0

Мда.. Хотя бы образец для разбора был-бы...

 

camera = GetPos player;

может так? тогда придётся обновлять скрипт без задержки, хотя не уверен.

Share this post


Link to post
Share on other sites
  • 0

_camera = GetPos player; - вот так.

НО, это будет не очень умно, каждый раз обновлять координаты игрока. Нужно искать другой путь.

Поищу похожии скрипты, может что-то смогу вытащить.

Edited by anap (see edit history)

Share this post


Link to post
Share on other sites
  • 0

_camera = GetPos player; - вот так.

НО, это будет не очень умно, каждый раз обновлять координаты игрока. Нужно искать другой путь.

Поищу похожии скрипты, может что-то смогу вытащить.

 

кстати, до сих пор не понимаю зачем писать _ перед переменной. Понимаешь почему?

Скрипты тоже буду искать, может что и откопаю. Надеюсь из знающих людей откликнется и поможет решить проблему.

Share this post


Link to post
Share on other sites
  • 0

Ну что, не пробовал ставить мою версию скрипта?

Share this post


Link to post
Share on other sites
  • 0

 

Ну что, не пробовал ставить мою версию скрипта?

Сегодня попробую, отпишусь.

Share this post


Link to post
Share on other sites
  • 0

Ну что, не пробовал ставить мою версию скрипта?

 

В общем фигня полнейшая, camsetFOV видимо работает только со статичными объектами. Никак не смог сделать нормальную регулировку. Нужны другие варианты.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By 123new
      Такого плана вопрос по моддингу на 1.0.
      В моде есть, например, класс:
      class ExpansionGlobalChat с кучей функций
      создаю свой мод, в котором указываю
      modded class ExpansionGlobalChat { override void GlobalChat(CallType type, ref ParamsReadContext ctx, ref PlayerIdentity sender, ref Object target) { super.GlobalChat(type, ctx, sender, target); Param2< string, string > data; if ( !ctx.Read( data ) ) return; if( type == CallType.Server ) { string name = sender.GetName(); string steamid = sender.GetPlainId(); string bisid = sender.GetId(); string idtable = sender.GetPlayerId().ToString(); string log_date_time = ExpansionGetDateTime(); string format = "[" + log_date_time + "] " + "[Chat]" + " " + name + "(steamid=" + steamid + ", bisid=" + bisid + ") " + data.param2; Print(format); } } } и пакую, запускаю сервер. Пишет как на скрине.

      Если modded убираю - пишет что класс уже используется. Что я не так делаю? Как делать правильно? не допираю.
    • By DrTauren
      Собственно, из названия понятно, что в этом гайде мы научимся отключать уровень стамины игрока, отключать усталость

      Инструкция:
      1) Находим файл dta/scripts.pbo и распаковываем его при помощи PBO Manager и копируем только что распакованную папку scripts в корневую папку сервера
      2) Открываем файл scripts/3_Game/constants.c и изменяем этот код под себя:
      const int STAMINA_DRAIN_STANDING_SPRINT_PER_SEC = 5; //в единицах (сколько единиц выносливости отбавляется при ускорении) const int STAMINA_DRAIN_CROUCHED_SPRINT_PER_SEC = 1; //в единицах (сколько единиц выносливости отбавляется при ускорении на корточках) const int STAMINA_DRAIN_PRONE_SPRINT_PER_SEC = 3; //в единицах (сколько единиц выносливости отбавляется при ускорении лёжа) const float STAMINA_DRAIN_HOLD_BREATH = 0.2; //в единицах (сколько единиц выносливости отбавляется при задержке дыхания) const int STAMINA_DRAIN_JUMP = 20; //в единицах (сколько единиц выносливости отбавляется при прыжке) const int STAMINA_DRAIN_MELEE_LIGHT = 5; //в единицах (сколько единиц выносливости отбавляется при лёгком ударе в ближнем бою) const float STAMINA_DRAIN_MELEE_HEAVY = 20; //в единицах (сколько единиц выносливости отбавляется при сильном ударе в ближнем бою) const int STAMINA_DRAIN_MELEE_EVADE = 8; //в единицах (сколько единиц выносливости отбавляется при уклонении) Таким образом мы можем отключить усталость игрока, стамина всегда будет максимальная. Для этого нужно всего лишь установить все параметры на значение 0
       
    • By DrTauren
      Дорогие друзья, Администрацией форума приняты новые правила касательно слива\распространения античита InfiSTAR 

      Теперь коллектив сайта не несёт ответственности за слив продукта, т.к. будет создана специальная тема, в которой будут выкладываться уже слитые версии, найденные в интернете, на других сайтах. Выкладываться они будут абсолютно без изменений. Кстати, все темы касательно InfiSTAR будут удалены с сайта.
      Обращаю внимание что данное решение было принято не мной лично, а всем коллективом S-Platoon.
      Внимание! На форуме все так же запрещено сливать\продавать\выкладывать InfiSTAR, это будет караться баном без предупреждения. 
      В данной теме вы можете изложить своё мнение по этому вопросу, а также предложить другие пути разрешения ситуации
    • By DrTauren
      Собственно из названия темы всё понятно, да и сам скрипт всем давно известен. Он позволяет изменить дальность прорисовки при нажатии ПКМ по биноклю или дальномеру.

      Что вам понадобится:

      Инструкция по установке:
      1) Качаем архив: 
      2) Открываем наш extra_rc.hpp и добавляем туда код:
      class Binocular { class distanceb500m { text = "500 meters"; script = "execVM 'custom\setview\500.sqf'"; }; class distanceb1000m { text = "1000 meters"; script = "execVM 'custom\setview\1000.sqf'"; }; class distanceb1500m { text = "1500 meters"; script = "execVM 'custom\setview\1500.sqf'"; }; class distanceb2000m { text = "2000 meters"; script = "execVM 'custom\setview\2000.sqf'"; }; class distanceb2500m { text = "2500 meters"; script = "execVM 'custom\setview\2500.sqf'"; }; class distanceb3000m { text = "3000 meters"; script = "execVM 'custom\setview\3000.sqf'"; }; class distanceb3500m { text = "3500 meters"; script = "execVM 'custom\setview\3500.sqf'"; }; class distanceb4000m { text = "4000 meters"; script = "execVM 'custom\setview\4000.sqf'"; }; class distanceb4500m { text = "4500 meters"; script = "execVM 'custom\setview\4500.sqf'"; }; class distanceb5000m { text = "5000 meters"; script = "execVM 'custom\setview\5000.sqf'"; }; }; class Binocular_Vector { class distanceb500m { text = "500 meters"; script = "execVM 'custom\setview\500.sqf'"; }; class distanceb1000m { text = "1000 meters"; script = "execVM 'custom\setview\1000.sqf'"; }; class distanceb1500m { text = "1500 meters"; script = "execVM 'custom\setview\1500.sqf'"; }; class distanceb2000m { text = "2000 meters"; script = "execVM 'custom\setview\2000.sqf'"; }; class distanceb2500m { text = "2500 meters"; script = "execVM 'custom\setview\2500.sqf'"; }; class distanceb3000m { text = "3000 meters"; script = "execVM 'custom\setview\3000.sqf'"; }; class distanceb3500m { text = "3500 meters"; script = "execVM 'custom\setview\3500.sqf'"; }; class distanceb4000m { text = "4000 meters"; script = "execVM 'custom\setview\4000.sqf'"; }; class distanceb4500m { text = "4500 meters"; script = "execVM 'custom\setview\4500.sqf'"; }; class distanceb5000m { text = "5000 meters"; script = "execVM 'custom\setview\5000.sqf'"; }; }; }; 3) Копируем папку setview из архива в нашу папку custom, находящуюся в папке миссии

      Вот и всё. Надеюсь кому-то помог 

      Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.
    • By kenguru74
      Всем привет!
       
      Необходимо поднять солнце на нескольких картах. Вроде положение солнца в полдень прописано в конфиге в аддоне самой карты, так? Смотрел, но и у Тави и у Черно одна и та же latitude.. WTF?
       
      Невозможно играть из-за HDR, а гугля обделался, инфы нет
  • Our picks

×
×
  • Create New...

Important Information

By using this site, you automaticly agree to our Guidelines and Privacy Policy.
We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.