
- •Структура данных игры
- •Примечание:
- •Примечание:
- •Боевая система и вооружение
- •Юниты и здания (ветка ebps)
- •Invulnerable — фактическое бессмертие юнита или здания. Внимание, такой юнит нельзя
- •Специфицеские параметры зданий
- •Модификаторы
- •Initial_delay_time — время подготовки к применению абилки. Range — дальность действия способности. Recharge_time — время перезарядки способности.
- •Боевые построения
- •Локализация мода
Боевая система и вооружение
— Обожаю запах напалма по утрам. Это запах победы!
Настало время поговорить об оружии, коим DoW богат как никто другой. Мало где встретишь такое количество спецэффектов, такого разнообразия красок и световых приемов. Даже сейчас движок смотрится вполне достойно! Как обогатить игру высококачественными модельками и текстурами — в следующих выпусках.
По уже сообщавшейся ранее информации, все оружие располагается в редакторе в attrib\weapon. А рассмотрим мы space_marine_bolt_pistol_scout.rgd, которым вооружены наши скауты.
Одни из важнейших параметров:
accuracy — точность. Варьируется в диапазоне от 0 до 1. При единице всегда попадает.
accuracy_reduction_when_moving — понижение точности при движении. От 0 до 1. При нуле
точность в движении не снижается, при единице перестает стрелять, так как точность снизилась
полностью до нуля.
max_range — максимальная дальность действия.
min_range — минимальная дальность действия. Используется для оружия, действующего по
площадям, у всяких XV-88 и так далее.
melee_weapon — является ли оружием ближнего боя.
reload_time — время на перезарядку в секундах.
reload_show_progress — показывать ли прогрессбар при стрельбе. Используется для различных
снайперов, артиллерии, словом, для всех, у кого большой reload_time.
setup_time — время на подготовку оружия к стрельбе в секундах. Пример — хэвиболтеры у ТСМ.
Все параметры со словом traverse предназначены для регулировки скорости и углов вращения
рук с оружием, спонсонов и башенок с злыми пулеметами.
Ветка miss_events описывает следы от оружия на различных видах поверхностей.
Ветка fire_cost — стоимость выстрела в ресурсах. Обычно бесплатно :)
Ветка cost — время на вооружение юнита данным оружием при апгрейде и его стоимость.
Самая важная ветка — area_effect. О ней разговор особый, ибо именно она отвечает за то, как
действует оружие на окружающие объекты.
Подветка area_effect_information имеет важнее параметры:
radius — определяет площадь поражения.
filter_type — определяет тип фильтра для оружия.
Бывают следующие типы фильтров:
tp_area_filter_enemy — действует только на врагов.
tp_area_filter_all — действует на всех (врагов и своих).
tp_area_filter_own — только на своих (пригодится для абилок). Подветка throw_data определяет силу, углы и направление разлета супостатов. Сильно зависит от массы.
10
Подветка weapon_damage определяет базовые повреждения от оружия.
Важнейшие параметры:
min_damage — базовые минимальные повреждения.
max_damage — базовые максимальные повреждения.
min_damage_value — повреждение, которое будет нанесено в любом случае.
morale_damage — урон по боевому духу.
Стоит напомнить о том, что я говорил о разных типах брони. Подветка armour_piercing_types
как раз отвечает за воздействие на разные типы брони. Обрати внимание на скриншот:
armour_piercing_value (или AP) по броне tp_infantry_heavy_high (терминаторская) составляет 25.
Это означает, что игра возьмет случайное число в диапазоне от min_damage до max_damage и
умножит на armour_piercing_value, деленное на 100.
Таким образом, AP — это процент, который возьмется от базовых повреждений.
Пример:
ap = 25, min_damage = 40, max_damage = 60, игра взяла случайное число в диапазоне min и max,
равное 50.
Истинное повреждение D = 50*25/100 = 0.25*50 = 12.5.
Итого 12.5 HP за выстрел по данному типу брони.
Если же AP = 0 для данной брони или тип брони вообще не описан в armour_piercing_types, то за
выстрел наносится повреждение, равное min_damage_value.
У болт-пистолета скаутов AP = 0 против брони tp_monster_high, а min_damage_value = 1.
Это значит, что по всяким высшим демонам и кнарлокам пукалка скаута наносит повреждений 1
HP за выстрел.
11
Возникает законный вопрос: орудие убийства создано, а как его дать в пользование юниту?
Elementary, my dear Watson!
Залезаем к в файл юнита в ветку combat_ext\hardpoints, где сидят аж 16 хардпоинтов с номерами.
Каждый hardpoint — возможное место под оружие. Это может быть рука, спонсон или другой
оруженосный девайс :)
Вот возьмем hardpoint_01, в котором в ветке weapon_table есть подветки weapon_01, weapon_02
и так далее. Под первым нумером всегда идет дефолтовое оружие (по умолчанию). А вот
следующие — возможные апгрейды, доступные посредством прямого выбора, выполнения
какого-либо research'а.
У скаута это огнемет, плазма или снайперка. Тактикалы вооружаются ХБ, мислами, огнеметами и
плазмой. Посесседы (одержимые) хаоса таким образом получают демонические огнеметы.
Любое вооружение отряда происходит через hardpoint'ы.
Следующий — hardpoint_02. Он отвечает за следующее оружие юнита. У скаута это тесак для
ближнего боя.
Теоретически юниту можно дать любое количество вооружений.
Также необходимо отметить, что вооружить другой пушкой сквад-лидера можно только проведением исследования (research'a), что должно быть прописано в requirements у оружия.
12
ВНИМАНИЕ! Очень важная тема — requirements (необходимые условия). Они организованы абсолютно одинаково во всех возможных сферах применения. Начиная от доступности оружия для апгрейда и техники для постройки до возможности проводить research'и (исследования).
В ветке requirements объекта (любой может быть) есть несколько пронумерованных подветок:
required_1, required_2 и так далее.
В каждую из них можно прописать специфическое условие.
В данном примере для доступности снайперок для скаутов необходимо провести исследование (в
поле research_name).
Описывать их все большого смысла не имеет. Лучше смотреть и делать по аналогии.
Важно вот что: для того, чтобы избавиться от условий мало удалить все лишние пункты (кроме
is_display_requirement), нужно также в самой ветке requirements с каждой подветви required_1,
2, 3 и так далее исправить Reference с исходного условия на required_none.lua
в |
Properties |
|
|
Name |
requirements |
Data Type |
Table |
|
Reference |
tables Vequirements. lua |
|
в |
Table Children |
|
|
required_l |
requirements Vequiredjesearch. lua |
required_2 |
requirements Vequiredjione. lua |
|
required_3 required_4 |
requirements Vequiredjione.lua requirements Vequiredjione. lua |
|
required_5 |
requirementsVequiredjione.lua |
|
required_6 |
requirements Vequiredjione. lua |
|
required_7 required_8 |
requirementsVequiredjione.lua requirements Vequired_none.lua |
|
required_9 |
requirements Vequired_none.lua |
|
required_10 |
requirements Vequiredjione. lua |
|
required_ll |
requirementsVequiredjione.lua |
|
|
|
|
Конкретно здесь нужно required_research исправить на required_none.
13
Сквады
Теперь подробнее поговорим про сквады. Что это такое мы вкратце обсудили. Теперь о мелочах.
Параметры
squad_cap_ext — отвечает за занимаемый лимит пехоты/техники.
squad_capture_strategic_point_ext — позволяет захватывать стратегические позиции (капить
точки).
able_to_capture — может ли капить точки.
able_to_uncapture — может ли снимать (декапить) точки.
capture_rate — коэффициент, влияющий на скорость капа. squad_infiltration_ext — возможность быть невидимым (там определяются условия). squad_loadout_ext — количественный/качественный состав сквада. squad_leader_ext — определяет сквад-лидеров (до 4 видов), их количество.
leader_x — ветка типа сквад-лидера, где параметр cost_time определяет его стоимость, а
параметр leader устанавливает юнит сквад-лидера. А вот параметр add_while_moving
позволяет делать лидера во время движения отряда или нет.
multi_with_reinforce — добавляется ли сквад-лидер независимо от реинфорса базовых
юнитов.
max_leaders — максимально количество сквад-лидеров. squad_morale_ext — определяет параметры боевого духа. squad_reinforce_ext — определяет реинфорс юнитов и грейды оружия.
max_upgrades — количество выдаваемых пушек на сквад (обычно меньше, чем число
юнитов в скваде). Тактикалы имеют не более 4 тяжелых видов вооружения на 8 рыл. squad_requirement_ext — условия на производство данного сквада. squad_jump_ext — возможность телепорта/прыжка на определенное расстояние.
setup_time — время на подготовку к прыжку.
breakdown_time — время на прерывание режима прыжка (приход в себя :)).
go_up_time — время на взлет.
go_down_time — время на приземление.
jump_distance_max — максимальное расстояние.
charge_max — максимальный заряд ранца.
charge_jump_cost_max — максимальная стоимость прыжка.
charge_jump_cost_min — минимальная стоимость прыжка.
charge_regeneration — восстановление заряда ранца в секунду.
charge_starting_fraction — стартовый заряд ранца.
combat_enabled — можно ли использовать в ближнем бою или под огнем.
teleport — является ли телепортом. squad_transportable_ext — перевозимость в транспорте.
nr_spots — количество занимаемых слотов.
transport_type — тип перевозимых юнитов.
Полный список возможных типов доступен в attrib\ type_transportable.
Специальные параметры
squad_can_attach_ext — можно ли прикреплять к другим сквадам как командира.
squad_attach_receive_ext — можно ли к скваду прикрепить командира.
14