Hpl3:Game:scripting:function reference:helper ai

From Frictional Wiki
Jump to navigation Jump to search

helper_ai.hps

Helper functions for AI


Agent_SetStaticCollider
void Agent_SetStaticCollider(const tString &in asAgentName,
                             bool abX)

Set if the agent will collide with the environment (objects and stuff will still collide with it!)

  • asAgentName: name of the agent. Wildcard supported.
  • abX: If the character should be static and NOT move about.


Agent_SetSensesActive
void Agent_SetSensesActive(const tString &in asAgentName,
                           bool abX)

Set if the agent should have its senses (hearing/vision/etc) enabled. Usually implemented on a specific basis.

  • asAgentName: name of the agent. Wildcard supported.
  • abX: If the senses should be active.


Agent_RevealPlayerPosition
void Agent_RevealPlayerPosition(const tString &in asAgentName,
                                bool bForceRedetect=false)

Reveals the player's current position to the agent.

  • asAgentName: name of the agent. Wildcard supported.
  • bForceRedetect: true = forces the agent to detect the player again.


Agent_SetViewRangeMul
void Agent_SetViewRangeMul(const tString &in asAgentName,
                           float afRangeMul)

Sets the view range multiplier of the specified agent

  • asAgentName: name of the agent. Wildcard supported.
  • afRangeMul: the range multiplier to set.


Agent_FaceEntity
void Agent_FaceEntity(const tString &in asAgentName,
                      const tString &in asLookAtTarget)

Instantly sets the yaw of the agent to make it look at the specified entity.

  • asAgentName: name of the agent. Wildcard supported.
  • asLookAtTarget: name of entity to look at.


Agent_TeleportFeetToEntity
void Agent_TeleportFeetToEntity(const tString &in asAgentName,
                                const tString &in asTargetName)

Teleport the agent's foot position to a specific other entity.

  • asAgentName: name of the entity to teleport.
  • asTargetName: name of the entity to teleport to.


Agent_SetAutoDisableWhenOutOfSightActive
void Agent_SetAutoDisableWhenOutOfSightActive(const tString &in asAgentName,
                                              bool abActive,
                                              float afMinDistance)

When active, the agent will be a disabled (SetActive(false)) when a certain distance away from the player and no longer seen.

  • asAgentName: name of the agent.Wildcard supported.
  • abActive: if the disabling is active
  • afMinDistance: The minimum distance from the player for this to happen.


Agent_SetAutoDisableCallback
void Agent_SetAutoDisableCallback(const tString &in asAgentName,
                                  const tString &in asCallbackFunc)

Sets the function that is called when the disabling made by Agent_SetAutoDisableWhenOutOfSightActive happens

  • asAgentName: name of the agent.Wildcard supported.
  • asCallbackFunc: Function called when the disabling happens. syntax: void f(const tString&in asEntityName)


Agent_PlayerDetected
bool Agent_PlayerDetected(const tString &in asAgentName)

Checks if the agent has dected the player

  • asAgentName: name of the agent.


CharMover_SetDirection
void CharMover_SetDirection(const tString &in asEntityName,
                            eLuxCharMoveDirection aDir)

Sets the direction used by a character

  • asEntityName: name of the entity with the CharMover.
  • aDir: direction that the character will face when walking


CharMover_TurnToEntity
void CharMover_TurnToEntity(const tString &in asEntityName,
                            const tString &in asTurnToEntityName,
                            const tString &in asTurnedToGoalCallbackFunc="")

Turns the character to a specifc entity. Broadcasts the entity message eLuxEntityMessage_TurningDone when done.

  • asEntityName: name of the entity with the CharMover.
  • asTurnToEntityName: the entity which center will be turn towards
  • asTurnedToGoalCallbackFunc: function called when it has turned to the goal. Syntax: void Func(const tString& in asEntityName)


CharMover_TurnInstantlyToEntity
void CharMover_TurnInstantlyToEntity(const tString &in asEntityName,
                                     const tString &in asTurnToEntityName)

Turns the character directly to a specifc entity. Broadcasts the entity message eLuxEntityMessage_TurningDone when done.

  • asEntityName: name of the entity with the CharMover.
  • asTurnToEntityName: the entity which center will be turn towards


CharMover_MoveToEntity
void CharMover_MoveToEntity(const tString &in asEntityName,
                            const tString &in asMoveToEntityName,
                            const cVector3f &in avOffset=cVector3f(0))

Moves the character to a entity. Note that for non-flying characters, goal position should be the feet postion.

  • asEntityName: name of the entity with the CharMover.
  • asMoveToEntityName: the entity which center will be turn towards
  • avOffset: an offset for the move postion.


CharMover_MoveToPos
void CharMover_MoveToPos(const tString &in asEntityName,
                         const cVector3f &in avPosition)

