Npc strider

From Valve Developer Community
< Ru
Jump to navigation Jump to search
English (en)Русский (ru)Translate (Translate)
Страйдер

Описание

Страйдеры - самые большие из известных существ в арсенале Комбайнов. Простое прохождение Страйдера через улицу уже может вселить в игрока чувство тревоги. Он неуклюж и может быть атакован только после больших предосторожностей и анализа ситуации. Страйдеры на каждом углу - прекрасный путь к уничтожению эффекта от них!

Страйдер имеет три вида атаки: миниган, который медленно переходит от цели к цели. Дизинтегратор, испаряющий все динамические объекты (dynamic entities), которых касается, и наконец его ноги, которыми он, в зависимости от ситуации, может наступать на NPC и убивать ('immolate') или протыкать и насаживать на ноги. Страйдеры могут атаковать только NPC; чтобы заставить атаковать их части окружающей среды или другие не-NPC, используйте npc_bullseye_(ru)(en).

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

Сканеры(en) могут использоваться страйдером для поддержки его LOS_(ru)(en), если правильно установлены флаги. Они всё время делают фотографии местоположения всех NPC и транслируют ближайшему страйдеру, который поступают соответственно.

В Эпизоде Первом Страйдеры получили новый вид атаки. Они стали способны стрелять быстрее и точнее, чем они делали это в Half-Life 2. Они лучше отслеживают движения игрока.

Note.pngПримечание:Некоторые значения ключей, флаги, effect flags, input'ы или output'ы могут не влиять на NPC в зависимости от функциональности и кодирования NPC.

Выделенные консольные переменные

  • npc_strider_height_adj (По умолчанию: 0)
<целое> Регулирует координату z его базы.
  • npc_strider_shake_ropes_magnitude (По умолчанию: 150)
<float> ???
  • npc_strider_shake_ropes_radius (По умолчанию: 1200)
<float> ???
  • sk_strider_health (По умолчанию: 350)
<целое> Изначальное количество жизни страйдера.
  • sk_strider_num_missiles1 (По умолчанию: 5)
<float> Количество рокет, необходимое для убийства страйдера на уровне сложности EASY.
  • sk_strider_num_missiles2 (По умолчанию: 7)
<float> Количество рокет, необходимое для убийства страйдера на уровне сложности MEDIUM.
  • sk_strider_num_missiles3 (По умолчанию: 7)
<float> Количество рокет, необходимое для убийства страйдера на уровне сложности HARD.
  • strider_always_use_procedural_height (По умолчанию: 0)
<boolean> Использовать вычесленный вес, если не задан явно.
  • strider_ar2_altfire_dmg (По умолчанию: 25)
<float> ???
  • strider_distributed_fire (По умолчанию: 1)
<boolean> Переключать цели по одной за раз.
  • strider_eyepositions (По умолчанию: 0)
<boolean> Рисует 3D кресты в местоположении глаз, когда стоит и когда приседает.
  • strider_free_knowledge (По умолчанию: 0)
<float> ???
  • strider_free_pass_cover_dist (По умолчанию: 120)
<float> ???
  • strider_free_pass_duration (По умолчанию: 2)
<float> ???
  • strider_free_pass_move_tolerance (По умолчанию: 320)
<float> ???
  • strider_free_pass_refill_rate (По умолчанию: 0)
<float> ???
  • strider_free_pass_start_time (По умолчанию: 3)
<float> ???
  • strider_idle_test (По умолчанию: 0)
<boolean> Отключает миниган и даёт указание стоять без дела.
  • strider_immolate (По умолчанию: 0)
<boolean> Не использовано: Переключатель режима жертвоприношения страйдера.
  • strider_pct_height_no_crouch_move (По умолчанию: 90)
<float> Количество процентов, используемое при расчете идеальной высоты приседания.
  • strider_peek_eye_dist (По умолчанию: 1)
<float> Расстояние глаз.
  • strider_peek_eye_dist_z (По умолчанию: 4)
