npc_advisor
- это точечная энтити(en), доступно для
Half-Life 2: Episode Two. Это злобные, похожие на червей слизняки, известные как Советники(en). Они способны использовать телекинез, чтобы левитировать несколько предметов и бросать их в игрока, нанося ему урон. Объекты сначала «ставятся» в одну из нескольких заранее определенных позиций, а затем бросаются в игрока по одному или все сразу.
Баги
Этот NPC не загружает модель советника по умолчанию - она должна быть указана по ключевому значению! Без модели будет выброшено исключение null-pointer. Это можно исправить, отредактировав npc_advisor.cpp
.
- В строке 376, замените
SetModel( STRING( GetModelName() ) );
на SetModel( "models\advisor.mdl" );
- В строке 1554, замените
PrecacheModel( STRING( GetModelName() ) );
на PrecacheModel( "models\advisor.mdl" );
Кроме того, советники не будут атаковать игрока или левитировать предметами, если вы не установите NPC_ADVISOR_HAS_BEHAVIOR
в npc_advisor_shared.h
.
Консольные значения (Console Variables)
- advisor_use_impact_table <int(en)>
- Если значение истинно, советник будет использовать свою собственную таблицу повреждений от ударов.
Нужно сделать: Что это означает?
- thumper_show_radius <int(en)>
- В описании упоминаются советники, но, похоже, все, что они делают, это показывают зону влияния
prop_thumper(en)
s.
- sk_advisor_health <int(en)>
- Определяет здоровье советника (Default: 1000).
- advisor_throw_velocity <int(en)>
Нужно сделать: Больше недоступна?
- Скорость, с которой советник бросает предметы (Default: 1100).
- advisor_throw_rate <int(en)>
Нужно сделать: Больше недоступна?
- Как часто «инсценированные» объекты бросаются в игрока, в секундах (Default: 4).
- advisor_throw_warn_time <int(en)>
Нужно сделать: Больше недоступна?
- Предупреждает игрока за определенное количество секунд до броска предмета (Default: 1).
Ключевые значения (Keyvalues)
- Levitation area
<targetname(en)>
- Радиус триггера, внутри которого находятся левитирующие объекты.
- Levitation goal bottom
<targetname(en)>
- Объекты будут левитировать как минимум на такой же высоте, как и эта сущность.
- Levitation goal bottom
<targetname(en)>
- Oбъекты не будут левитировать выше, чем эта сущность.
- Staging Position Names
<targetname(en)>
- Позиции «постановки», в которые должны переместиться объекты перед броском. Их должно быть не меньше, чем задано в параметре «SetStagingNum».
- Priority name for grabbing
<string(en)>
- Если среди них есть существа с таким названием, советник будет подбирать их, чтобы бросить в игрока.
BaseNPC keyvalues
Expand
CBaseCombatCharacter:
- Relationship (Relationship) <строка(en)> Отсутствует в FGD!
- <string|targetname or classname> <string|disposition> <int|rank>
- Changes whether this entity likes or dislikes certain other things. Used like the ai_relationship entity, with this entity as the subject.
- Values for
disposition are:
D_HT : Hate
D_FR : Fear
D_LI : Like
D_NU : Neutral
- Physics Impact Damage Scale (physdamagescale) <число с плавающей запятой(en)>
- Multiplier for damage amount when this entity is hit by a physics object. With a value of 0 the entity will take no damage from physics.
CAI_BaseNPC:
- Target Path Corner (target) <целевой объект(en)>
- The path_corner that this NPC will move to after spawning.
- Squad Name (squadname) <строка(en)>
- NPCs that are in the same squad (i.e., have matching squad names) will share information about enemies and will take turns attacking and covering each other.
- Hint Group (hintgroup) <строка(en)>
- Hint groups are used by NPCs to restrict their hint-node searching to a subset of the map's hint nodes. Only hint nodes with matching hint group names will be considered by this NPC.
- Hint Limit Nav (hintlimiting) <булева переменная(en)>
- Limits NPC to using specified hint group for navigation requests. Does not limit local navigation.
- Sleep State (sleepstate) <варианты выбора>
- Holds the NPC in stasis until specified condition. See also Wake Radius and Wake Squad.
- 0: None
- 1: Waiting for threat
- 2: Waiting for PVS
- 3: Waiting for input, ignore PVS
- 4: Auto PVS
- 5: Auto PVS after PVS
- Wake Radius (wakeradius) <число с плавающей запятой(en)>
- Auto-wake if player comes within this distance.
- Wake Squad (wakesquad) <булева переменная(en)>
- Wake all of the NPCs squadmates if the NPC is woken.
- Enemy Filter (enemyfilter) <целевой объект(en)>
- Filter entity to test targets against.
- Ignore unseen enemies (ignoreunseenenemies) <булева переменная(en)>
- Prefers visible enemies, regardless of distance or relationship priority.
DamageFilter:
- Damage Filter (damagefilter) <целевой объект(en)>
- Name of the filter_damage_type entity that controls which entities can damage us.
|
Флаги (Flags)
ExpandBaseNPC flags
- Wait Till Seen : [1]
- Prevents this NPC from seeing (or being seen) until it enters a player's viewcone.
- Gag : [2]
- Won't make IDLE sounds until it's angry.
- Fall to ground (unchecked means teleport to ground) : [4]
- Drop Healthkit : [8]
- Causes this NPC to drop an item_healthvial upon dying.
- Efficient : [16]
- Don't acquire enemies or avoid obstacles
- Wait For Script : [128]
- Forces this NPC to "wait" in an idle state until it finishes playing a scripted_sequence.
- Long Visibility/Shoot : [256]
- By default, increases a NPC's sight range to
6,000
units and allows it to attack from anywhere within that distance.
- Fade Corpse : [512]
- Think outside PVS : [1024]
- Allows this NPC to run its regular AI outside of any player's PVS.
- Template NPC : [2048]
- Marks this NPC as a template for entities like npc_template_maker. The NPC will not spawn on its own. This is not needed for point_template.
- Do Alternate collision for this NPC (player avoidance) : [4096]
Примечание:This flag is disabled in
episodic for player companions, because the StartScripting
input does this.
- Don't drop weapons : [8192]
- Ignore player push : [16384] (Во всех играх начиная с
)
- Entity won't give way to player.
Inputs
SetThrowRate <float(en)>
- Устанавливает скорость, с которой советник бросает предметы.
SetStagingNum <int(en)>
- Устанавливает количество объектов, которые советник может «постановить» за один раз.
WrenchImmediate
- Немедленно бросает в игрока левитирующий предмет, минуя стадию «постановки».
PinPlayer
- Не работает.
BeamOn
BeamOff
- Включает/выключает эффект луча между советником и активной опорой.
ElightOn
ElightOff
- Включает/выключает подсветку Советника.
ExpandBaseNPC inputs
CAI_BaseNPC:
- ActivateSpeedModifier Отсутствует в FGD!
- DisableSpeedModifier Отсутствует в FGD!
- Break
- Smash into pieces. If this is not possible, disappear.
- BecomeRagdoll (Во всех играх начиная с
)
- Remove itself and instantly become a ragdoll with zero force (just go limp). OnDeath, etc. outputs will NOT be fired.
- ForceInteractionWithNPC <string> <string> (Во всех играх начиная с
)
- Force the NPC to use a dynamic interaction with another NPC. Syntax is <targetname> <dynamic interaction>.
- ForgetEntity <целевой объект(en)>
- Clears out the NPC's knowledge of a named entity.
- UpdateEnemyMemory (Во всех играх начиная с
)
- Update (or create) this NPC's memory of of the given entity.
- GagEnable
- GagDisable
- Gagged NPCs won't speak (or moan, caw, etc.) unless made to be a choreographed scene.
- HolsterWeapon (Во всех играх начиная с
)
- UnholsterWeapon (Во всех играх начиная с
)
- Force the NPC to holster or unholster their weapon. Ignored if the NPC is scripting or if the NPC doesn't use weapons.
- HolsterAndDestroyWeapon (Во всех играх начиная с
)
- Same as
HolsterWeapon
, except the weapon is destroyed once it has been concealed.
- IgnoreDangerSounds <число с плавающей запятой(en)>
- Ignore danger sounds for the specified number of seconds.
- InsideTransition Отсутствует в FGD!
- OutsideTransition Отсутствует в FGD!
- SetBodyGroup <целое число(en)>
- HACK: Sets this NPC's body group (from 0–n).
- SetEnemyFilter <строка(en)>
- SetHealth <целое число(en)>
- Set the NPC's health.
- SetMaxLookDistance <число с плавающей запятой(en)> (только в
)
- Sets the maximum look distance for the NPC. Defaults are 2048 and 6000 for long range NPCs.
- SetRelationship <string|targetname or classname> <string|disposition> <int|rank>
- Changes whether this NPC likes or dislikes certain others. Used like the ai_relationship entity, with this NPC as the subject.
- Values for
disposition
are:
D_HT
: Hate
D_FR
: Fear
D_LI
: Like
D_NU
: Neutral
- SetSquad <строка(en)>
- Change the name of this NPC's squad. Leaving the parameter blank will remove the NPC from any existing squad.
- StartScripting
- StopScripting
- Enter/exit scripting state, where NPCs ignore a variety of stimulus that would make them break out of their scripts. They ignore danger sounds, ignore +Use, don't idle speak or respond to other NPCs' idle speech, and so on.
- Wake
- Wakes up the NPC if it is sleeping.
CBaseCombatCharacter:
- KilledNPC Отсутствует в FGD!
- Tells the entity it killed something. Despite the name, this can include a player. This input will be automatically sent by the victim when they die.
- physdamagescale <число с плавающей запятой(en)>
- Scales damage energy when this character is hit by a physics object. With a value of 0 the NPC will take no damage from physics.
DamageFilter:
- SetDamageFilter <строка(en)>
- Sets the entity to use as damage filter. Pass in an empty string (no parameter) to clear the damage filter.
Outputs
OnPickingThrowable
- Выстреливает, когда советник начинает «ставить» брошенный предмет.
OnThrowWarn
- Выстрел прямо перед тем, как советник предупредит игрока о броске.
OnThrow
- Выполняется, когда советник бросает отбрасываемую вещь.
OnHealthIsNow
- Выстреливает раз в кадр при текущем уровне здоровья советника.
BaseNPC Outputs
Expand
- OnDamaged
- Fired when this NPC takes damage (!activator is the damage inflictor).
- OnDamagedByPlayer
- Fired when this NPC is hurt by a player (!activator is the attacker or vehicle driver [if friendly fire]).
- OnDamagedByPlayerSquad
- Fired when this NPC is hurt by a player OR by one of the player's squadmates (!activator is the attacker or vehicle driver [if friendly fire]).
- OnDeath
- Fired when this NPC is killed (!activator is the killer).
- OnDenyCommanderUse
- Fired when this NPC has refused to join the player's squad.
- OnForcedInteractionAborted
- Fired when the NPC aborts a forced interaction for some reason (target NPC died, couldn't be pathed to, etc.).
- OnForcedInteractionStarted
- Fired when the NPC starts a forced interaction.
- OnForcedInteractionFinished
- "NPCs in actbusies can no longer perform dynamic interactions."
Нужно сделать: What does this mean?
- OnHalfHealth
- Fired when this NPC reaches half of its maximum health.
- OnHearCombat
- Fired when this NPC hears combat sounds.
- OnHearPlayer
- Fired when this NPC hears the player.
- OnHearWorld
- Fired when this NPC hears a sound (other than combat or the player).
- OnFoundEnemy <целевой_объект*>
- Fired when this NPC establishes line of sight to its enemy.
- OnLostEnemy
- Fired when this NPC loses its enemy. Usually due to the enemy being killed/removed, or because this NPC has selected a newer, more dangerous enemy.
- OnLostEnemyLOS
- Fired when this NPC loses line of sight to its enemy.
- OnFoundPlayer <целевой_объект*>
- Fired when this NPC establishes line of sight to its enemy, and that enemy is a player.
- OnLostPlayer
- Fired when this NPC loses its enemy, and that enemy was a player. Usually due to the enemy being killed/removed, or because this NPC has selected a newer, more dangerous enemy.
- OnLostPlayerLOS
- Fired when this NPC loses line of sight to its enemy, and that enemy is a player.
- OnSleep
- Fired when this NPC enters a sleep state.
- OnWake
- Fired when this NPC comes out of a sleep state.
|
Смотрите также