createAgent: Difference between revisions

From Bohemia Interactive Community
Jump to navigation Jump to search
No edit summary
("agents" aren't documented on the biki so I figure this is a good place to start; can't for the life of me figure out why one would use BIS_fnc_execFSM over execFSM, but added both as See Alsos anyway)
Line 7: Line 7:
____________________________________________________________________________________________
____________________________________________________________________________________________


| Creates an (independent) agent (person) of the given type (type is a name of a subclass of CfgVehicles). If the markers array contains several marker names, the position of a random one is used, otherwise, the given position is used. The unit is placed inside a circle with this position as its center and placement as its radius.
| Creates an (independent) agent (person) of the given type (type is a name of a subclass of CfgVehicles). An agent does not have the standard soldier [[FSM]] associated with it -- for instance, an enemy soldier spawned as an agent has limited AI and will stand stupidly when fired upon -- which can be useful to limit the amount of AI processing being done in a mission with very large numbers of "AI". If the markers array contains several marker names, the position of a random one is used, otherwise, the given position is used. The unit is placed inside a circle with this position as its center and placement as its radius.


Players assigned to an agent using [[setPlayable]] will be able to control the agent, operate weapons and other actions, but will not be able to access their inventory using the gear screen.
Players assigned to an agent using [[setPlayable]] will be able to control the agent, operate weapons and other actions, but will not be able to access their inventory using the gear screen.
Line 29: Line 29:
____________________________________________________________________________________________
____________________________________________________________________________________________


| [[agent]], [[agents]], [[isAgent]], [[forEachMemberAgent]] |= See also
| [[agent]], [[agents]], [[isAgent]], [[forEachMemberAgent]], [[execFSM]], [[BIS_fnc_execFSM]] |= See also


}}
}}

Revision as of 22:14, 14 March 2016

Hover & click on the images for description

Description

Description:
Creates an (independent) agent (person) of the given type (type is a name of a subclass of CfgVehicles). An agent does not have the standard soldier FSM associated with it -- for instance, an enemy soldier spawned as an agent has limited AI and will stand stupidly when fired upon -- which can be useful to limit the amount of AI processing being done in a mission with very large numbers of "AI". If the markers array contains several marker names, the position of a random one is used, otherwise, the given position is used. The unit is placed inside a circle with this position as its center and placement as its radius. Players assigned to an agent using setPlayable will be able to control the agent, operate weapons and other actions, but will not be able to access their inventory using the gear screen. Special properties can be: "NONE" and "FORM".
Groups:
Uncategorised

Syntax

Syntax:
Object = createAgent [type, position, markers, placement, special]
Parameters:
[type, position, markers, placement, special]: Array
type: String from CfgVehicles
position: Array (Position format)
markers: Array
placement: Number radius
special: String "None", or "Form"
Return Value:
Object

Examples

Example 1:
agent = createAgent ["SoldierWB", position player, [], 0, "FORM"];

Additional Information

See also:
agentagentsisAgentforEachMemberAgentexecFSMBIS_fnc_execFSM

Notes

Report bugs on the Feedback Tracker and/or discuss them on the Arma Discord or on the Forums.
Only post proven facts here! Add Note

Notes

Bottom Section

Posted on September 29, 2014 - 20:03 (UTC)
Killzone Kid
In Arma 3, default FSM is calling BIS_fnc_animalBehaviour script upon agent creation, which takes on some animal behavioural logic. The problem here is that it is almost impossible to make animal do what is told. Until now. Since Arma 3 v1.31.127383 you can set BIS_fnc_animalBehaviour_disable variable on the agent at the moment of agent creation, to override the function. tr = createTrigger ["EmptyDetector", player modelToWorld [0, 10, 0]]; tr setTriggerArea [5, 5, 0, true]; tr setTriggerActivation ["CIV", "PRESENT", true]; rabbits = []; private "_r"; for "_i" from 1 to 10 do { _r = createAgent ["Rabbit_F", position tr, [], 0, "NONE"]; _r setVariable ["BIS_fnc_animalBehaviour_disable", true]; rabbits pushBack _r; }; tr setTriggerStatements [ "if (rabbits isEqualTo thisList) exitWith { _r = thisList select floor random count thisList; _r moveTo (_r modelToWorld [2.5 - random 5, 2.5 - random 5, 0]); }; _esc = rabbits - thisList; doStop _esc; {_x moveTo position thisTrigger} forEach _esc; systemChat str [time, _esc]; false", "", "" ];
Posted on April 18, 2015 - 07:17 (UTC)
Waffle SS.
Agents seem to use the same collision model that the player uses, unlike normal AI. Normal AI don't collide with objects, but agents are physically stopped by obstacles the same way players are. This also probably means agents cost more resources than normal AI.