<float> Расстояние глаз по координате z.
  • strider_peek_time (По умолчанию: 0)
<float> Дает такое количество времени игроку, прежде чем начнёт стрелять. (Игрок занимает только первый слот).
  • strider_peek_time_after_damage (По умолчанию: 4)
<float> Дает такое количество времени игроку, после того как был атакован, прежде чем начнёт стрелять. (Игрок занимает только первый слот).
  • strider_show_cannonlos (По умолчанию: 0)
<boolean> Отображать луч прицела оружия.
  • strider_show_focus (По умолчанию: 0)
<boolean> Отображать 3d кресты в местеположении (origin) цели.
  • strider_show_weapon_los_condition (По умолчанию: 0)
<boolean> Отображать поле поражения оружия (условия).
  • strider_show_weapon_los_z (По умолчанию: 0)
<boolean> Отображать поле поражения оружия (z координата).
  • strider_test_height (По умолчанию: 0)
<float> Задает идеальную высоту страйдера в это значение, если оно больше .1.
Работает только при включённом strider_always_use_procedural_height.

Ключевые параметры

См. также:  Generic Keyvalues, Inputs and Outputs available to all entities
Name(en) (targetname) <string(en)>
Имя энтити, по которому другие энтити могут ссылаться на этот объект.
  • angles
<angles> Угловая ориентация этой энтити в пространстве (также используется для энтитей с угловыми эффектами).
  • renderfx
<выбор>
Буквенное значение Описание
0 Нормальный
1 Медленная пульсация
2 Быстрая пульсация
3 Медленная продолжительная пульсация
4 Быстрая продолжительная пульсация
5 Медленное исчезание
6 Быстрое исчезание
7 Медленное появление
8 Быстрое появление
9 Медленное мигание
10 Быстрое мигание
11 Быстрейшее мигание
12 Медленное мерцание
13 Быстрое мерцание
14 Постоянное сияние
15 Искажение
16 Голограмма (Искажение + исчезание)
17 Увеличение масштаба
22 Эффект светового пятна
23 Отбор расстоянием (TEST)
24 Исчезновение продолжительными пульсациями
  • rendermode
<выбор> Используется для нестандартных режимов рендеринга этой энтити. Смотри также 'FX Amount' и 'FX Color'.
Буквенное значение Режим рендера Описание (Здесь дополнительная информация)
0 Normal Отображение по умолчанию.
1 Color Устаревшее.
2 Texture Простой, непрозрачный.
3 Glow Нет проверки Z-буфера. Фиксированный размер на экране.
4 Solid / Alphatest Устаревшее. (Используйте возможности alphatest взамен устаревшего.)
5 Additive Устаревшее. Добавить цвет этой энтити к тому, что сзади неё.
7 Additive Fractional Frame Устаревшее? Смешивание между кадрами анимации.
8 Alpha Add (Not in FGD.)
Нужно сделать: Write description.
9 World Space Glow Нет проверки Z-буфера. Фиксированный размер в пространстве (противоположно "на экране").
10 Dont Render / None Не отображать.
  • renderamt
<целое> FX Amount (0 - 255) - Насколько непрозрачной будет отрисована эта энтитя.(0 - это полностью прозлачный, в то время как 255 - это полностью непрозрачный). Не работает если ключевое значение rendermode установлено в Normal или Dont Render.
  • rendercolor
<color255> FX Color - В каком цвете будет отрисована эта энтитя (в той степени, насколько установлен параметр renderamt).
  • disablereceiveshadows
<boolean> Отключает получение теней этим объектом.
  • damagefilter
<цель назначения> Имя энтити-фильтра, которая контроллирует какие энтити могут наносить повреждения этой.
  • ResponseContext
<строка> Контекст системы ответов для этой энтити. Формат должен быть таким: 'ключ:значение,ключ2:значение2,и т.д.'. Когда эта энтитя говорит, список ключей и значений вставляется в систему правил ответов.
  • disableshadows
<boolean> Используется для отключения отброса динамической тени от этой энтити.
  • target
