В тылу врага: Визоры

В отличии от "БПО" в "Лисе" очень сильно расширились возможности настроек визоров, попытаюсь объяснить что к чему.
  • Все файлы, отвечающие за их настройку, лежат тут: set\vision\vision.set - распределение файлов для сингла и МП.
  • settings.set - определение юнитов, оружия, с которого ведут стрельбу, и настройка отображения зон видимости при клике на враге
  • generic.inc - основные макросы
  • mp.inc, single.inc - конфиги для сингла и МП.
Итак, открываем mp.inc и что мы тут видим:
{"mp_soldier"
	{uncover 5}
 	("vision_human" args 40)
 	{h_fov 90}
 	{v_fov 120}
         {wide 2}
 }
  • mp_soldier - имя визора. Визор закрепляется за тем или иным юнитом. Для пехоты присваиваются в set\breed\, для остальных юнитов в properties или непосредственно в .def
  • uncover - радиус в метрах, на которой юниту не закрывает обзор растительность. Чтобы пехотинцу, лежащему в кусте не мешал этот же куст.
  • vision_human - вызов макроса vision_human из generic.inc и передача в него значения 40 для переменной %0
  • h_fov горизонтальный сектор видимости в градусах
  • v_fov верикальный сектор видимости в градусах
  • wide параметр, который меняет форму визора вместо острого угла на параболу. Чем больше число, тем шире основание параболы.
Самым главным является вызов макроса. Именно в макросе формируются коэффициенты видимости от переданного параметра.

Код макроса vision_human:

(define "vision_human"
	{radius %0}
	{rules
		{human 1
			{firing 1.5
				{firing_silent 0.1}
				{firing_delisle 0.2}
				{knife_ger 0.1}
				{knife_rus 0.1}
				{knife_union 0.1}
				{f1 0.1}
				{m18 0.1}
				{m24 0.1}
				{m24x5 0.1}
				{m39 0.1}
				{m61 0.1}
				{mk1 0.1}
				{molotov_coctail 0.1}
				{n73at 0.1}
				{pwm1 0.1}
				{rg42x3 0.1}
				{rpg40 0.1}
				{rpg43 0.1}
				{smoke 0.1}
				{type_3_at 0.1}
				{type_97 0.1}

				{cover 1}
			}
			{cover 0.15
				{crawl 0.1
					{sniper 0.07}
					{stealth 0.07}
				}
			}
			{squat 0.85
				{sniper 0.5}
				{stealth 0.5}
			}
			{crawl 0.5
				{still 0.45
					{sniper 0.25}
					{stealth 0.25}
				}
				{sniper 0.3}
				{stealth 0.3}
			}
			{still 0.9}
			{visible 1.3}
		}
		{cannon_01 1.1			;heavy mgun, infantry mortar
			{firing 1.3}
			{visible 1.3}
			{still 1}
		}
		{cannon_02 1.1    		;light gun
			{firing 1.3}
			{visible 1.3}
			{still 1}
		}
		{cannon_03 1.4			;middle gun
			{firing 1.6}
			{visible 1.6}
			{still 1.2}
		}
		{cannon_04 1.5			;heavy gun
			{firing 1.7}
			{visible 1.7}
			{still 1.3}
		}
		{cannon_05 2			;howitzer
			{firing 2.5}
			{visible 1.7}
			{still 1.8}
		}
		{vehicle_00 1.3			;moto
			{firing 1.5}
			{visible 1.5}
			{still 1.3}
		}
		{vehicle_01 1.4			;jeep
			{firing 1.6}
			{visible 1.6}
			{still 1.2}
		}
		{vehicle_02 1.5			;light armoredcars
			{firing 1.7}
			{visible 1.7}
			{still 1.3}
		}
		{vehicle_03 1.5			;light SPA, armoredcars, trucks
			{firing 1.7}
			{visible 1.7}
			{still 1.3}
		}
		{vehicle_04 1.6			;light tanks
			{firing 1.8}
			{visible 1.8}
			{still 1.4}
		}
		{vehicle_04_spa 1.7		;middle SPA
			{firing 1.9}
			{visible 1.9}
			{still 1.5}
		}
		{vehicle_05 1.8			;middle tanks
			{firing 2}
			{visible 2}
			{still 1.6}
		}
		{vehicle_06 2			;heavy tanks
			{firing 2.2}
			{visible 2.2}
			{still 1.8}
		}
		{vehicle_07 1.5			;rocket artillery
			{firing 2.2}
			{visible 1.5}
			{still 1.3}
		}
	}
	{mods
		{stand 1}
	}
)
radius %0 - общий радиус сектора визора, %0 - переменная, которая передается при его вызове.
Все цифры, которые идут ниже, - это коэффициенты к этому радиусу. Т.е. если радиус при вызове был задан 40 метров, то при {human 1} мы будем видить человека на 40 метрах, при {human 2} - на 80, при {human 0.5} - на 20 метрах. При этом, если есть какие-то другие параметры, опеределяющие положение бойца, оружие, с которого ведется огонь, - то модификаторы берутся внутренние.
Простой пример
	{rules
		{human 1
			{firing 1.5
				{f1 0.1}
			}
			{cover 0.15
				{crawl 0.1
					{sniper 0.07}
				}
			}
			{squat 0.85
				{sniper 0.5}
			}
			{crawl 0.5
				{still 0.45
					{sniper 0.25}
				}
				{sniper 0.3}
			}
			{still 0.9}
			{visible 1.3}
		}
Здесь описано, что боец обнаружится на 1, если он
  • стреляет(firing) - 1.5, если кидает гранату(firing -> f1) - 0.1,
  • скрытый в кустах(cover) - 0.15,
  • скрытый в кустах и ползающий (cover -> crawl) - 0.1,
  • скрытый в кустах ползающий снайпер(cover -> crawl -> sniper) - 0.07,
  • сидящий(squat) - 0.85, сидящий снайпер(squat -> sniper) - 0.5,
  • в положении лежа(crawl) - 0.5,
  • в положении лежа неподвижный(crawl -> still) - 0.45,
  • в положении лежа неподвижный снайпер(crawl -> still -> sniper) - 0.25,
  • ползающий снайпер(crawl -> sniper) - 0.3,
  • неподвижный(still) - 0.9,
  • исчезает после любого обнаружения(visible) - 1.3
Это был пример для пехоты. Дальше еще проще - остальные юниты.
Код:
		{vehicle_05 1.8			;middle tanks
			{firing 2}
			{visible 2}
			{still 1.6}
		}
vehicle_05 - это юнит, у которого в .def в блоке props прописано vision_lev05. Соотношения vehicle_05 -> vision_lev05 настраивается в блоке {terms ...} в settings.set. Здесь же настраивается связи для стрелкового оружия\гранат. В блоке {ranges ...} прописываются те сектора, которые вы хотите видеть при клике на вражеском юните. В оригинале это 2 сектора, на пехоту и на тяжелые танки.
Кроме макроса vision_human, есть и другие макросы, для оптики, офицера и т.д., они соответсвенно вызываются в нужных визорах. Вы также можете создать свои.

Список визоров


  • human - танкисты, гражданские
  • mp_soldier - бойцы
  • mp_officer - офицер
  • mp_sniper - снайпер
  • mp_specnaz - разведчик
  • soldier_focused - визор для снайпера или офицера, когда те целятся. Не путать с круговым визором, бегающим за прицелом.
  • rifle_telescope - визор снайперки
  • field_glass - бинокль
  • cannon_main - основной визор для пушек
  • cannon_mgun - основной визор для станковых пулеметов
  • cannon_main-far - основной визор для гаубиц, минометов, флак 18
  • cannon_crew - дополнительный визор расчета для пушек, минометов
  • vehicle_main - машины
  • vehicle_top_mgun - визор зенитного пулеметчика
  • vehicle_top_turret - визор пулемета для hetzer
  • moto_crew - экипаж мотоцикла
  • moto_around - круговой визор для мото
  • tank_main-l - основной визор для легких танков
  • tank_main-m - основной визор для средних танков
  • tank_main-h - основной визор для тяжелых танков
  • tank_driver - визор маханика-водителя
- tank_back - визор для кормового пулемета
  • tank_around-l, tank_around-m, tank_around-h - круговые визоры для легких, средних, тяжелых танков.

Просмотров: 3 909

VetsaN #1 - 8 лет назад 0
Ууууууу, как все сложно.
SpiritWolf #2 - 8 лет назад 0
Но полезная все таки, ниче сложно тут нет
reALien #3 - 8 лет назад 0
Имхо, синтаксис простой)
SpiritWolf #4 - 8 лет назад 0
Ну, в общем то .def файлы не сложные имхо, а вот есть и другие... очень тяжело их освоить
Это сообщение удалено