Моддинг

Визоры

В отличии от БПО в Лисе очень сильно расширились возможности настроек визоров, попытаюсь объяснить что к чему.

Все файлы отвечающие за их настройку лежат тут 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 - круговые визоры для легких, средних, тяжелых танков.