<цель_назначения> Если установлено, то это имя пути, по которому (к которому) пойдёт этот NPC после появления.
  • squadname
<строка> NPC которые имеют такое же имя отряда будут делится информацией о врагах, и будут сменяться атакуя и прикрывая друг друга.
  • hintgroup
<строка> Группа хинтов используемая этим NPC. Используется для ограничения круга поиска хинт-точек подгруппой из всех хинт-точек на карте. Только хинт-точки, у которых имя группы равно этому параметру, будут видны данному NPC.
  • hintlimiting
<boolean> Ограничевает NPC использовать только указанныую группу хинтов для навигационных запросов. Но не ограничивает локальную навигацию.
  • sleepstate
<выбор> Держит NPC в замершем состоянии до тех пор пока не произойдет указанное событие. Смотри также 'Wake Radius' и 'Wake Squad'.
Буквенное значение Описание
0 Нет
1 Ожидать опасности
2 Ожидать PVS
3 Ожидать ввода (input), игнорировать PVS
(во всех играх начиная с Half-Life 2: Episode One) Авто PVS
(во всех играх начиная с Half-Life 2: Episode One) Авто PVS после PVS
  • wakeradius
<float> Автоматически проснуться, если пользователь приблизился на указанное расстояние.
  • wakesquad
<boolean> Пробуждает всех NPC указанного отряда, если этот NPC проснулся.
  • physdamagescale
<float> Значение, на которое умножаются повреждения, полученные этим персонажем от физических объектов. При значении 0, этот NPC не будет получать повреждений от физических объектов.
  • disablephysics
<boolean> Отключить физику (разгружает CPU)

Флаги

Ждать пока не заметят : [1]
Кляп : [2]

Не воспроизводить звуков IDLE, пока не рассердится

Упасть на землю : [4]

Неотмеченное подразумевает *телепортировать* к земле

Выбросить аптечку : [8]
Эффективный : [16]

Не приобретает врагов и избегает препятствий

Ждать сценария : [128]
Дальнее видение/стрельба : [256]
Скрыть труп : [512]
Думать за пределами PVS (Поле возможной видимости игрока) : [1024]
Шаблон NPC : [2048]

Эта энтити - шаблон для npc_template_maker. Эта энтити не будет появляться автоматически вместе с загрузкой карты. Появится только после указания через эту энтитю. (Не может появляться через point_template.)

Делать альтернативное столкновение для этого NPC (Игрок уступает) : [4096]
Не выбрасывать оружие : [8192]
Игнорировать давление игрока (во всех играх начиная с Source 2006) : [16384]

Не уступать пути игроку
  • 65536 : Может затоптать игрока

Ввод (Inputs)

  • Kill
Удаляет эту энтити из игрового мира.
  • KillHierarchy
Удаляет эту энтити и всех её потомков из игрового мира.
  • AddOutput <string>
Определяет ключевое значение/вывод для этой энтити. Это может быть очень опасно, используйте осторожно.
Формат: <ключ> <значение>
Формат: <имя вывода> <имя цели>:<имя ввода>:<параметр>:<задержка>:<максимальное количество выполнений (-1 == бесконечно)>
  • FireUser1-4
Выполняется для этой энтити, когда вывод OnUser1-4 был задействован. Смотри User Inputs and Outputs.
Устанавливает цвет отрисовки.
Устанавливает интенсивность отрисовки.
  • SetDamageFilter <цель_назначения>
Устанавливает эту энтитю как фильтр повреждений. Вставьте пустую строку, для очистки фильтра повреждений.
  • AddContext <строка>
Добавляет контекст в список контекстов ответов этой энтити. Формат должен быть 'ключ:значение'.
  • RemoveContext <строка>
Удаляет контекст из списка контекстов ответов этой энтити. Имя должно совпадать с значением 'ключ' до этого добавленного контекста.
  • ClearContext
Удаляет все контексты из списка контекстов ответов этой энтити.
  • DisableShadow
Выключает тень.
  • EnableShadow
