Динамические наступления

From Valve Developer Community
Jump to: navigation, search
English

Настраивание наступления используя энтити наступления (ai_goal_assault, etc.) может быть нудным и сложным, и в результат может получиться запутанная система, которая ломает ИИ НИПов. Если смысл наступления это просто атака натуральных врагов (как игрок), настройка энтити наступлений обычно тотальная бессмыслица. Вот урок, как настраивать наступление которое построено только на командной работе ИИ:

Ключ системы это НИПы с одинаковым значением squadname, которое делится и укрепляет разведданные между этими НИПами. (Солдаты Альянса особенно могут делится разведданными в группах на разных локациях используя радио.) Достаточно попасться одному члену отряда на глаза, так уже сразу весь отряд будет идти к вам (так долго, как пути врага будут доступны через сетку навигации), идя на последнюю известную позицию врага без надобности assault_assaultpoint или assault_rallypoint. Просто удостоверьтесь, что сетка навигации создана и работает.

Дополнительные волны

Вы можете контролировать волны поддержки двумя способами:

Обычный способ это просто ставя дополнительные группы членов отряда дальше на карте. Эти дополнительные группы будут созданы после волны атакующих. Недостаток данной системы в том, что она будет вовлекать, двигать и координировать большое количество НИПов за раз, что будет стоить немало ресурсов машины, и что нападающие смогут накапливать силу, которая со временем будет убивать игровой баланс.

Другой способ это создавать новых НИПов через npc_maker'ы, давая значение NPCSquadname одинаковое названию отряда. Если все члены отряда умерли и создался новый член отряда то, для предотвращения остановки наступления нужно поместить npc_enemyfinder в отряд для поддержки отряда в живых. Вы также можете использовать энтити ai_relationship для поддержки плохих отношений с игроком, даже если один из членов умер.

Улучшение системы

Вы можете улучшать эту систему разными способами, вот немного примеров:

  • Солдаты Альянса могу использовать камеры, сканнеров и/или мэнхэков для нахождения игрока. (Просто включите их в состав отряда.) Если они не в вашем распоряжении, вы можете "считерить" включая npc_enemyfinder в отряд. Настроив их FieldOfView значение на -1, так они будут смотреть во все стороны.
  • Создать несколько путей на вышей карте, чтобы удивить игрока при многократном переигрыше.