agents: Difference between revisions

From Bohemia Interactive Community
Jump to navigation Jump to search
m (Some wiki formatting)
 
(68 intermediate revisions by 9 users not shown)
Line 1: Line 1:
{{Command|= Comments
{{RV|type=command
____________________________________________________________________________________________


| arma2 |= Game name
|game1= arma2
|version1= 1.00


|1.00|= Game version
|game2= arma2oa
____________________________________________________________________________________________
|version2= 1.50


| Return a list of agents in the current mission. |= Description
|game3= tkoh
____________________________________________________________________________________________
|version3= 1.00


| '''agents''' |= Syntax
|game4= arma3
|version4= 0.50


|p1= |= PARAMETER1
|gr1= Teams


|p2= |= PARAMETER2
|gr2= Object Detection


|p3= |= PARAMETER3
|descr= Return a list of agents in the current mission.


| [[Array]] |= RETURNVALUE
|s1= [[agents]]  


|r1= [[Array]] of [[Team Member]]s


|x1= <code>{_x doWatch player} forEach agents;</code>|= EXAMPLE1
|x1= <sqf>{ agent _x moveTo position player } forEach agents;</sqf>


____________________________________________________________________________________________
|seealso= [[teams]] [[agent]] [[createAgent]] [[isAgent]] [[forEachMemberAgent]] [[entities]] [[allCurators]] [[allGroups]] [[allDead]] [[playableUnits]] [[switchableUnits]] [[vehicles]] [[allUnitsUAV]] [[allDeadMen]]
}}


| [[agent]], [[createAgent]], [[isAgent]], [[forEachMemberAgent]] |= SEEALSO
{{Note
|user= Rocket
|timestamp= 20120404104800
|text= Note that agents returns a reference to the agent itself, not the object. For example: <sqf>{ alive _x } count agents;</sqf> would return an error
But you can assign the agent a reference using [[setVariable]], and then reference it, for example: <sqf>{ alive (_x getVariable ["agentObject", objNull]) } count agents;</sqf> would return the number of agents still alive - BUT you would need to define "agentObject" after you create the agent, for example:
<sqf>_agent = createAgent [_type, _position, [], _radius, "NONE"];_agent setVariable["agentObject",_agent,true];</sqf>
}}


| |= MPBEHAVIOUR
{{Note
____________________________________________________________________________________________
|user= Killzone_Kid
|timestamp= 20130801215500
|text= Alternatively, to get object from agent reference use [[agent]] command.
}}
}}


<h3 style='display:none'>Notes</h3>
{{Note
<dl class='command_description'>
|user= PierreMGI
<!-- Note Section BEGIN -->
|timestamp= 20200526141000
<dd class="notedate">Posted on April 4, 2012 - 10:48 (GMT)
|text= In debug console, pointing at an agent:
<dt class="note">'''[[User:Rocket|Rocket]]'''
<sqf>
<dd class="note">Note that agents returns a reference to the agent itself, not the object. For example: '''{alive _x} count agents;''' would return an error. But you can assign the agent a reference using setVariable, and then reference it, for example: '''{alive (_x getVariable ["agentObject",objNull]) count agents;''' would return the number of agents still alive - BUT you would need to define "agentObject" after you create the agent, for example:
cursorObject; // seems to refer to an agent (ex.: Agent 0xcbce41c0), but it is an object
'''_agent = createAgent [_type, _position, [], _radius, "NONE"];_agent setVariable["agentObject",_agent,true];'''
teamMember cursorObject; // returns the same value Agent 0xcbce41c0, but now it is the agent
<!-- Note Section END -->
cursorObject in agents; // will return false (even if you can read the value Agent 0xcbce41c0 in the agents array)
</dl>
teamMember cursorObject in agents; // returns true. TeamMember allows to refer to the agent under the cursorObject
 
agent teamMember cursorObject isEqualTo cursorObject; // true, same object.
<h3 style='display:none'>Bottom Section</h3>
</sqf>
[[Category:ArmA 2: New Scripting Commands List|{{uc:{{PAGENAME}}}}]]
}}
[[Category:Scripting Commands ArmA2|{{uc:{{PAGENAME}}}}]]
[[Category:Scripting Commands Arma 3|{{uc:{{PAGENAME}}}}]]
[[Category:Scripting_Commands_Take_On_Helicopters|{{uc:{{PAGENAME}}}}]]
[[Category:Scripting Commands|{{uc:{{PAGENAME}}}}]]

Latest revision as of 22:48, 13 May 2023

Hover & click on the images for description

Description

Description:
Return a list of agents in the current mission.
Groups:
TeamsObject Detection

Syntax

Syntax:
agents
Return Value:
Array of Team Members

Examples

Example 1:

Additional Information

See also:
teams agent createAgent isAgent forEachMemberAgent entities allCurators allGroups allDead playableUnits switchableUnits vehicles allUnitsUAV allDeadMen

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
Rocket - c
Posted on Apr 04, 2012 - 10:48 (UTC)
Note that agents returns a reference to the agent itself, not the object. For example:
{ alive _x } count agents;
would return an error But you can assign the agent a reference using setVariable, and then reference it, for example:
{ alive (_x getVariable ["agentObject", objNull]) } count agents;
would return the number of agents still alive - BUT you would need to define "agentObject" after you create the agent, for example:
_agent = createAgent [_type, _position, [], _radius, "NONE"];_agent setVariable["agentObject",_agent,true];
Killzone_Kid - c
Posted on Aug 01, 2013 - 21:55 (UTC)
Alternatively, to get object from agent reference use agent command.
PierreMGI - c
Posted on May 26, 2020 - 14:10 (UTC)
In debug console, pointing at an agent:
cursorObject; // seems to refer to an agent (ex.: Agent 0xcbce41c0), but it is an object teamMember cursorObject; // returns the same value Agent 0xcbce41c0, but now it is the agent cursorObject in agents; // will return false (even if you can read the value Agent 0xcbce41c0 in the agents array) teamMember cursorObject in agents; // returns true. TeamMember allows to refer to the agent under the cursorObject agent teamMember cursorObject isEqualTo cursorObject; // true, same object.