Включает тень.
  • SetRelationship <строка>
Изменяет отношение этой энтити к другой энтите или классу. (Действует как энтитя ai_relationship , субьект (поле "Subject") которой этот NPC.)
Формат: <цель> <положение> <rank>
Возможные значения <положение> :
Буквенное значение Описание
D_HT Ненависть (Hate)
D_FR Боязнь (Fear)
D_LI Симпатия (Like)
D_NU Нейтралитет (Neutral)
  • SetHealth <целое>
Устанавливает количество жизни этого NPC.
  • SetBodyGroup <целое>
HACK: Устанавливает группу тел для этого NPC (от 0 - n). Вы должны знать то, что Вы делаете!
  • physdamagescale <float>
Устанавливает величину, на которую умножается энергия повреждений, получаемых персонажем от физических объектов.
Note.pngПримечание:0 (ноль) подразумевает что эта функция отключена для обратной совместимости.
  • Ignite
Поджигает, охватывает огнём.
  • Break
Разбивает на куски.
  • StartScripting
Вводит в состояние выполнения сценария. В этом сотстоянии NPC игнорируют различные стимулы, которые могут их вывести из сценария: Они игнорируют опасные звуки, игнорируют +USE, не произносят "речь простоя" (idle speech), и не отвечают на "речь простоя" других NPC, и т.п.
  • StopScripting
Выводит из состояния сценария.
  • Assault <цель_назначения>
Start an assault. Parameter passed in should be the name of the rally point.
  • SetSquad <строка>
Устанавливает имя отряда ("Squad") для этого NPC. Последний также будет автоматически удалён из любого ранее назначенного отряда. Если оставить этот параметр пустым, то NPC будет удалён из любого ранее назначенного отряда.
  • Wake
Пробуждает NPC, если он спит.
  • ForgetEntity <цель_назначения>
Очищает память NPC об указанной энтите.
  • GagEnable
Включает флаг "кляп". NPC не будет говорить за пределами хореографических сцен.
  • GagDisable
Отключает флаг "кляп".
  • IgnoreDangerSounds <float>
Игнорирует опасные звуки указанное количество секунд.
  • HolsterWeapon (во всех играх начиная с Half-Life 2: Episode One)
Заставляет NPC убрать его оружие в кобуру. Игнорируется если NPC выполняет сценарий, если оружие NPC уже в кобуре, или если NPC не использует оружие.
  • HolsterAndDestroyWeapon (во всех играх начиная с Half-Life 2: Episode One)
Идентично HolsterWeapon, только оружие уничтожается после того как было убрано и скрыто. (except the weapon is destroyed once it has been holstered and concealed.)
  • UnholsterWeapon (во всех играх начиная с Half-Life 2: Episode One)
Заставляет NPC достать его оружие. Игнорируется если NPC выполняет сценарий, если оружие NPC уже достано, или если NPC не использует оружие.
  • ForceInteractionWithNPC <строка> (во всех играх начиная с Half-Life 2: Episode One)
Заставляет NPC использовать динамическое взаимодействие (dynamic interaction) с другим NPC.
Формат параметров: <имя целевой NPC> <имя динамического взаимодействия>
  • UpdateEnemyMemory <цель_назначения> (во всех играх начиная с Half-Life 2: Episode One)
Обновляет (или создаёт) память этого NPC о враге и его местоположении.
  • SetMinigunTime <float>
Время стрельбы миниганом по цели
  • SetMinigunTarget <цель_назначения>
Страйдер будет стрелять миниганом по этой цели
  • SetCannonTarget <цель_назначения>
Страйдер будет стрелять пушкой по этой цели
  • FlickRagdoll
Страйдер будет стряхивать любого, нанизанного на ногу.
  • StartPatrol
Вернуться патрулировать дальше вдоль заданного пути.
  • StopPatrol
Прекратить патрулировать вдоль заданного пути. Это заставит страйдера продолжить движение вдоль пути, который он сейчас использует.
  • ChooseFarthestPathPoint