Moves the character to a position. Note that for non-flying characters, goal position should be the feet postion.

  • asEntityName: name of the entity with the CharMover.
  • avPosition: position to move to


CharMover_SetSpeedState
void CharMover_SetSpeedState(const tString &in asEntityName,
                             int alIndex)

Sets the speed state of the character.

  • asEntityName: name of the entity with the CharMover.
  • alIndex: speed state index


CharMover_SetUseMoveStateAnimations
void CharMover_SetUseMoveStateAnimations(const tString &in asEntityName,
                                         bool abX)

If the charmover should change animations depending based on movement.

  • asEntityName: name of the entity with the CharMover.
  • abX: if charmover shouuld take care of animations


CharMover_PlayAnimation
void CharMover_PlayAnimation(const tString &in asEntityName,
                             const tString &in asAnimName,
                             float afFadeTime=0.3f,
                             bool abLoop=false,
                             bool abPlayTransition=true,
                             const tString &in asCallback="")




CharMover_StopTurning
void CharMover_StopTurning(const tString &in asEntityName)

Stops any turning in the charmover

  • asEntityName: name of the entity with the CharMover.


CharMover_SetTurnRate
void CharMover_SetTurnRate(const tString &in asEntityName,
                           float afMinBreakAngle,
                           float afBreakAngleMul,
                           float afTurnSpeedMul,
                           float afTurnSpeedMax)

Sets the turning behavior of the charmover.

  • asEntityName: name of the entity with the CharMover.
  • afMinBreakAngle: the minimum angle at which the charmover should slow down when turning.
  • afBreakAngleMul: value multiplied by the angle to calculate how much the charmover should slow down when turning.
  • afTurnSpeedMul: value multiplied by the angle to calculate how fast the charmover should turn.
  • afTurnSpeedMax: the max turn speed.


CharMover_SetMaxForwardSpeed
void CharMover_SetMaxForwardSpeed(const tString &in asEntityName,
                                  float afMaxSpeed)

Sets the max forward speed of the CharMover.

  • asEntityName: name of the entity with the CharMover.
  • afMaxSpeed: max forward speed to set.


CharMover_SetWallAvoidanceActive
void CharMover_SetWallAvoidanceActive(const tString &in asEntityName,
                                      bool abX)

Enables or disables wall avoidance on the specified CharMover.

  • asEntityName: name of the entity with the CharMover.
  • abX: the state to set.


Pathfinder_MoveTo
void Pathfinder_MoveTo(const tString &in asEntityName,
                       const cVector3f &in avPos,
                       const tString &in asCallbackFunc,
                       float afUpdateFreq=0,
                       bool abExactStopAtEnd=true,
                       const tString &in asResultCallbackFunc="")

Moves an entity containing a Pathfinder component to a position. The entity message eLuxEntityMessage_EndOfPath is broadcasted when complete.

  • asEntityName: name of the entity with the pathfinder.
  • avPos: position to move to.
  • asCallbackFunc: The name of callback called when end is reach. Syntax: void Func(const tString& in asEntityName, bool abReachedEnd)
  • afUpdateFreq: The number of times per second that the path will be updated. O or below means never update.
  • abExactStopAtEnd: If the goal position should be hit exactly.
  • asResultCallbackFunc: The name of callback called when the pathfinding has been performed. Syntax: void Func(bool abSuccesful)


Pathfinder_MoveToNode
void Pathfinder_MoveToNode(const tString &in asEntityName,
                           const tString &in asNodeName,
                           const tString &in asCallbackFunc="",
                           float afUpdateFreq=0,
                           bool abExactStopAtEnd=true,
                           const tString &in asResultCallbackFunc="")

Moves an entity containing a Pathfinder component to a node. The entity message eLuxEntityMessage_EndOfPath is broadcasted when complete.

  • asEntityName: name of the entity with the pathfinder.
  • asNodeName: name of the node to move to.
  • asCallbackFunc: The name of callback called when end is reach. Syntax: void Func(const tString& in asEntityName, bool abReachedEnd)
  • afUpdateFreq: The number of times per second that the path will be updated. O or below means never update.
  • abExactStopAtEnd: If the goal node should be hit exactly.
  • asResultCallbackFunc: The name of callback called when the pathfinding has been performed. Syntax: void Func(bool abSuccesful)


Pathfinder_MoveToEntity
void Pathfinder_MoveToEntity(const tString &in asPathfinderName,
                             const tString &in asEntityName,
                             const tString &in asCallbackFunc,
                             float afUpdateFreq=0,
                             bool abExactStopAtEnd=true,
                             const cVector3f &in avGoalPosOffset=cVector3f(0),
                             const tString &in asResultCallbackFunc="")

