DayZ Scripts
v1.21.156300 ยท Jun 20, 2023
 
Loading...
Searching...
No Matches
AITargetCallbacksPlayer.c
Go to the documentation of this file.
2{
4 {
5 m_Player = pPlayer;
6
7 m_iHeadBoneIndex = m_Player.GetBoneIndexByName("Head");
8 m_iChestBoneIndex = m_Player.GetBoneIndexByName("Spine3");
9 }
10
12 {
13 if( m_iHeadBoneIndex != -1 )
14 return m_Player.GetBonePositionWS(m_iHeadBoneIndex);
15 else
16 return m_Player.GetPosition() + "0 1.7 0";
17 }
18
20 {
21 DayZInfected infected = DayZInfected.Cast(pApplicant);
22 if( infected )
23 {
24 DayZInfectedInputController ic = infected.GetInputController();
25 if( ic )
26 {
27 int mindState = ic.GetMindState();
28 if( mindState >= DayZInfectedConstants.MINDSTATE_ALERTED )
29 {
30 return GetHeadPositionWS();
31 }
32 else
33 {
34 if( m_iChestBoneIndex != -1 )
35 return m_Player.GetBonePositionWS(m_iChestBoneIndex);
36 }
37 }
38 }
39
40 return m_Player.GetPosition() + "0 1 0";
41 }
42
43 override float GetMaxVisionRangeModifier(EntityAI pApplicant)
44 {
46 m_Player.GetMovementState(state);
47
48 float mod = 1.0;
49 float speedCoef = PlayerConstants.AI_VISIBILITY_RUN;
50 float stanceCoef = PlayerConstants.AI_VISIBILITY_STANDING;
51 float playerVisCoef = 1.0; //Use disabled since 1.12
52
55 {
56 case DayZPlayerConstants.MOVEMENTIDX_WALK:
58 break;
59
60 case DayZPlayerConstants.MOVEMENTIDX_IDLE:
62 break;
63 }
64
66 switch(state.m_iStanceIdx)
67 {
68 case DayZPlayerConstants.STANCEIDX_CROUCH:
69 case DayZPlayerConstants.STANCEIDX_RAISEDCROUCH:
71 break;
72
73 case DayZPlayerConstants.STANCEIDX_PRONE:
74 case DayZPlayerConstants.STANCEIDX_RAISEDPRONE:
76 break;
77 }
78
80 //playerVisCoef = m_Player.GetVisibilityCoef();
81
83 mod = (speedCoef + stanceCoef /*+ playerVisCoef*/) / 2;
84
85 return mod;
86 }
87
91 {
92 int movementSpeed = 0;
93
94 switch (pState.m_iStanceIdx)
95 {
96 case DayZPlayerConstants.STANCEIDX_CROUCH:
97 switch (pState.m_iMovement)
98 {
99 case DayZPlayerConstants.MOVEMENTIDX_IDLE:
100 movementSpeed = DayZPlayerConstants.MOVEMENTIDX_IDLE;
101 break;
102 case DayZPlayerConstants.MOVEMENTIDX_WALK:
103 case DayZPlayerConstants.MOVEMENTIDX_RUN:
104 movementSpeed = DayZPlayerConstants.MOVEMENTIDX_WALK;
105 break;
106 case DayZPlayerConstants.MOVEMENTIDX_SPRINT:
107 movementSpeed = DayZPlayerConstants.MOVEMENTIDX_CROUCH_RUN;
108 break;
109 }
110 break;
111 case DayZPlayerConstants.STANCEIDX_PRONE:
112 switch (pState.m_iMovement)
113 {
114 case DayZPlayerConstants.MOVEMENTIDX_IDLE:
115 movementSpeed = DayZPlayerConstants.MOVEMENTIDX_IDLE;
116 break;
117 default:
118 movementSpeed = DayZPlayerConstants.MOVEMENTIDX_WALK;
119 break;
120 }
121 break;
122 default:
123 movementSpeed = pState.m_iMovement;
124 }
125
126 //Print("MovementState: " + movementSpeed);
127
128 return movementSpeed;
129 }
130
132 private int m_iHeadBoneIndex;
133 private int m_iChestBoneIndex;
134};
DayZInfectedConstants
Definition DayZInfected.c:2
static int StanceToMovementIdxTranslation(HumanMovementState pState)
void AITargetCallbacksPlayer(PlayerBase pPlayer)
override vector GetVisionPointPositionWS(EntityAI pApplicant)
override float GetMaxVisionRangeModifier(EntityAI pApplicant)
proto native int GetMindState()
int m_iStanceIdx
current command's id
Definition human.c:1117
int m_iMovement
current stance (DayZPlayerConstants.STANCEIDX_ERECT, ...), only if the command has a stance
Definition human.c:1118
static const float AI_VISIBILITY_CROUCH
static const float AI_VISIBILITY_STANDING
static const float AI_VISIBILITY_RUN
static const float AI_VISIBILITY_PRONE
static const float AI_VISIBILITY_IDLE
static const float AI_VISIBILITY_WALK
DayZPlayerConstants
defined in C++
Definition dayzplayer.c:602