BIS fnc setPitchBank: Difference between revisions
Jump to navigation
Jump to search
Lou Montana (talk | contribs) m (Text replacement - "\| *((\[\[[a-zA-Z0-9_ :\\\-\/|()]+\]\],? ?)+) * \}\}" to "|seealso= $1 }}") |
Lou Montana (talk | contribs) m (Text replacement - "<!-- Note Section [A-Z]+ --> " to "") |
||
Line 29: | Line 29: | ||
<dl class="command_description"> | <dl class="command_description"> | ||
<dd class="notedate">Posted on Aug 4, 2014 – 13:35</dd> | <dd class="notedate">Posted on Aug 4, 2014 – 13:35</dd> | ||
<dt class="note">[[User:ffur2007slx2_5|ffur2007slx2_5]]<dd class="note"> | <dt class="note">[[User:ffur2007slx2_5|ffur2007slx2_5]]<dd class="note"> | ||
Line 74: | Line 73: | ||
}; | }; | ||
</code> | </code> | ||
</dl> | </dl> | ||
Revision as of 00:30, 6 April 2021
Description
- Description:
- Description needed
- Execution:
- call
- Groups:
- Object Manipulation
Syntax
- Syntax:
- Syntax needed
- Parameters:
- object: Object
- pitch: Number
- Number: Number
- Return Value:
- Return value needed
Examples
- Example 1:
[player, 45, -45] call BIS_fnc_setPitchBank;
Additional Information
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 Aug 4, 2014 – 13:35
- ffur2007slx2_5
-
(A3 1.24) attachTo limits BIS_fnc_setPitchBank, here’s an alternative function to break that limitation (code originated from bapedibupa):
_obj attachTo [_logic,[0,0,2]]; [_obj,[120,-78,37]] call fnc_SetPitchBankYaw; // pitch: 120, bank: -78, yaw: 37
fnc_SetPitchBankYaw = { private ["_object","_rotations","_aroundX","_aroundY","_aroundZ","_dirX","_dirY","_dirZ","_upX","_upY","_upZ","_dir","_up","_dirXTemp", "_upXTemp"]; _object = _this select 0; _rotations = _this select 1; _aroundX = _rotations select 0; _aroundY = _rotations select 1; _aroundZ = (360 - (_rotations select 2)) - 360; _dirX = 0; _dirY = 1; _dirZ = 0; _upX = 0; _upY = 0; _upZ = 1; if (_aroundX != 0) then { _dirY = cos _aroundX; _dirZ = sin _aroundX; _upY = -sin _aroundX; _upZ = cos _aroundX; }; if (_aroundY != 0) then { _dirX = _dirZ * sin _aroundY; _dirZ = _dirZ * cos _aroundY; _upX = _upZ * sin _aroundY; _upZ = _upZ * cos _aroundY; }; if (_aroundZ != 0) then { _dirXTemp = _dirX; _dirX = (_dirXTemp* cos _aroundZ) - (_dirY * sin _aroundZ); _dirY = (_dirY * cos _aroundZ) + (_dirXTemp * sin _aroundZ); _upXTemp = _upX; _upX = (_upXTemp * cos _aroundZ) - (_upY * sin _aroundZ); _upY = (_upY * cos _aroundZ) + (_upXTemp * sin _aroundZ); }; _dir = [_dirX,_dirY,_dirZ]; _up = [_upX,_upY,_upZ]; _object setVectorDirAndUp [_dir,_up]; };