Страйдеры
Содержание:
1. Вступление
2. Настройка
3. Страйдеры на прогулке
4. Ну ё-моё, опять не работает
5. Приседающие страйдеры
6. Палим из пушки
7. Взрываем здания
Втупление
Страйдеры - самые грозные противники в ХЛ2, вы могли их видеть во
время сражения перед музеем или в других районах Города 17. Возможно, вы
помните их реалистичные и офигительно мощные пушки, которые взрывали
целые здания и приводили всех в ужас. Хотите себе таких же зверюг? тогда
погнали.
Данный туториал научит вас делать так, чтобы страйдеры:
- ходили
- пригибались, проходили под препятствиями, вставали обратно
- палили из своих супер-пушек
Данный туториал для упрощения понимания разделен на 3 части(первую из которых вы и читаете):
Часть I: Учим страйдеров ходить, пригибаться, проходить под препятствиями и вставать обратно
Часть II: Учим страйдеров палить из супер-пушек и взрывать здания
Часть III: Учим страйдеров воевать.
Настройка
Этот шаг не обязателен, но очень вам поможет - мы сделаем так, чтобы страйдеры не стреляли в вас. Создайте ентитю ai_relationship в любом месте карты с такими свойствами:
Subject(s): npc_strider
Target(s): player
Disposition: 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 сек убьет сама себя, т.е. взрыв будет разовый
Будьте уверены, что все действия произойдут в правильном порядке, иначе взрыва не будет!!!
Примечание: если звук взрыва есть, а здание не разлетается, то увеличьте силу взрыва или уменьшите, размер кусков здания.
Таким образом, страйдеры будут стрелять в здания и продолжать идти. Часть III
Пока не готова:(, coming soon,
To be continued...
Автор: Exitus
Перевод AndrewDragon`а
Приятного вам маппинга:)
Взято с www.hl2world.com |