AI

From Blue Mars Developer Guidebook

Jump to: navigation, search
There are security restrictions on this article

Contents

Overview

AI's are assigned either a behavior or character, where an AI character (not to be confused with the term used for skeletal animation) is a set of behaviors and transitions among them. The assignment is visible and editable for each AI in the Sandbox Editor. A behavior is a set of signal handlers. The handlers are Lua functions that typically adjust what goals are executed by an AI. Goals include atomic goals and goal pipes, which are compositions of goals. Goals can be blocking or run in parallel.

Scripts

Behaviors

Behaviors are implemented as individual scripts under Game/Scripts/AI/Behaviors and registered in the AIBehaviour table in Game/Scripts/AI/Behaviors/AIBehaviour.lua (yes, the spelling is inconsistent).

Characters

Similarly, AI characters are implemented in scripts under Game/Scripts/AI/Characters and registered in the AICharacter table in Game/Scripts/AI/Characters/AICharacter.lua

Adding Behaviors

Third-party behaviors are added in vendor-specific subdirectories, which are registered/loaded in Game/Scripts/AI/Behaviors/AIBehaviour.lua like this:

Script.ReloadScript("Scripts/AI/Behaviors/AR/AIBehavior.lua");

AI functions are in the AI table. See also Entity AI functions.

Signals

Signalling

Signals are sent to AI's by the engine (e.g. environmental/sensory signals), from within behavior scripts via the function AI.Signal or the signal goal, or from entity scripts using AI.Signal:

Signal(filter_type,signal_type,signal_name,entity_id,data)
sends a signal to one or more AI's
filter_type - can be 0 (send to entity_id) or one of the following
SIGNALFILTER_LASTOP
SIGNALFILTER_GROUPONLY
SIGNALFILTER_GROUPONLY_EXCEPT
SIGNALFILTER_SPECIESONLY
SIGNALFILTER_ANYONEINCOMM
SIGNALFILTER_TARGET
SIGNALFILTER_SUPERGROUP
SIGNALFILTER_SUPERSPECIES
SIGNALFILTER_SUPERTARGET
SIGNALFILTER_NEARESTGROUP
SIGNALFILTER_NEARESTINCOMM
SIGNALFILTER_NEARESTINCOMM_SPECIES
SIGNALFILTER_NEARESTINCOMM_LOOKING
SIGNALFILTER_HALFOFGROUP
SIGNALFILTER_SENDER
SIGNALFILTER_LEADER
SIGNALFILTER_LEADERENTITY
SIGNALFILTER_FORMATION
SIGNALFILTER_FORMATION_EXCEPT
signal_type
signal_name - string name of the signal.
entity_id
data - optional data in the form of a table. For convenience, you can use g_signalData defined in CryEngine Lua Utilities
point2 - a vector
fValue - a float
iValue - an integer
iValue2 - another integer
id - an entity ID
ObjectName - a string

Existing Signals

You can define new signals just by passing a new signal name to AI.Signal (or the signal goal).

Here are the existing ones in Scripts/AI/Behaviors/Default.lua - some may be inapplicable to Blue Mars

OnUseSmartObject
signal that a smart object shold be used
ABORT_ALL_ACTIONS
signals to abort all actions
OnReinforcementRequested
signal to smart objects

These signals were originally defined for use by AI flow nodes but of course can be invoked by AI.Signal.

ACT_GOTO(self,entity,sender,data)
approach a point
data
point - target position
fvalue - precision of stopping point at target
ivalue - if non-zero, doesn't execute if this behavior (specifically, the goal pipe for this behavior) was recently cancelled

Example:

  local signalData = g_SignalData;
    CopyVector( signalData.point, pos );
    signalData.point2.x        = 0;
    signalData.fValue        = 0;
    signalData.iValue        = 0;
    AI.Signal( 0, 10, "ACT_GOTO", self.Avatar.entity.id, signalData );
ACT_FOLLOWPATH
follow a path
ACT_LOOKATPOINT
ACT_EXECUTE

Goals

Atomic Goals

