remoteControl: Difference between revisions

From Bohemia Interactive Community
Jump to navigation Jump to search
m (Text replacement - "{{Command " to "{{RV|type=command ")
m (Text replacement - "\{\{ *codecomment *\| *\/\/ *([^ ]+) *\}\} " to "{{cc|$1}}")
Line 57: Line 57:
{
{
[[player]] [[remoteControl]] bob;
[[player]] [[remoteControl]] bob;
[[systemChat]] [[str]] (bob [[call]] SQF_fnc_remoteControlledBy); {{codecomment|// B Alpha 1-1:1 (KK)}}
[[systemChat]] [[str]] (bob [[call]] SQF_fnc_remoteControlledBy); {{cc| B Alpha 1-1:1 (KK)}} [[objNull]] [[remoteControl]] bob;
[[objNull]] [[remoteControl]] bob;
[[systemChat]] [[str]] (bob [[call]] SQF_fnc_remoteControlledBy); {{cc| <NULL-object>}}};</code>
[[systemChat]] [[str]] (bob [[call]] SQF_fnc_remoteControlledBy); {{codecomment|// <NULL-object>}}
};</code>


| [[switchCamera]], [[selectPlayer]], [[UAVControl]]
| [[switchCamera]], [[selectPlayer]], [[UAVControl]]

Revision as of 16:25, 29 January 2021

Hover & click on the images for description

Description

Description:
Description needed
Groups:
Remote Control

Syntax

Syntax:
Syntax needed
Parameters:
who: Object - controlling unit
whom: Object - controlled unit
Return Value:
Return value needed

Examples

Example 1:
Set player remote control of driver: player remoteControl driver UAV; driver UAV switchCamera "Internal"; // switchCamera required // sometimes switchCamera is not needed player remoteControl driver UAV;
Example 2:
Return control to player: objNull remoteControl driver UAV;
Example 3:
A dirty hack to return controlling unit because of the absence of dedicated getter: SQF_fnc_remoteControlledBy = { params ["_obj"]; if (!isNull objectParent _obj) exitWith { UAVControl _obj select 0 }; private _res = [objNull]; isNil { private _pos = getPosWorld _obj; private _dirUp = [vectorDirVisual _obj, vectorUpVisual _obj]; private _anim = animationState _obj; private _dummy = "PaperCar" createVehicleLocal [0,0,0]; _obj moveInAny _dummy; _res = uavControl _dummy; _obj setPosWorld _pos; _obj setVectorDirAndUp _dirUp; _obj switchMove _anim; deleteVehicle _dummy; }; _res select 0 }; Usage (could be scheduled or unscheduled): [] spawn { player remoteControl bob; systemChat str (bob call SQF_fnc_remoteControlledBy); // B Alpha 1-1:1 (KK) objNull remoteControl bob; systemChat str (bob call SQF_fnc_remoteControlledBy); // <NULL-object>};

Additional Information

See also:
See also needed

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
TeRp
You must use switchCamera in order to remote control a unit.
You can only remoteControl characters, e.g. if yo want to remote control a car, you have to add a driver and use "player remoteControl driver someVehicle".
Posted on Jan 25, 2010 - 14:35 (CEST)
Lou Montana
Arma 2 v1.05:
  • You can remoteControl multiple units at the same time.
  • It is not needed to switchCamera to the unit to be able to control it - it is needed to be able to fire with.
  • The switchCamera is fixed : the player can't change internal/external/optics view.
  • Do not think about it like a selectPlayer: it is used to give the control to the vehicle role the unit is in.
  • switchCamera to the vehicle the unit is in; the camera will go depending the role you are remoteControlling.
  • The AI driver won't follow your vehicle move orders.
  • If the player dies, the death screen will appear, not automatically turning back to the player.
  • If you want to stop the remote control, use objNull as remote controller.
  • Example:
player remoteControl driver jeep1; // will remoteControl it, you still will have full control of the player jeep1 switchCamera "internal"; // fix the camera to the vehicle and not to (driver jeep1) ! waitUntil { !(alive jeep1) || !(alive player) }; objNull remoteControl driver jeep1; // removes the remoteControlling player switchCamera "internal"; // returns to the player
Posted on September 17, 2020 - 03:01 (UTC)
thedawnofallwars
Far and away the easiest way to check the unit remote controlling an AI is using bis_fnc_moduleRemoteControl_owner This will return the unit in question which you can then run name on to find the controller's name. _who = _unit getVariable ["bis_fnc_moduleRemoteControl_owner", objNull]; if(!isNull _who) then { _name = name _who; };