При отслеживании цели, выбирать точку прицеливания, приходящуюся на его будущую позицию, но остающуюся в поле досягаемости.
  • ChooseNearestPathPoint
При отслеживании цели, выбирать точку прицеливания, находящуюся максимально близко к цели.
  • Crouch
Присесть
  • Stand
Встать
  • DisableCrouchWalk
  • EnableCrouchWalk
  • SetTargetPath <target_destination>
Задает путь, по которому будет патрулировать Страйдер. Страйдер пойдёт к ближайшей к нему точке этого пути.
  • ClearTargetPath
Очистить значение пути для страйдера.
  • CrouchInstantly (во всех играх начиная с Half-Life 2: Episode One)
Присесть немедленно. Это заставляет мгновенно перейти страйдера в положение приседания (без анимации). Не делайте этого. когда игрок может это видеть.
  • EnableAggressiveBehavior (во всех играх начиная с Half-Life 2: Episode One)
Включает новую атаку страйдера миниганом
  • DisableAggressiveBehavior (во всех играх начиная с Half-Life 2: Episode One)
Прекратить использовать агрессивное поведение. (Вернуться в норму)
  • StopShootingMinigunForSeconds <float> (во всех играх начиная с Half-Life 2: Episode One)
Прекратить стрельбу из минигана на заданное количество времени (задается в секундах как параметр)
  • DisableCrouch (во всех играх начиная с Half-Life 2: Episode One)
Запретить Страйдеру приседать.
  • DisableMoveToLOS (во всех играх начиная с Half-Life 2: Episode One)
Запретить Страйдеру приследовать цель для того, что бы она оставалась в поле поражения. (Занять позицию)

Выводы (Outputs)

  • BaseNPC:
OnDamaged
Выполняется, когда этот NPC получает повреждения. (!activator is the наносящий повреждения.)
OnDeath
Выполняется, когда этот NPC убит. (!activator is the убийца.)
OnHalfHealth
Выполняется, когда у этого NPC остается половина от его возможной максимальной жизни.
OnHearWorld
Выполняется, когда этот NPC слышит звук (Кроме звуков битвы и игрока).
OnHearPlayer
Выполняется, когда NPC слышит игрока.
OnHearCombat
Выполняется, когда NPC слышит звуки боя.
OnFoundEnemy  <targetname(en)>
Выполняется, когда этот NPC установил прямую видимость с врагом (указанной энтитей).
OnLostEnemyLOS
Выполняется, когда этот NPC потерял прямую видимость с врагом.
OnLostEnemy
Выполняется, когда этот NPC потерял врага. Обычно это происходит, когда враг был убит/убран, или потому что NPC выбрал новую, более опасную цель.
OnFoundPlayer  <targetname(en)>
Выполняется, когда этот NPC установил прямую видимость с врагом, и этот враг - игрок.
OnLostPlayerLOS
Выполняется, когда этот NPC потерял прямую видимость с врагом, и этот враг - игрок.
OnLostPlayer
Выполняется, когда этот NPC потерял врага, и этот враг был игрок. Обычно это происходит, когда враг был убит/убран, или потому что NPC выбрал новую, более опасную цель.
OnDamagedByPlayer
Выполняется, когда этот NPC ранен игроком. (!activator is the атакующий или водитель транспорта (если активен friendly fire)).
OnDamagedByPlayerSquad
Выполняется, когда этот NPC ранен игроком ИЛИ одним из участников отряда игрока. (!activator is the атакующий или водитель транспорта (если активен friendly fire)).
OnDenyCommanderUse
Выполняется, когда этот NPC не был принят в отряд игрока.
OnWake
Выполняется, когда этот NPC выходит из состояния сна.

Основные:

OnUser1 до OnUser4
Эти выходы срабатывают в ответ на срабатывание соответствующего входа от FireUser1 до FireUser4; см. Входы и выходы пользователя.
OnKilled  (только в Серия игр Left 4 Dead)
Этот вывод срабатывает, когда объект убит и удален из игры.