acqtarget(name)
acquire named target
lookaround()
look in a random direction
approach(distance,accuracy,duration)
makes agent approach
follow(distance)
follow current target at distance
followpath(pathfind,reerse,startnearest,loops,endAccuracy,usePointList)
follow predefined path
backoff(distance,duration,filter,mindistance)
backoff to a distance from current target
firecmd(firemode,uselastopresult,intervalmin,intervalmax)
enable/disable firing
strafe(distancestart,distanceend,strafewhilemoving)
strafe left or right
bodypos(stance,delay)
set stance
stance - one of the following
BODYPOS_NONE
BODYPOS_STAND
BODYPOS_CROUCH
BODYPOS_PRONE
BODYPOS_RELAX
BODYPOS_STEALTH
delay - if 0, apply immediatley, otherwise set at the end of the next/current trace
run
enable/disable run
timeout(intervalmin)
counts down a timer
pathfind()
generate a path to desired object
locate()
locate an AI object
trace()
follow generated path
signal()
send a signal
ignoreall
ignore threats
devalue()
devalue current attention target
forget()
forget current attention target
hide()
find closest hiding place and hide there
form()
create a formation
stick()
maintain a constant distnace to target
clear()
clears the actions for the operand puppet
branch
random
lookat(startangle,endangle,mode,uselastop)
look toward a specified direction
continuous(keepmoving)
continuous movement, keep going in last movement direction. Don't stop while tracing path.
move(distance,speed,uselastop,lookatlastop,continuous)
move in specified direction without pathfinding
charge(distancefront,distanceback,uselastop ,lookatlastop)
chase target and charge when condition is met
waitsignal(signal,interval)
wait for a signal and countdown
animation(mode,value)
sets an animation graph input
animtarget(signal,animName,startRadius, dirTolerance, ragetRadius, approachPos)
exact positioning animation to play at the end of the path
usecover()
hide/unhide at current hiding spot
wait(waittype, blockcount)
wait for a group of goals to be executed
adjustaim(hide,uselastopasbackup, allowprone)
adjust aim while saying still
seekcover(pos,vis,valid,navtype)
seek cover dynamicaly
proximity(radius,signalName,signalWhenDisabled,visibleTargetOnly)
send signal on proximity
movetowards(distance,duration)
move specified distance towards last op result
dodge(distance,uselastopasbackup)
dodges a target

Goal Pipes

CreateGoalPipe(name)
create new goal pipe. Replaces any goal pipe that has the same name.
name - string name of the goal pipe
BeginGoalPipe(name)
specify that the named goal pipe is "current", so calls to PushGoal don't need to specify the pipe name
EndGoalPipe()
clears the "current" goal pipe. There must be matching pairs of BeginGoalPipe/EndGoalPipe.
PushGoal(pipename,goalname,blocking,...)
push (append) a goal onto a goal pipe.
pipename - name of the pipe. Omit if inside BeginGoalPipe/EndGoalPipe.
goalname - name of the goal, either a another goal pipe or an atomic goal.
blocking - 0 specifies no blocking, 1 specifies blocking
any additional parameters required by the goal
PushLabel
IsGoalPipe
BeginGroup
EndGroup

Logging

Warning
Error
LogProgress
LogEvent
LogComment
RecComment
RegisterWithAI
ResetParameters
ChangeParameter
GetAIParameter
IsEnabled
ChangeMovementAbility
ExecuteAction
AbortAction
SetSmartObjectState
ModifySmartObjectStates
SmartObjectEvent
GetLastUsedSmartObject
GetLastSmartObjectExitPoint