Moves an entity containing a Pathfinder component to a entity. The entity message eLuxEntityMessage_EndOfPath is broadcasted when complete.

  • asPathfinderName: name of the entity with the pathfinder.
  • asEntityName: name of the entity to move to.
  • asCallbackFunc: The name of callback called when end is reach. Syntax: void Funcconst
  • afUpdateFreq: The number of times per second that the path will be updated. O or below means never update.
  • abExactStopAtEnd: If the goal entity should be hit exactly.
  • avGoalPosOffset: if the goal pos should be offset
  • asResultCallbackFunc: The name of callback called when the pathfinding has been performed. Syntax: void Func(bool abSuccesful)


Pathfinder_Stop
void Pathfinder_Stop(const tString &in asEntityName)

Stops any movement.

  • asEntityName: name of the entity with the pathfinder.


Pathfinder_SetEndCallback
void Pathfinder_SetEndCallback(const tString &in asEntityName,
                               const tString &in asCallbackFunc)

Sets the callback for when the pathfinder has reached its goal.

  • asEntityName: name of the entity with the pathfinder.
  • asCallbackFunc: The name of callback called when end is reach. Syntax: void Funcconst


Pathfinder_IsMoving
bool Pathfinder_IsMoving(const tString &in asEntityName)

Checks if the pathfinder is currently moving.

  • asEntityName: name of the entity with the pathfinder.


Pathfinder_Track_Clear
void Pathfinder_Track_Clear(const tString &in asEntityName)

Clears all track nodes and stops track.

  • asEntityName: name of the entity with the pathfinder.


Pathfinder_Track_Add
void Pathfinder_Track_Add(const tString &in asEntityName,
                          const tString &in asNodeName,
                          float afMinWaitTime=0,
                          float afMaxWaitTime=-1,
                          const tString &in asAnimName="",
                          bool abLoopAnim=false)

Adds a track node to be followed.

  • asEntityName: name of the entity with the pathfinder.
  • asNodeName: Name of the path node to be added.
  • afMinWaitTime: minimum time before the entity moves to the next node.
  • afMaxWaitTime: maximum time before the entity moves to the next node. If <0, then the value will be same as afMinWaitTime
  • asAnimName: animation played when at node, per entity.
  • abLoopAnim: if the animtion should be looped, per entity.


Pathfinder_Track_Start
void Pathfinder_Track_Start(const tString &in asEntityName,
                            bool abLoop=false,
                            float afUpdateFreq=1.0f,
                            const tString &in asEndOfTrackCallback="")

Starts a track

  • asEntityName: name of the entity with the pathfinder.
  • abLoop: if the path should loop
  • afUpdateFreq: the frequency at which the path is recculated
  • asEndOfTrackCallback: Callback called when path is over. Syntax: void MyFunc(const tString& in asEntityName)


Pathfinder_Track_Stop
void Pathfinder_Track_Stop(const tString &in asEntityName)

Stops the current track.

  • asEntityName: name of the entity with the pathfinder.


BarkMachine_SetActive
void BarkMachine_SetActive(const tString &in asEntityName,
                           bool abActive)

Sets if the barkmachine is active (this will only affect random sounds)

  • asEntityName: name of the entity with the barkmachine.
  • abActive: if active or not.


BarkMachine_PlayVoice
void BarkMachine_PlayVoice(const tString &in asEntityName,
                           const tString &in asSubject,
                           int alPrio,
                           float afMinDistance=-1,
                           float afMaxDistance=-1,
                           float afMaxPlayerListeningRange=-1)

Plays a voice subject as a bark

  • asEntityName: name of the entity with the barkmachine.
  • asSubject: the name of the voice subject
  • alPrio: the prio of the voice, if there is already one playing in the same scene prio must be higher for this to play.
  • afMinDistance: The distance where volume starts getting quiet. If below 0, default is used.
  • afMaxDistance: The maximum hearing range. If below 0, default is used.
  • afMaxPlayerListeningRange: The maximum that subtitles are displayed. If below 0, default is used.


HeadTracker_SetActive
void HeadTracker_SetActive(const tString &in asEntityName,
                           bool abX)

Turns on and off head tracking.

  • asEntityName: name of the entity with the HeadTracker.
  • abX: if headtracking is enabled or not


HeadTracker_IsActive
bool HeadTracker_IsActive(const tString &in asEntityName)

If head tracking is active or not

  • asEntityName: name of the entity with the HeadTracker.


HeadTracker_SetAngleOffset
void HeadTracker_SetAngleOffset(const tString &in asEntityName,
                                float afX)

Sets the offset of the headtracker angle useful if the character is not facing in the direction of the meshentity forward vector.

  • asEntityName: name of the entity with the HeadTracker.
  • afX: The angle offset, in degrees


