24.11.2017  19:21  2017  
Главная | Регистрация | Вход Приветствую Вас Гость | RSS
Меню
Категории
Общее по Source [19]
Counter-Strike: Source [1]
Half-Life 2 [35]
Half-Life 2: Deathmatch [0]
Left 4 Dead 1/2 [6]
Portal [0]
Portal 2 [0]
Postal III [0]
Флудилка
Наш опрос
Помог ли Вам наш сайт?
Всего ответов: 253
Часики =^_^=
Случайная картинка
Кто тут ?

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Главная » Статьи » Tutorials » Half-Life 2

Учим монстра ходить
Часть первая - минимум.Итак, в первой части я попытаюсь объяснить как сделать простейшего монстра который идет к игроку.

Если суперкоротко то вот все что нужно для этого:
1. Сам монстр с каким-нибудь именем
2. Энтитька aiscripted_schedule тоже с каким-нибудь именем и с такими необходимыми параметрами:
Target npc -имя монстра-
Ai state to set Set state to COMBAT
Schedule to run Set enemy to Goal Entity
Goal entity !player
3. И триггер который запускает эту энтитьку одним лишь аутпутом StartSchedule
Ну а если надо поподробней, то читайте дальше :)

Надеюсь карта у вас уже есть, или сделать ее не составит труда, так чтоэтот вопрос я особенно освещать не буду. Я просто сделал браш 512 на512, и высотой 128 юнитов, опустошил его с толщиной стенок 8 юнитов, исделал перегородки так, чтобы будущий монстр не видел игрока, а игрок -монстра.
Монстром будет npc_zombie. Пожалуй на его установке можно сделать вам скриншот ;)



Теперь самое главное.

Энтитька с именем aiscripted_schedule.

Она будет объяснять зомбику куда пойти :).

Чтобы aiscripted_schedule мог пообщаться с зомби, этого самого зомбинадо обозвать. Так что в поле Name у него, впишем что-нибудь вродеzombie1.

Теперь настройки aiscripted_schedule.

Name zombie1schedule
Target npc zombie1
Ai state to set Set state to COMBAT
Schedule to run Set enemy to Goal Entity
Goal entity !player

Этот !player это очень рулезная команда. Где бы игрок не находился npc поползет к нему.

Но на этом все не оканчивается!
Нужно еще как-нибудь заставить aiscripted_schedule командовать. Т.е.послать ему соответствующий аутпут. Можно это делать при старте карты,можно при попадании игрока в определенную зону. Мы сделаем сейчас зону.

Сделаем в нужном месте браш покрытый текстурой trigger, и конвертнемего to entity, а конкретней в trigger_once. Сразу сделаем ему аутпут.

My output named OnStartTouch
Targets entities named zombie1schedule
Via this input StartSchedule

Самое главное окончено, теперь по идее стоит игроку войти в зону триггера, как монстр им заинтересуется.

Заинтересуется то, заинтересуется, но достаточно коряво и неумело. Авсе потому, что мы еще не расставили info_node по ходу его пути. Этотакие квадратики на полу, по которым монстры ориентируются когдакуда-нибудь идут. Я злонамеренно сделал путь своему зомбику непростым,чтобы максимально искоренить недочеты моей статейки. После расставленияinfo_node бегал он за мной куда бы я не пошел, а ведь я не очень-то истарался! :). Вот посмотрите:



Если найдутся такие, кто не разобрался(например не все умеют читать), то вот исходник примера.
[TestWalkingZombie1.zip


Часть вторая - облагораживание триггера

Но не будем останавливаться на достигнутом.
Во первых - положим оружие, мне надоело бегать беззащитным. Во вторых,диковато смотрится мой триггер, надо сделать менее тупо. Вполнепрокатит стиль Индиана Джонса :).

В общем вмето триггера сделаем небольшой столбик(у меня получился 8 на8 со столиком вверху 16 на 16), и конвертнем его в func_button, нажмемApply, и убрав все лишние флажки, поставим только Toggle.
В настройках сделаем так:
Name TrapButton
Move Direction(Pitch Yaw Roll) -90 0 0 (Up)
Speed 1
Lip... Здесь нужно все правильно расчитать. Высота моего столбика - 52юнита, и я утопил его в пол на 4 юнита с расчетом что он подымется наэти 4 юнита и не будет висеть в воздухе. Но чтобы он поднялся  именнона 4 юнита, нужно задать этот самый Lip именно 52(высота)-4(расстояниекоторое нужно проехать)=48. Так и напишем.
Lip 48 (при условии что у вас столбик именно 52 юнита высотой.
Очень аккуратно приладим сверху любимый шотган



сделав ему два аутпута:

1. On Player Pickup
zombie1schedule
StartSchedule
2. On Player Pickup
TrapButton
Press
Т.е. мы запустили кнопку(она в нашем случае носит декоративный характер), и запустили скрипт запускающий в бой зомби.

Старый триггер можно удалить.

Часть третья - npc_maker

Уже давно пора уметь делать тех, кто делает монстров, да не простых, а таких чтобы шли куда надо.

Я добавил в лабиринт стен, и забабахал в дальнем углу npc_maker. Вот полюбуйтесь.



Его (npc_maker) нужно ставить очень внимательно. Он монстра сделаеттам, где сам стоит. И низ монстра будет совпадать с низом npc_maker'а.
Если понадобится развернуть его(куда смотрит желтая полоска, туда будети монстр смотреть), это делает вовсе не с помощью инструмментовтрансформации, а в настройках npc_maker'а.
Самый первый пункт позволяет или в градусах выставить куда емусмотреть, или просто поелозив мышкой по черному кружку справа вверху вокошке его свойств, добиться нужного результата. В моем случае нужночтобы он смотрел вниз, и получилось у меня - 0 270 0.

Дальше идут остальные свойства:
Name npc_2_maker
Class name of spawned NPC npc_fastzombie
Childrens' Name fastzombie

Теперь создадим(или копируем держа шифт старый) aiscripted_schedule.

Name schedule2
Target NPC fastzombie

Остальные параметры как и у предыдущего aiscripted_schedule.

Теперь создадим цепочку аутпутов чтобы все это заработало.

Для начала возьмем старого зомби. Его аутпут:
OnDeath
npc_2_maker
Enable

Мы включили npc_2_maker после смерти зомби.

Теперь npc_maker и его аутпут:
OnSpawn NPC
schedule2
StartSchedule

Т.е. при создании монстра запустить скрипт с названием schedule2.

Осталось расставить в новых коридорах info_node, и если я правильно понимаю, наслаждаться.



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

TestWalkingZombie2.zip

Автор: JOHN




Источник: http://JOHN
Категория: Half-Life 2 | Добавил: MARK2580 (25.06.2012)
Просмотров: 942 | Рейтинг: 0.0/0 |
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Video
Поиск
Форма входа
Source SDK [Steam]
Эффект перекатывания

Форум
  • Обзоры аддонов для Garry's Mod! (0)
  • Архив декомпилированных карт (1)
  • Скриншоты с наших карт (20)
  • Half-Life 2 Episode One (15)
  • Half-Life 2 Episode Two (36)
  • Обсуждение Half-Life 2 (29)
  • Ссылочки
  • Planet Phillip

  • GAMEbanana

  • Gamer-Lab.com

  • Half-Life Inside

  • CompSong

  • Anime Art

  • Кореша сайта
    Mapper720.Ru - сайт о маппинге Half-life 2

    Banners


    Copyright HL2-Fun © 2009-2017