DayZ Scripts
v1.21.156300 ยท Jun 20, 2023
 
Loading...
Searching...
No Matches
CCTCursorNoRuinCheck.c
Go to the documentation of this file.
2{
3 protected float m_MaximalActionDistanceSq;
4
5 //approximate head heights
6 const float HEIGHT_ERECT = 1.6;
7 const float HEIGHT_CROUCH = 1.05;
8 const float HEIGHT_PRONE = 0.66;
9
10 void CCTCursorNoRuinCheck( float maximal_target_distance = UAMaxDistances.DEFAULT )
11 {
12 m_MaximalActionDistanceSq = maximal_target_distance * maximal_target_distance;
13 }
14
15 override bool Can( PlayerBase player, ActionTarget target )
16 {
17 if( !target )
18 return false;
19
20 Object targetObject = target.GetObject();
21 if ( !player || !targetObject )
22 return false;
23
24 vector playerHeadPos;
25 MiscGameplayFunctions.GetHeadBonePos(player, playerHeadPos);
26
27 float distanceRoot = vector.DistanceSq(target.GetCursorHitPos(), player.GetPosition());
28 float distanceHead = vector.DistanceSq(target.GetCursorHitPos(), playerHeadPos);
29
30 return ( distanceRoot <= m_MaximalActionDistanceSq || distanceHead <= m_MaximalActionDistanceSq );
31 }
32};
class ActionTargets ActionTarget
protected float m_MaximalActionDistanceSq
void CCTCursorNoRuinCheck(float maximal_target_distance=UAMaxDistances.DEFAULT)
override bool Can(PlayerBase player, ActionTarget target)
const float DEFAULT
static proto native float DistanceSq(vector v1, vector v2)
Returns the square distance between tips of two 3D vectors.