HeadTracker_SetTargetEntity
void HeadTracker_SetTargetEntity(const tString &in asEntityName,
                                 const tString &in asTargetEntityName)

Sets the target of the head tracking

  • asEntityName: name of the entity with the HeadTracker.
  • asTargetEntityName: The target of the tracking


NPC_SetVoiceName
void NPC_SetVoiceName(const tString &in asNpcName,
                      const tString &in asVoiceName)

Sets the voice name for an NPC. This also automatically sets the source of the voice as the npc.

  • asNpcName: name of the NPC.
  • asVoiceName: name of the voice as defined in the voicehandler file..


NPC_IsTalking
bool NPC_IsTalking(const tString &in asNpcName)

Checks if the NPC is being talked to.

  • asNpcName: name of the NPC.


NPC_SetCanBeTalkedTo
void NPC_SetCanBeTalkedTo(const tString &in asNpcName,
                          bool abX)

Sets if the NPC can be talked to (interacted with)

  • asNpcName: name of the NPC. Wildcard supported.
  • abX: if can be talked to.


NPC_SetMainAnimation
void NPC_SetMainAnimation(const tString &in asNpcName,
                          const tString &in asAnim,
                          bool abPlayTransition=true,
                          const tString &in asCallbackFunc="",
                          float afFadeTime=0.5,
                          bool abGlobalSpace=false)

Sets and plays the main animation of the NPC. This will also turn off any movement animations.

  • asNpcName: name of the NPC. Wildcard supported.
  • asAnim: The name of the animation
  • abPlayTransition: If a transition animation should be played.
  • asCallbackFunc: name of callback function. Only used if there is a transition animation. Syntax void Func(const tString &in asEntityName, const tString &in asAnimName)
  • afFadeTime: time it takes to fade to the animation.
  • abGlobalSpace: if the animation takes place in global space


NPC_PlayExtraAnimation
void NPC_PlayExtraAnimation(const tString &in asNpcName,
                            const tString &in asAnim,
                            float afFadeTime=0.3,
                            const tString &in asCallbackFunc="",
                            bool abGlobalSpace=false)

Plays an extra animation for the NPC. Will return to main animation (see NPC_SetMainAnimation) when done.

  • asNpcName: name of the NPC. Wildcard supported.
  • asAnim: The name of the animation
  • afFadeTime: The time it takes to fade in the animation.
  • asCallbackFunc: name of callback function. Syntax void Func(tString &in asEntityName, tString &in asAnimName)
  • abGlobalSpace: the animation will be played in global space coordinates (?)


NPC_StopAllAnimations
void NPC_StopAllAnimations(const tString &in asNpcName,
                           float afFadeTime=0.0f)

Stops all animations for the NPC.

  • asNpcName: name of the NPC. Wildcard supported.
  • afFadeTime: The time it takes to fade out.


NPC_StopExtraAnimation
void NPC_StopExtraAnimation(const tString &in asNpcName,
                            float afFadeTime=0.0f)

Stops currently playing extra animation for the NPC.

  • asNpcName: name of the NPC. Wildcard supported.
  • afFadeTime: The time it takes to fade out.


NPC_PlayEmotion
void NPC_PlayEmotion(const tString &in asNpcName,
                     const tString &in asEmotion,
                     float afDuration,
                     float afWeight=1.0f,
                     float afFadeTime=0.25f)

Plays a face emotion for the duration

  • asNpcName: name of the NPC. Wildcard supported.
  • asEmotion: name of the emotion, "Smile/Sad/Happy/Surprised/Wink/Wondering/Angry/Worried/Scared"
  • afDuration: how long the emotion should be active
  • afWeight: how strong the emotion should be
  • afFadeTime: fade in and out time for the emotion


NPC_MoveToNode
void NPC_MoveToNode(const tString &in asNpcName,
                    const tString &in asNodeName,
                    const tString &in asCallbackFunc)

Moves the NPC to a path node.

  • asNpcName: name of the NPC. Wildcard supported.
  • asNodeName: The name of the path node.
  • asCallbackFunc: The name of callback called when end is reach. Syntax: void Func(const tString& in asEntityName, bool abReachedEnd)


Critter_SetGroupEntity
void Critter_SetGroupEntity(const tString &in asCritter,
                            const tString &in asGroupEntity)

Sets the entity the critter should flock around

  • asCritter: name of the Critter. Wildcard supported.
  • asGroupEntity: The name of the group entity.


Critter_AddExtraEscapeEntity
void Critter_AddExtraEscapeEntity(const tString &in asCritter,
                                  const tString &in asEscapeEntity)

Adds an entity that the critter should try to avoid the same way it does with the player. (Only implemented in FishSmall right now)

  • asCritter: name of the Critter. Wildcard supported.
  • asEscapeEntity: The name of the entity to escape from