agents: Difference between revisions

From Bohemia Interactive Community
Jump to navigation Jump to search
m (Text replacement - "<dt class="note">([^<>]+) " to "<dt class="note">$1</dt> ")
m (Some wiki formatting)
 
(34 intermediate revisions by 2 users not shown)
Line 1: Line 1:
<br>
{{RV|type=command
{{RV|type=command


| arma2
|game1= arma2
|version1= 1.00


|1.00
|game2= arma2oa
|version2= 1.50
 
|game3= tkoh
|version3= 1.00
 
|game4= arma3
|version4= 0.50


|gr1= Teams
|gr1= Teams
Line 10: Line 17:
|gr2= Object Detection
|gr2= Object Detection


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


| '''agents'''
|s1= [[agents]]


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


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


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


| [[Array]] of [[Team Member|Team Members]]
{{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>
}}


|x1= <code>{[[agent]] _x [[moveTo]] [[position]] [[player]]} [[forEach]] '''agents''';</code>
{{Note
|user= Killzone_Kid
|timestamp= 20130801215500
|text= Alternatively, to get object from agent reference use [[agent]] command.
}}


| [[agent]], [[createAgent]], [[isAgent]], [[forEachMemberAgent]], [[entities]], [[allCurators]], [[allGroups]], [[allDead]], [[playableUnits]], [[switchableUnits]], [[vehicles]], [[allUnitsUAV]], [[allDeadMen]]
{{Note
|user= PierreMGI
|timestamp= 20200526141000
|text= In debug console, pointing at an agent:
<sqf>
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.
</sqf>
}}
}}
<dl class='command_description'>
<!-- Note Section BEGIN -->
<dd class="notedate">Posted on April 4, 2012 - 10:48 (GMT)</dd>
<dt class="note">[[User:Rocket|Rocket]]</dt>
<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:
'''_agent = createAgent [_type, _position, [], _radius, "NONE"];_agent setVariable["agentObject",_agent,true];'''
<dd class="notedate">Posted on August 1, 2013 - 21:55 (GMT)</dd>
<dt class="note">[[User:Killzone_Kid|Killzone_Kid]]</dt>
<dd class="note">Alternatively, to get object from agent reference use [[agent]] command.
<dd class="notedate">Posted on May 26, 2020 - 14:10 (GMT)</dd>
<dt class="note">[[User:PierreMGI|PierreMGI]]</dt>
<dd class="note">In debug console, pointing at an agent:<br>
{| class="wikitable"
|-
| ''[[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]]'' || // so, 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.
|}
<br>
<!-- Note Section END -->
</dl>
{{GameCategory|arma2|Scripting Commands}}
{{GameCategory|arma3|Scripting Commands}}
{{GameCategory|tkoh|Scripting Commands}}
[[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.