FreeSignal
SetIgnorant
SetAssesmentMultiplier
SetSpeciesThreatMultiplier
GetGroupCount
GetGroupMember
GetGroupOf
GetGroupAveragePosition
Hostile
FindObjectOfType
SoundEvent
GetAnchor
GetSpeciesOf
GetTypeOf
GetSubTypeOf
GetAttentionTargetOf
GetAttentionTargetPosition
GetAttentionTargetDirection
GetAttentionTargetViewDirection
GetAttentionTargetDistance
GetAttentionTargetEntity
GetAttentionTargetType
GetTargetType
GetAIObjectPosition
GetBeaconPosition
SetBeaconPosition
GetTotalLengthOfPath
GetNearestEntitiesOfType
SetRefPointPosition
SetRefPointDirection
GetRefPointPosition
GetRefPointDirection
SetRefPointRadius
SetRefShapeName
GetRefShapeName
SetTerritoryShapeName
CreateTempGenericShapeBox
GetForwardDir
SetCharacter
GetAlienApproachParams
GetHunterApproachParams
VerifyAlienTarget
GetDirectAnchorPos
GetNearestHidespot
GetEnclosingGenericShapeOfType
IsPointInsideGenericShape
DistanceToGenericShape
ConstrainPointInsideGenericShape
EvalHidespot
EvalPeek
NotifyGroupTacticState
GetGroupTacticState
GetGroupTacticPoint
NotifyReinfDone
IntersectsForbidden
IsPointInFlightRegion
IsPointInWaterRegion
GetEnclosingSpace
Event
CreateFormation
AddFormationPoint
AddFormationPointFixed
GetFormationPointClass
GetFormationPointPosition
ChangeFormation
ScaleFormation
SetFormationUpdate
SetFormationUpdateSight
GetLeader
SetLeader
UpTargetPriority
SetExtraPriority
GetExtraPriority
GetPlayerThreatLevel
GetStance
SetStance
GetUnitInRank
SetUnitProperties
GetUnitCount
IsFlightSpaceVoid
IsFlightSpaceVoidByRadius
SetForcedNavigation
SetAdjustPath
GetHeliAdvancePoint
CheckVehicleColision
GetFlyingVehicleFlockingPos
SetPFBlockerRadius
SetPFProperties
GetAlertStatus
GetGroupTarget
GetGroupTargetCount
RequestAttack
GetNavigationType
SetPathToFollow
SetPathAttributeToFollow
GetPredictedPosAlongPath
SetPointListToFollow
GetNearestPointOnPath
GetPathSegNoOnPath
GetPointOnPathBySegNo
GetPathLoop
GetNearestPathOfTypeInRange
GetDistanceAlongPath
BeginTrackPattern
AddPatternNode
AddPatternBranch
EndTrackPattern
SetMinFireTime
EnableCoverFire
SetRefPointToGrenadeAvoidTarget
IsAgentInTargetFOV
AddCombatClass
SetRefPointAtDefensePos
RegisterDamageRegion
SetCurrentHideObjectUnreachable
FindStandbySpotInShape
FindStandbySpotInSphere
GetObjectRadius
GetProbableTargetPosition
NotifySurpriseEntityAction
AddObstructSphere
Animation
CanJumpToPoint
SetRefpointToAlienHidespot
MarkAlienHideSpotUnreachable
SetRefpointToAnchor
SetRefpointToPunchableObject
MeleePunchableObject
IsPunchableObjectValid
ProcessBalancedDamage
CanMoveStraightToPoint
CanMelee
CheckMeleeDamage
IsMoving
GetDirLabelToPoint
DebugReportHitDamage
SetInterestStatus
GetInterestStatus
PlayReadabilitySound
AutoDisable
IsMountedWeaponUsableWithTarget

