DayZ 1.27
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено
DayZPlayerCamera1stPerson.c
См. документацию.
1// *************************************************************************************
2// ! DayZPlayerCamera1stPerson - 1st person camera
3// *************************************************************************************
5{
6 static const float CONST_UD_MIN = -85.0;
7 static const float CONST_UD_MAX = 85.0;
8
9 static const float CONST_LR_MIN = -160.0;
10 static const float CONST_LR_MAX = 160.0;
11
12
14 {
15 m_iBoneIndex = pPlayer.GetBoneIndexByName("Head");
16 if (m_iBoneIndex == -1)
17 {
18 Print("DayZPlayerCamera1stPerson: main bone not found");
19 }
20
21 m_OffsetLS = "0.04 0.04 0"; //x - up, y - forward
22 }
23
24
25 //
26 override void OnActivate(DayZPlayerCamera pPrevCamera, DayZPlayerCameraResult pPrevCameraResult)
27 {
28 super.OnActivate(pPrevCamera, pPrevCameraResult);
29
30 if (pPrevCamera)
31 {
32 vector baseAngles = pPrevCamera.GetBaseAngles();
33 m_fUpDownAngle = baseAngles[0];
34 m_fLeftRightAngle = baseAngles[1];
35
36 vector addAngles = pPrevCamera.GetAdditiveAngles();
37 m_fUpDownAngleAdd = addAngles[0];
38 m_fLeftRightAngleAdd = addAngles[1];
39 }
40 }
41
42 //
43 override void OnUpdate(float pDt, out DayZPlayerCameraResult pOutResult)
44 {
48
50 Math3D.YawPitchRollMatrix(GetCurrentOrientation(), pOutResult.m_CameraTM);
51 pOutResult.m_CameraTM[3] = m_OffsetLS;
52
53 pOutResult.m_iDirectBone = m_iBoneIndex;
54 pOutResult.m_iDirectBoneMode = 1;
55 pOutResult.m_fUseHeading = 1.0;
56 pOutResult.m_fInsideCamera = 1.0;
57
58 pOutResult.m_fNearPlane = 0.04; //0.07 default
59
61
63 StdFovUpdate(pDt, pOutResult);
65 }
66
68 {
69 vector a;
70 a[0] = m_fUpDownAngle;
71 a[1] = m_fLeftRightAngle;
72 a[2] = 0;
73 return a;
74 }
75
77 {
78 vector a;
79 a[0] = m_fUpDownAngleAdd;
81 a[2] = 0;
82 return a;
83 }
84
85 override string GetCameraName()
86 {
87 return "DayZPlayerCamera1stPerson";
88 }
89
90 protected int m_iBoneIndex;
91 protected vector m_OffsetLS;
92
93 protected float m_fUpDownAngle;
94 protected float m_fUpDownAngleAdd;
95 protected float m_fLeftRightAngle;
96 protected float m_fLeftRightAngleAdd;
97}
98
99// *************************************************************************************
100// ! DayZPlayerCamera1stPersonUnconscious - first person only unconscious
101// *************************************************************************************
103{
106 m_iBoneIndex = pPlayer.GetBoneIndexByName ("Head");
107 }
109 override void OnUpdate(float pDt, out DayZPlayerCameraResult pOutResult)
110 {
111 super.OnUpdate(pDt, pOutResult);
113 pOutResult.m_iDirectBone = m_iBoneIndex;
114 pOutResult.m_iDirectBoneMode = 4;
115 pOutResult.m_fUseHeading = 0.0;
116
117 vector rot;
118 rot[0] = 0;
119 rot[1] = 90;
120 rot[2] = 0;
121
122 Math3D.YawPitchRollMatrix(rot, pOutResult.m_CameraTM);
123 }
124}
int m_iBoneIndex
main bone
Определения DayZPlayerCamera1stPerson.c:189
class DayZPlayerCamera1stPerson extends DayZPlayerCameraBase DayZPlayerCamera1stPersonUnconscious(DayZPlayer pPlayer, HumanInputController pInput)
Определения DayZPlayerCamera1stPerson.c:104
float UpdateLRAngleUnlocked(out float pAngle, out float pAngleAdd, float pMin, float pMax, float pDt)
Определения DayZPlayerCamera_Base.c:190
float m_CurrentCameraYaw
Определения DayZPlayerCamera_Base.c:578
float m_CurrentCameraPitch
Определения DayZPlayerCamera_Base.c:579
float UpdateUDAngleUnlocked(out float pAngle, out float pAngleAdd, float pMin, float pMax, float pDt)
Определения DayZPlayerCamera_Base.c:129
void StdFovUpdate(float pDt, out DayZPlayerCameraResult pOutResult)
Определения DayZPlayerCamera_Base.c:315
void InitCameraOnPlayer(bool force=false)
Определения DayZPlayerCamera_Base.c:561
void UpdateCameraNV(PlayerBase player)
Определения DayZPlayerCamera_Base.c:421
void ProcessCameraShake(float delta, out float leftRight, out float upDown)
Определения DayZPlayerCamera_Base.c:108
float m_fLeftRightAngleAdd
left right angle in rad (in freelook only)
Определения DayZPlayerCamera1stPerson.c:96
override vector GetAdditiveAngles()
Определения DayZPlayerCamera1stPerson.c:76
override vector GetBaseAngles()
Определения DayZPlayerCamera1stPerson.c:67
override void OnActivate(DayZPlayerCamera pPrevCamera, DayZPlayerCameraResult pPrevCameraResult)
Определения DayZPlayerCamera1stPerson.c:26
override string GetCameraName()
Определения DayZPlayerCamera1stPerson.c:85
void DayZPlayerCamera1stPerson(DayZPlayer pPlayer, HumanInputController pInput)
Определения DayZPlayerCamera1stPerson.c:13
int m_iBoneIndex
main bone
Определения DayZPlayerCamera1stPerson.c:90
static const float CONST_LR_MIN
down limit
Определения DayZPlayerCamera1stPerson.c:9
static const float CONST_UD_MAX
up limit
Определения DayZPlayerCamera1stPerson.c:7
static const float CONST_UD_MIN
down limit
Определения DayZPlayerCamera1stPerson.c:6
override void OnUpdate(float pDt, out DayZPlayerCameraResult pOutResult)
Определения DayZPlayerCamera1stPerson.c:43
float m_fUpDownAngleAdd
up down angle in rad
Определения DayZPlayerCamera1stPerson.c:94
float m_fLeftRightAngle
left right angle in rad (in freelook only)
Определения DayZPlayerCamera1stPerson.c:95
static const float CONST_LR_MAX
up limit
Определения DayZPlayerCamera1stPerson.c:10
float m_fUpDownAngle
up down angle in rad
Определения DayZPlayerCamera1stPerson.c:93
vector m_OffsetLS
position offset
Определения DayZPlayerCamera1stPerson.c:91
this is main camera class
Определения DayZPlayerCamera1stPerson.c:5
Определения human.c:18
Определения EnMath3D.c:28
Определения PlayerBaseClient.c:2
Определения EnConvert.c:106
DayZPlayer m_pPlayer
data
Определения dayzplayer.c:135
class DayZPlayerCameraResult DayZPlayerCamera(DayZPlayer pPlayer, HumanInputController pInput)
Определения dayzplayer.c:56
vector GetCurrentOrientation()
Определения dayzplayer.c:112
proto void Print(void var)
Prints content of variable to console/log.
static proto void YawPitchRollMatrix(vector ang, out vector mat[3])
Creates rotation matrix from angles.
proto native void OnUpdate()
Определения tools.c:349