remoteControl: Difference between revisions
Jump to navigation
Jump to search
Lou Montana (talk | contribs) |
Lou Montana (talk | contribs) m (Some wiki formatting) |
||
Line 32: | Line 32: | ||
|x1= Set player remote control of driver: | |x1= Set player remote control of driver: | ||
< | <sqf> | ||
player remoteControl driver UAV; | |||
driver UAV switchCamera "Internal"; // switchCamera required | |||
// sometimes switchCamera is not needed | |||
</ | player remoteControl driver UAV; | ||
</sqf> | |||
|x2= Return control to player: < | |x2= Return control to player: <sqf>objNull remoteControl driver UAV;</sqf> | ||
|x3= A dirty hack to return controlling unit because of the absence of dedicated getter: | |x3= A dirty hack to return controlling unit because of the absence of dedicated getter: | ||
< | <sqf> | ||
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 | _obj moveInAny _dummy; | ||
_res = | _res = uavControl _dummy; | ||
_obj | _obj setPosWorld _pos; | ||
_obj | _obj setVectorDirAndUp _dirUp; | ||
_obj | _obj switchMove _anim; | ||
deleteVehicle _dummy; | |||
}; | }; | ||
_res | _res select 0 | ||
};</ | }; | ||
</sqf> | |||
Usage (could be scheduled or unscheduled): | Usage (could be scheduled or unscheduled): | ||
< | <sqf> | ||
[] 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> | |||
};</ | }; | ||
</sqf> | |||
|seealso= [[switchCamera]] [[selectPlayer]] [[UAVControl]] | |seealso= [[switchCamera]] [[selectPlayer]] [[UAVControl]] | ||
Line 78: | Line 83: | ||
|text= You must use [[switchCamera]] in order to remote control a unit.<br> | |text= You must use [[switchCamera]] in order to remote control a unit.<br> | ||
You can only [[remoteControl]] characters, e.g. if yo want to remote control a car, you have to add a driver and use | You can only [[remoteControl]] characters, e.g. if yo want to remote control a car, you have to add a driver and use | ||
< | <sqf>player remoteControl driver someVehicle</sqf> | ||
}} | }} | ||
Line 94: | Line 99: | ||
* If you want to stop the remote control, use objNull as remote controller. | * If you want to stop the remote control, use objNull as remote controller. | ||
* Example: | * Example: | ||
< | <sqf> | ||
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 | |||
</sqf> | |||
|game= arma2 | |game= arma2 | ||
|version= 1.05 | |version= 1.05 | ||
Line 109: | Line 116: | ||
This will return the unit in question which you can then run name on to find the controller's name. | This will return the unit in question which you can then run name on to find the controller's name. | ||
< | <sqf> | ||
_who = _unit | private _name = "-"; | ||
_who = _unit getVariable ["BIS_fnc_moduleRemoteControl_owner", objNull]; | |||
if (!isNull _who) then | |||
{ | { | ||
_name = | _name = name _who; | ||
};</ | }; | ||
</sqf> | |||
}} | }} |
Revision as of 01:56, 8 April 2022
Description
- Description:
- Switches on remote control of the unit. Command needs to be executed locally to the player. If driver is remote it will get transferred to players PC.
- Groups:
- Remote Control
Syntax
- Syntax:
- who remoteControl whom
- Parameters:
- who: Object - controlling unit
- whom: Object - controlled unit
- Return Value:
- Nothing
Examples
- Example 1:
- Set player remote control of driver:
- Example 2:
- Return control to player:
- Example 3:
- A dirty hack to return controlling unit because of the absence of dedicated getter:
Usage (could be scheduled or unscheduled):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 };[] 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:
- switchCamera selectPlayer UAVControl
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
- Posted on Jun 04, 2009 - 18:55 (UTC)
-
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
- Posted on Jan 25, 2010 - 14:35 (UTC)
-
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 Sep 17, 2020 - 03:01 (UTC)
- 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.