HLDM Форум
https://forum.hldm.org/

Цели для NPC в Sven Co-op
https://forum.hldm.org/viewtopic.php?f=26&t=804
Страница 1 из 1

Автор:  Nikita [ 13 окт 2014, 17:30 ]
Заголовок сообщения:  Цели для NPC в Sven Co-op

Здесь я расскажу как сделать монстров на карте Sven Co-op и дать им задание на атаку объекта.
Сразу скажу, что мой пример является далеко не единственным решением, возможно есть более рациональные решения.

Основная часть действий NPC уже написана разработчиками Sven Co-op, это AI. Нам, по сути, остается создать объекты на карте и указать им цели, дальше они будут действовать сами.

Термины:
Монстры, NPC - контролируемые компьютером игроки.

1. Создание карты

Для начала нам нужно создать карту, в примере это будет обычная коробка. Создаем такие объекты как свет и место появление игрока. Более подробно этот пункт, думаю, рассматривать не стоит.

Вложение:
01_create_map.png
01_create_map.png [ 378.2 КБ | Просмотров: 11433 ]


2. Создание необходимых объектов


Теперь нам нужно создать необходимые энтити, где будут появляться NPC и объекты-цели к которым NPC будут двигаться.

Вложение:
02_create_objects.png
02_create_objects.png [ 402.79 КБ | Просмотров: 11433 ]

Создаем на карте следующие объекты:
squadmaker - это группа монстров, которые появятся на карте, цель которых будет атака объекта.
func_breakable - объект, который монстры будут атаковать.
info_monster_goal - цель монстров, сразу после респавна они направятся в эту точку. Разместить ее надо рядом с func_breakable.
info_node - узлы, необходимые для правильного передвижения монстров по карте.

3. Установка необходимых параметров объектам


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

info_monster_goal

Это цель для NPC, при появлении они будут двигаться к этому объекту.

Name - имя объекта. К этому объекту будет ссылаться squadmaker, чтобы монстры двигались к нему. Указываем например "goal01"
Priority - приоритет для монстров. Указываем наивысший "Stop only if can attack", NPC будут остановлены только если на них нападут, иначе они будут двигаться к этому объекту.
Movement Type - тип движения. Walk - ходьба, Run - бег. Указываем бег.

Вложение:
06_edit_goal.png
06_edit_goal.png [ 29.71 КБ | Просмотров: 11433 ]

Вложение:
07_edit_goal.png
07_edit_goal.png [ 30.51 КБ | Просмотров: 11433 ]

Вложение:
08_edit_goal.png
08_edit_goal.png [ 30.02 КБ | Просмотров: 11433 ]


squadmaker

Здесь нам нужно задать тип монстров, их количество и цель, для этого переходим в параметры entity и выставляем слудующие значения:

Name - имя объекта, если не задать, то монстры появятся сразу после загрузки карты. Если имя задано, то они появятся после активации другим объектом, например нажатием кнопки.
Monster Type - тип монстров. В данном примере указываем monster_robogrunt. Список монстров можно посмотреть на wiki - Monster-объекты (Sven Co-op)
Goal Entity - цель. Указываем имя объекта info_monster_goal, т.е. "goal01"

Вложение:
03_edit_squad.png
03_edit_squad.png [ 37.54 КБ | Просмотров: 11433 ]

Вложение:
04_edit_squad.png
04_edit_squad.png [ 37 КБ | Просмотров: 11433 ]

Вложение:
05_edit_squad.png
05_edit_squad.png [ 36.78 КБ | Просмотров: 11433 ]


func_breakable

Name - имя объекта. Задайте любое, например "break01".
Strength - прочность. Указываем 100 или любое другое значение.
Material type - тип материала.
Classification - классификация. Указываем "Player".

Вложение:
09_edit_breakable.png
09_edit_breakable.png [ 37.59 КБ | Просмотров: 11433 ]


info_node

Здесь ничего указывать не нужно. Просто раскидайте узлы по карте, чтобы NPC могли нормально перемещаться.
Без этих объектов монстры двигаться не будут.

4. Готовые примеры


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

Вложение:
10_example.png
10_example.png [ 360.48 КБ | Просмотров: 11433 ]


Здесь есть две кнопки, при активации первой кнопки будет создан отряд из 5 дружественных роботов, которые прибегут к игроку.
При активации второй будет создан отряд из 5 вражеских роботов, которые будут стрелять в стену, пока не сломают ее.
Если активировать две кнопки одновременно, то развернется бой между роботами.

Вложение:
sc_monster_guide.map.zip [2.36 КБ]
Скачиваний: 647

Страница 1 из 1 Часовой пояс: UTC + 4 часа
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/