var AIWEPA_LASER
var AIWEPA_COMBAT_LIGHT
var AIWEPA_PATROL_LIGHT
EnableWeaponAccessory
var AIFO_FACING_TARGET
var AIFO_NONOCCUPIED
var AIFO_CHOOSE_RANDOM
var AIFO_NONOCCUPIED_REFPOINT
var AIFO_USE_BEACON_AS_FALLBACK_TGT
var AIFO_NO_DEVALUE
var AIPARAM_SIGHTRANGE
var AIPARAM_ATTACKRANGE
var AIPARAM_ACCURACY
var AIPARAM_GROUPID
var AIPARAM_FOVPRIMARY
var AIPARAM_FOVSECONDARY
var AIPARAM_COMMRANGE
var AIPARAM_FWDSPEED
var AIPARAM_SPECIES
var AIPARAM_SPECIESHOSILITY
var AIPARAM_RANK
var AIPARAM_CAMOSCALE
var AIPARAM_HEATSCALE
var AIPARAM_TRACKPATNAME
var AIPARAM_TRACKPATADVANCE
var AIPARAM_STRAFINGPITCH
var AIPARAM_COMBATCLASS
var AIPARAM_INVISIBLE
var AIPARAM_PERCEPTIONSCALE_VISUAL
var AIPARAM_PERCEPTIONSCALE_AUDIO
var AIPARAM_CLOAK_SCALE
var AIPARAM_FORGETTIME_TARGET
var AIPARAM_FORGETTIME_MEMORY
var AIPARAM_FORGETTIME_SEEK
var AIPARAM_LOOKIDLE_TURNSPEED
var AIPARAM_LOOKCOMBAT_TURNSPEED
var AIPARAM_AIM_TURNSPEED
var AIPARAM_FIRE_TURNSPEED
var AIPARAM_MELEE_DISTANCE
var AIPARAM_MIN_ALARM_LEVEL
var AIPARAM_SIGHTENVSCALE_NORMAL
var AIPARAM_SIGHTENVSCALE_ALARMED
var AIPARAM_GRENADE_THROWDIST
var AIMOVEABILITY_OPTIMALFLIGHTHEIGHT
var AIMOVEABILITY_MINFLIGHTHEIGHT
var AIMOVEABILITY_MAXFLIGHTHEIGHT
var AIMOVEABILITY_TELEPORTENABLE
var AIMOVEABILITY_USEPREDICTIVEFOLLOWING
var AIOBJECT_PUPPET
var AIOBJECT_VEHICLE
var AIOBJECT_CAR
var AIOBJECT_BOAT
var AIOBJECT_HELICOPTER
var AISIGNAL_INCLUDE_DISABLED
var AISIGNAL_DEFAULT
var AISIGNAL_PROCESS_NEXT_UPDATE
var AISIGNAL_NOTIFY_ONLY
var AISIGNAL_ALLOW_DUPLICATES
var AIOBJECT_2D_FLY
var AIOBJECT_ATTRIBUTE
var AIOBJECT_WAYPOINT
var AIOBJECT_SNDSUPRESSOR
var AIOBJECT_MOUNTEDWEAPON
var AIOBJECT_GLOBALALERTNESS
var AIOBJECT_PLAYER
var AIOBJECT_DUMMY
var AIOBJECT_NONE
var AIOBJECT_ORDER
var AIOBJECT_GRENADE
var AIOBJECT_RPG
var AI_USE_HIDESPOTS
var STICK_BREAK
var STICK_SHORTCUTNAV
var GE_GROUP_STATE
var GE_UNIT_STATE			
var GE_ADVANCE_POS
var GE_SEEK_POS
var GE_DEFEND_POS
var GE_LEADER_COUNT
var GE_MOST_LOST_UNIT
var GE_MOVEMENT_SIGNAL
var GE_NEAREST_SEEK
var GN_INIT
var GN_MARK_DEFEND_POS
var GN_CLEAR_DEFEND_POS
var GN_AVOID_CURRENT_POS
var GN_PREFER_ATTACK
var GN_PREFER_FLEE
var GN_NOTIFY_ADVANCING
var GN_NOTIFY_COVERING
var GN_NOTIFY_WEAK_COVERING
var GN_NOTIFY_HIDING
var GN_NOTIFY_SEEKING
var GN_NOTIFY_ALERTED
var GN_NOTIFY_UNAVAIL
var GN_NOTIFY_IDLE
var GN_NOTIFY_SEARCHING
var GN_NOTIFY_REINFORCE
var GS_IDLE
var GS_COVER
var GS_ADVANCE
var GS_SEEK
var GS_SEARCH
var GU_HUMAN_CAMPER
var GU_HUMAN_COVER
var GU_HUMAN_SNEAKER
var GU_HUMAN_LEADER
var GU_HUMAN_SNEAKER_SPECOP
var GU_ALIEN_MELEE
var GU_ALIEN_ASSAULT
var GU_ALIEN_MELEE_DEFEND
var GU_ALIEN_ASSAULT_DEFEND
var GU_ALIEN_EVADE
var AIEVENT_ONBODYSENSOR
var AIEVENT_ONVISUALSTIMULUS
var AIEVENT_AGENTDIED
var AIEVENT_SLEEP
var AIEVENT_WAKEUP
var AIEVENT_ENABLE
var AIEVENT_DISABLE
var AIEVENT_REJECT
var AIEVENT_PATHFINDON
var AIEVENT_PATHFINDOFF
var AIEVENT_CLEAR
var AIEVENT_DROPBEACON
var AIEVENT_USE
var AIEVENT_CLEARACTIVEGOALS
var AIEVENT_DRIVER_IN
var AIEVENT_DRIVER_OUT
var AIEVENT_FORCEDNAVIGATION
var AISE_GENERIC
var AISE_MOVEMENT
var AISE_MOVEMENT_LOUD
var AISE_WEAPON
var AISE_EXPLOSION
var AI_LOOKAT_CONTINUOUS
var AI_LOOKAT_USE_BODYDIR
var AISYSEVENT_DISABLEMODIFYER
var AIGOALTYPE_UNDEFINED
var AIGOALTYPE_GOTO
var AIGOALTYPE_ATTACK
var AIGOALTYPE_PATH
var AIGOALTYPE_TRANSPORT
var AIGOALTYPE_REINFORCEMENT
var AIGOALTYPE_FOLLOW
var AILASTOPRES_LOOKAT
var AILASTOPRES_USE
var AI_LOOK_FORWARD
var AI_MOVE_RIGHT
var AI_MOVE_LEFT
var AI_MOVE_FORWARD
var AI_MOVE_BACKWARD
var AI_MOVE_BACKLEFT
var AI_MOVE_BACKRIGHT
var AI_MOVE_TOWARDS_GROUP
var AI_USE_TARGET_MOVEMENT
var AI_REQUEST_PARTIAL_PATH
var AI_BACKOFF_FROM_TARGET
var AI_BREAK_ON_LIVE_TARGET
var AI_RANDOM_ORDER
var AI_USE_TIME
var AI_STOP_ON_ANIMATION_START
var AI_CONSTANT_SPEED
var AI_ADJUST_SPEED
var AI_DONT_STEER_AROUND_TARGET
var FIREMODE_OFF
var FIREMODE_BURST
var FIREMODE_CONTINUOUS
var FIREMODE_FORCED
var FIREMODE_AIM
var FIREMODE_SECONDARY
var FIREMODE_SECONDARY_SMOKE
var FIREMODE_MELEE
var FIREMODE_MELEE_FORCED
var FIREMODE_KILL
var FIREMODE_BURST_WHILE_MOVING
var FIREMODE_PANIC_SPREAD
var FIREMODE_BURST_DRAWFIRE
var FIREMODE_BURST_SNIPE
var FIREMODE_AIM_SWEEP
var CHECKTYPE_MIN_DISTANCE
var CHECKTYPE_MIN_ROOMSIZE
var AITSR_NONE
var AITSR_SEE_STUNT_ACTION
var AITSR_SEE_CLOAKED
var AIGOALPIPE_NOTDUPLICATE
var AIGOALPIPE_LOOP
var AIGOALPIPE_RUN_ONCE
var AIGOALPIPE_HIGHPRIORITY
var AIGOALPIPE_SAMEPRIORITY
var AIGOALPIPE_DONT_RESET_AG
var AIGOALPIPE_KEEP_LAST_SUBPIPE
var LA_NONE
var LA_HIDE
var LA_HOLD
var LA_ATTACK
var LA_SEARCH
var LA_FOLLOW
var LA_USE
var LA_USE_VEHICLE
var LAS_DEFAULT
var LAS_ATTACK_FUNNEL
var LAS_ATTACK_FLANK
var LAS_ATTACK_FLANK_HIDE
var LAS_ATTACK_FOLLOW_LEADER
var LAS_ATTACK_ROW
var LAS_ATTACK_CIRCLE
var LAS_ATTACK_LEAPFROG
var LAS_ATTACK_FRONT
var LAS_ATTACK_CHAIN
var LAS_ATTACK_COORDINATED_FIRE1
var LAS_ATTACK_COORDINATED_FIRE2
var LAS_ATTACK_USE_SPOTS
var LAS_ATTACK_HIDE
var LAS_ATTACK_HIDE_COVER
var LAS_ATTACK_SWITCH_POSITIONS
var LAS_ATTACK_CHASE
var LAS_SEARCH_DEFAULT
var LAS_SEARCH_COVER
var UPR_COMBAT_FLIGHT
var UPR_COMBAT_GROUND
var UPR_COMBAT_MARINE
var UPR_COMBAT_RECON
var AITARGET_NONE
var AITARGET_MEMORY
var AITARGET_BEACON
var AITARGET_ENEMY
var AITARGET_SOUND
var AITARGET_GRENADE
var AITARGET_RPG
var AITARGET_FRIENDLY
var AIALERTSTATUS_SAFE
var AIALERTSTATUS_UNSAFE
var AIALERTSTATUS_READY
var AIALERTSTATUS_ACTION
var AIUSEOP_PLANTBOMB
var AIUSEOP_VEHICLE
var AIUSEOP_RPG
var AIREADIBILITY_NORMAL
var AIREADIBILITY_NOPRIORITY
var AIREADIBILITY_SEEN
var AIREADIBILITY_LOST
var AIREADIBILITY_INTERESTING

