remoteControl: Difference between revisions
Jump to navigation
Jump to search
Lou Montana (talk | contribs) m (Text replacement - "{{Command " to "{{RV|type=command ") |
Lou Montana (talk | contribs) m (Text replacement - "\{\{ *codecomment *\| *\/\/ *([^ ]+) *\}\} " to "{{cc|$1}}") |
||
Line 57: | Line 57: | ||
{ | { | ||
[[player]] [[remoteControl]] bob; | [[player]] [[remoteControl]] bob; | ||
[[systemChat]] [[str]] (bob [[call]] SQF_fnc_remoteControlledBy); {{ | [[systemChat]] [[str]] (bob [[call]] SQF_fnc_remoteControlledBy); {{cc| B Alpha 1-1:1 (KK)}} [[objNull]] [[remoteControl]] bob; | ||
[[systemChat]] [[str]] (bob [[call]] SQF_fnc_remoteControlledBy); {{cc| <NULL-object>}}};</code> | |||
[[systemChat]] [[str]] (bob [[call]] SQF_fnc_remoteControlledBy); {{ | |||
};</code> | |||
| [[switchCamera]], [[selectPlayer]], [[UAVControl]] | | [[switchCamera]], [[selectPlayer]], [[UAVControl]] |
Revision as of 16:25, 29 January 2021
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; };