Страйдеры
Содержание
1 Вступление
2 Настройка
3 Страйдеры на прогулке
4 Ну ё-моё, опять не работает
5 Приседающие страйдеры
6 Палим из пушки
7 Взрываем здания

Втупление

Страйдеры - самые грозные противники в ХЛ2, вы могли их видеть во время сражения перед музеем или в других районах Города 17. Возможно, вы помните их реалистичные и офигительно мощные пушки, которые взрывали целые здания и приводили всех в ужас. Хотите себе таких же зверюг? тогда погнали.

Данный туториал научит вас делать так, чтобы страйдеры:

- ходили

- пригибались, проходили под препятствиями, вставали обратно

- палили из своих супер-пушек

Данный туториал для упрощения понимания разделен на 3 части(первую из которых вы и читаете):

Часть I: Учим страйдеров ходить, пригибаться, проходить под препятствиями и вставать обратно

Часть II: Учим страйдеров палить из супер-пушек и взрывать здания
Настройка

Этот шаг не обязателен, но очень вам поможет - мы сделаем так, чтобы страйдеры не стреляли в вас. Создайте ентитю ai_relationship в любом месте карты с такими свойствами:
Subject(s): npc_strider
Target(s): player
Disposition: [i]Neutral
Start Active
: Yes.

Теперь страйдеры будут относиться к вам нейтрально.
Часть I
Учим страйдеров ходить


Прежде всего нам нужно создать npc_strider. Дайте ему имя strider.

Затем создайте ентитю path_corner очень близко к месту расположения страйдера и дайте ей имя path_strider_1. Для того, чтобы создать путь просто зажмите shift и перетащите path_corner - Хаммер клонирует ее, автоматически переименует в path_strider_2 и соединит с предыдущей ентитей(т.е. сделает ее Next Stop Target`ом первой ентити).

Теперь в свойствах страйдера поставьте Target path corner: path_strider_1. Поставьте info_player_start и идите тестировать нашего зверька.
Ну ё-моё, опять не работает!

Вы, скорее всего, заметили, что наша биомашинка ничего не делает, а все почему? Да потому что она также нуждается в такой чтуке, как аналогичный путь из info_node_air_hint, без него страйдеры не смогут ориентироваться между path_corner`ами. Их(info_node_air_hint) нужно размещать над path_corner и в свойствах поставить Hint: Strider Node, что определит эти ентити, как пути для страйдеров. Вот теперь должно заработать, а если не заработает, значит, вам нужно будет повторить все сначала.
Приседающие страйдеры

Сдеующая чтука, которой мы научим страйдеров - приседание под препятствиями. Ну, для начала давайте создадим эти самые препятствия: можно, конечно сделать тунель, но в нашем случае для упрощения процесса это будет мост. Когда будете его делать, не забудьте сделать его достаточной ширины для пролезания под ним страйдера.

Затем расположите path_corner`ы и info_node_air_hint`ы так, чтобы один из отрезков пути был под мостом. Теперь в аутпутах path_corner`а, с которого начинается отрезок, добавьте следующее: Name: OnPass, Target: strider, Via this input: crouch - таким образом вы заставите нашу зверушку присесть.

То же самое поделайте с конечным path_corner`ом, только в поле Via this input поставьте stand(встать).
Часть II
Палим из пушки


Прежде всего нам нужно создать еще пару path_corner после отрезка приседания/вставания(см. выше).

Потом создайте ентитю scripted_target в том месте, куда страйдер будет стрелять, дав ей имя strider_target - в эту чтуку он будет мочить из своей пушки.

Теперь в том path_corner`е, пройдя который страйдер начнет стрелять, создайте аутпут с такими свойствами: [b]Name
: OnPass, Target: strider,Via this input: SetCannonTarget, With a parameter override of: имя ентити, в которую нужно пальнуть(если вы хотите, чтобы стреляли по вам, то напишите !player).
Взрываем здания


Эту фишку можно осуществить 2 путями: создать здание из осколков или разрезать здание на эти самые осколки при помощи Clipping Tool. На них и будет разлетаться здания при взрыве.

Во-первых, нам нужно сделать каркас/оболочку здания. Конечно, вы можете добавить побольше деталей, но я не рекомендую этого делать, т.к. при взрыве они склеются(как на карте dm_overwatch)

Во-вторых, нужно разрезать здание на несколько частей(8-12) и каждую часть сделать func_brush. Теперь выделите все части и назовите их building_pieces. Затем создайте ентитю phys_convert, дав ей имя building_converter, и в поле Target entity to convert: building_pieces. Вся эта фишка нужна для того, чтобы здание не развалилось раньше времени.
Теперь создайте env_explosion с именем building_explosion там, куда страйдер будет стрелять(или в центре здания). Можете поэксперементировать с его свойством Magnitude(сила взрыва). Также сделайте ентитю scripted_target, дав ей имя strider_target. Теперь создайте браш с размерами 4x4x4 в центре scripted_target, превратите его в func_button с именем explosion_sensor и добавьте 3 аутпута:

(Output name, Target, Target Input, Time)

- OnDamaged - building_converter - ConvertTarget - 0.00;

- OnDamaged - building_explosion - Explode - 0.01;

- OnDamaged - explosion_sensor - Kill - 0.10.

Если вы не поняли, объясняю: когда страйдер выстрелит в scripted_target, то он также попадет в func_button, тогда наша кнопка совершит 3 действия:
1) через 0.00 сек активирует phys_convert, который превратит func_brush в func_physbox, и они смогут разлететься;
2) через 0.01 сек активирует env_explosion, который взорвет здание к чертовой матери;
3) через 0.10 сек убьет сама себя, т.е. взрыв будет разовый
Будьте уверены, что все действия произойдут в правильном порядке, иначе взрыва не будет!!!
Примечание: если звук взрыва есть, а здание не разлетается, то увеличьте силу взрыва или уменьшите, размер кусков здания.

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

Автор: Exitus

перевод AndrewDragon`а
приятного вам маппинга:)

Источник: cs-mapping.com.ua

CMT (CS Mapping Tutorials) - © 2006-2011+. Created by VM
[ Script Execution time: 0.0045 ]