var AIOBJECTFILTER_SAMESPECIES
var AIOBJECTFILTER_SAMEGROUP
var AIOBJECTFILTER_NOGROUP
var AIOBJECTFILTER_INCLUDEINACTIVE
var AI_NOGROUP
var HM_NEAREST
var HM_NEAREST_TO_ME
var HM_FARTHEST_FROM_TARGET
var HM_NEAREST_TO_TARGET
var HM_NEAREST_BACKWARDS
var HM_NEAREST_TOWARDS_TARGET
var HM_FARTHEST_FROM_GROUP
var HM_NEAREST_TO_GROUP
var HM_LEFTMOST_FROM_TARGET
var HM_RIGHTMOST_FROM_TARGET
var HM_RANDOM
var HM_FRONTLEFTMOST_FROM_TARGET
var HM_FRONTRIGHTMOST_FROM_TARGET
var HM_NEAREST_TO_FORMATION
var HM_FARTHEST_FROM_FORMATION
var HM_NEAREST_TO_LASTOPRESULT
var HM_RANDOM_AROUND_LASTOPRESULT
var HM_USEREFPOINT
var HM_ASKLEADER
var HM_ASKLEADER_NOSAME
var HM_BEHIND_VEHICLES
var HM_INCLUDE_SOFTCOVERS
var HM_IGNORE_ENEMIES
var HM_NEAREST_PREFER_SIDES
var HM_BACK
var HM_AROUND_LASTOP
var HM_FROM_LASTOP
var HM_USE_LASTOP_RADIUS
var HM_ON_SIDE
var HM_NEAREST_TOWARDS_TARGET_PREFER_SIDES
var HM_NEAREST_TOWARDS_TARGET_LEFT_PREFER_SIDES
var HM_NEAREST_TOWARDS_TARGET_RIGHT_PREFER_SIDES
var HM_NEAREST_TOWARDS_REFPOINT

var UNIT_CLASS_UNDEFINED
var UNIT_CLASS_INFANTRY
var UNIT_CLASS_SCOUT
var UNIT_CLASS_ENGINEER
var UNIT_CLASS_MEDIC
var UNIT_CLASS_LEADER
var UNIT_CLASS_CIVILIAN
var UNIT_CLASS_COMPANION
var SPECIAL_FORMATION_POINT
var SHOOTING_SPOT_POINT
var AIANCHOR_NEAREST
var AIANCHOR_NEAREST_IN_FRONT
var AIANCHOR_RANDOM_IN_RANGE
var AIANCHOR_RANDOM_IN_RANGE_FACING_AT
var AIANCHOR_NEAREST_FACING_AT	
var AIANCHOR_NEAREST_TO_REFPOINT
var AIANCHOR_FARTHEST
var AIANCHOR_BEHIND_IN_RANGE
var AIANCHOR_LEFT_TO_REFPOINT
var AIANCHOR_RIGHT_TO_REFPOINT
var AIANCHOR_HIDE_FROM_REFPOINT
var AIANCHOR_SEES_TARGET
var AIANCHOR_BEHIND
var BRANCH_ALWAYS
var IF_ACTIVE_GOALS
var IF_ACTIVE_GOALS_HIDE
var IF_NO_PATH
var IF_PATH_STILL_FINDING
var IF_IS_HIDDEN
var IF_CAN_HIDE
var IF_CANNOT_HIDE
var IF_STANCE_IS
var IF_FIRE_IS
var IF_HAS_FIRED
var IF_NO_LASTOP
var IF_SEES_LASTOP
var IF_SEES_TARGET
var IF_EXPOSED_TO_TARGET
var IF_CAN_SHOOT_TARGET
var IF_CAN_MELEE
var IF_NO_ENEMY_TARGET
var IF_PATH_LONGER
var IF_PATH_SHORTER
var IF_PATH_LONGER_RELATIVE
var IF_NAV_TRIANGULAR
var IF_NAV_WAYPOINT_HUMAN
var IF_LASTOP_DIST_LESS
var IF_LASTOP_DIST_LESS_ALONG_PATH
var IF_TARGET_DIST_LESS
var IF_TARGET_DIST_LESS_ALONG_PATH
var IF_TARGET_DIST_GREATER
var IF_TARGET_IN_RANGE
var IF_TARGET_OUT_OF_RANGE
var IF_TARGET_TO_REFPOINT_DIST_LESS
var IF_TARGET_TO_REFPOINT_DIST_GREATER
var IF_TARGET_MOVED_SINCE_START
var IF_TARGET_MOVED
var IF_TARGET_LOST_TIME_MORE
var IF_TARGET_LOST_TIME_LESS
var IF_COVER_COMPROMISED
var IF_COVER_NOT_COMPROMISED
var IF_COVER_SOFT
var IF_COVER_NOT_SOFT
var IF_CAN_SHOOT_TARGET_CROUCHED
var IF_COVER_FIRE_ENABLED
var IF_RANDOM
var IF_LASTOP_FAILED
var IF_LASTOP_SUCCEED
var NOT
var AIFAF_VISIBLE_FROM_REQUESTER
var AIFAF_INCLUDE_DEVALUED
var AIFAF_INCLUDE_DISABLED
var AIPATH_DEFAULT
var AIPATH_HUMAN
var AIPATH_HUMAN_COVER
var AIPATH_CAR
var AIPATH_TANK
var AIPATH_BOAT
var AIPATH_HELI
var AIPATH_3D
var AIPATH_SCOUT
var AIPATH_TROOPER
var AIPATH_HUNTER
var AITRACKPAT_CHOOSE_ALWAYS
var AITRACKPAT_CHOOSE_LESS_DEFORMED
var AITRACKPAT_CHOOSE_RANDOM
var AITRACKPAT_CHOOSE_MOST_EXPOSED
var AITRACKPAT_NODE_START
var AITRACKPAT_NODE_ABSOLUTE
var AITRACKPAT_NODE_SIGNAL
var AITRACKPAT_NODE_STOP
var AITRACKPAT_NODE_DIRBRANCH
var AITRACKPAT_VALIDATE_NONE
var AITRACKPAT_VALIDATE_SWEPTSPHERE
var AITRACKPAT_VALIDATE_RAYCAST
var AITRACKPAT_ALIGN_ORIENT_TO_TARGET
var AITRACKPAT_ALIGN_LEVEL_TO_TARGET
var AITRACKPAT_ALIGN_TARGET_DIR
var AITRACKPAT_ALIGN_RANDOM
var PFB_NONE
var PFB_ATT_TARGET
var PFB_REF_POINT
var PFB_BEACON
var PFB_DEAD_BODIES
var PFB_EXPLOSIVES
var PFB_PLAYER
var PFB_BETWEEN_NAV_TARGET
var COVER_UNHIDE
var COVER_HIDE
var AIPROX_SIGNAL_ON_OBJ_DISABLE
var AIPROX_VISIBLE_TARGET_ONLY
var AIANIM_SIGNAL
var AIANIM_ACTION
var WAIT_ALL
var WAIT_ANY
var WAIT_ANY_2
var SOUND_INTERESTING
var SOUND_THREATENING
var AI_JUMP_CHECK_COLLISION
var AI_JUMP_ON_GROUND
var AI_JUMP_RELATIVE
var AI_JUMP_MOVING_TARGET
var JUMP_ANIM_FLY
var JUMP_ANIM_LAND

Console

See Console/AI

Problems with this wiki page? Contact us either by: Support Email or Support Ticket System

Blue Mars Guidebook Privacy Policy
Blue Mars Guidebook Community Guidelines

Personal tools