Dayz 1.25
Dayz Code Explorer by KGB
Загрузка...
Поиск...
Не найдено
Класс RecoilBase
+ Граф наследования:RecoilBase:

Защищенные члены

void RecoilBase (Weapon_Base weapon)
 
void Init ()
 
Weapon_Base GetWeapon ()
 
void PostInit (Weapon_Base weapon)
 
void Destroy ()
 Destroys this object next update tick.
 
void Update (SDayZPlayerAimingModel pModel, out float axis_mouse_x, out float axis_mouse_y, out float axis_hands_x, out float axis_hands_y, float pDt)
 
void ApplyCamOffset (SDayZPlayerAimingModel pModel)
 
void ApplyHandsOffset (float pDt, out float pRecResultX, out float pRecResultY)
 
void ApplyMouseOffset (float pDt, out float pRecResultX, out float pRecResultY)
 
vector GetRecoilModifier (Weapon_Base weapon)
 
vector GetPositionOnCurve (array< vector > points, float time)
 

Защищенные данные

bool m_DeleteRequested
 
float m_Time
 
float m_ReloadTime
 
vector m_RecoilModifier
 
bool m_IsClient
 
float m_MouseOffsetRangeMin
 
float m_MouseOffsetRangeMax
 
float m_MouseOffsetRelativeTime = 1
 
float m_HandsOffsetRelativeTime = 1
 
float m_CamOffsetRelativeTime = 1
 
float m_CamOffsetDistance = 0.05
 
float m_MouseOffsetDistance
 
float m_TimeNormalized
 
vector m_MouseOffsetTarget
 
vector m_MouseOffsetTargetAccum
 
float m_Angle
 
ref array< vectorm_HandsCurvePoints
 

Закрытые данные

bool m_DebugMode
 
Weapon_Base m_Weapon
 
PlayerBase m_Player
 

Подробное описание

Конструктор(ы)

◆ RecoilBase()

void RecoilBase ( Weapon_Base weapon)
inlineprotected
30 {
32 //m_DebugMode = false;
33 m_DebugMode = GetDayZGame().IsAimLogEnabled();
34 m_Player = PlayerBase.Cast(weapon.GetHierarchyRootPlayer());
36 Init();
38 }
DayZGame GetDayZGame()
Definition DayZGame.c:3748
Definition EntityAI.c:95
Definition PlayerBaseClient.c:2
ref array< vector > m_HandsCurvePoints
Definition RecoilBase.c:27
void Init()
bool m_DebugMode
Definition RecoilBase.c:3
Weapon_Base m_Weapon
Definition RecoilBase.c:5
PlayerBase m_Player
Definition RecoilBase.c:6
void PostInit(Weapon_Base weapon)
Definition RecoilBase.c:47

Перекрестные ссылки GetDayZGame(), Init(), m_DebugMode, m_HandsCurvePoints, m_Player, m_Weapon и PostInit().

Методы

◆ ApplyCamOffset()

void ApplyCamOffset ( SDayZPlayerAimingModel pModel)
inlineprotected
107 {
109 float offset = 0;
111 if(time == 1)
112 {
113 offset = 0;
114 }
115 else
116 {
118 }
119
120 pModel.m_fCamPosOffsetZ = offset;
121
122 m_Player.GetCurrentCamera().SendRecoilOffsetZ(offset);
123 }
Input value between 0 and 1, returns value adjusted by easing, no automatic clamping of input(do your...
Definition Easing.c:3
static float EaseOutBack(float t, float magnitude=1.70158)
Definition Easing.c:173
Definition EnMath.c:7
float m_TimeNormalized
Definition RecoilBase.c:20
float m_CamOffsetRelativeTime
Definition RecoilBase.c:17
float m_CamOffsetDistance
Definition RecoilBase.c:18
static proto float Clamp(float value, float min, float max)
Clamps 'value' to 'min' if it is lower than 'min', or to 'max' if it is higher than 'max'.
static proto float InverseLerp(float a, float b, float value)
Calculates the linear value that produces the interpolant value within the range [a,...
static proto float Lerp(float a, float b, float time)
Linearly interpolates between 'a' and 'b' given 'time'.

Перекрестные ссылки Math::Clamp(), Easing::EaseOutBack(), Math::InverseLerp(), Math::Lerp(), m_CamOffsetDistance, m_CamOffsetRelativeTime, m_Player и m_TimeNormalized.

Используется в Update().

◆ ApplyHandsOffset()

void ApplyHandsOffset ( float pDt,
out float pRecResultX,
out float pRecResultY )
inlineprotected
126 {
129
130 /*if(m_DebugMode)
131 {
132 PrintString("pos_on_curve: " + pos_on_curve.ToString());
133 PrintString("normalized time: " + m_TimeNormalized.ToString());
134 PrintString("elapsed time: " + m_Time.ToString());
135 PrintString("curve pos x: " + pos_on_curve[0].ToString());
136 PrintString("curve pos y: " + pos_on_curve[1].ToString());
137 PrintString("relative_time: " + relative_time.ToString());
138 }*/
139
142 }
float m_HandsOffsetRelativeTime
Definition RecoilBase.c:16
vector GetPositionOnCurve(array< vector > points, float time)
Definition RecoilBase.c:202
Definition EnConvert.c:106

Перекрестные ссылки Math::Clamp(), GetPositionOnCurve(), m_HandsCurvePoints, m_HandsOffsetRelativeTime и m_TimeNormalized.

Используется в Update().

◆ ApplyMouseOffset()

void ApplyMouseOffset ( float pDt,
out float pRecResultX,
out float pRecResultY )
inlineprotected
145 {
146 #ifdef DEVELOPER
147 if(m_DebugMode)
148 {
150 PrintString( "RecoilBase | ApplyMouseOffset processing: " + b1 );
151 PrintString( "RecoilBase | m_MouseOffsetTargetAccum : " + m_MouseOffsetTargetAccum.ToString() );
152 PrintString( "RecoilBase | m_MouseOffsetTarget : " + m_MouseOffsetTarget.ToString() );
153 }
154 #endif
155
157 {
159
162
164 {
167 }
168
171
174
175 /*if(m_DebugMode)
176 {
177 PrintString( "delta x: "+ delta_mouse_offset_x );
178 PrintString( "delta y: "+ delta_mouse_offset_y );
179 PrintString( "target x: "+ m_MouseOffsetTarget[0] );
180 PrintString( "target y: "+ m_MouseOffsetTarget[1] );
181 PrintString( "accum x: "+ m_MouseOffsetTargetAccum[0] );
182 PrintString( "accum y: "+ m_MouseOffsetTargetAccum[1] );
183 }*/
184 }
185 #ifdef DEVELOPER
186 if(m_DebugMode)
187 {
188 PrintString( "RecoilBase | pRecResultY: " + pRecResultY );
189 }
190 #endif
191 }
float m_MouseOffsetRelativeTime
Definition RecoilBase.c:15
vector m_MouseOffsetTargetAccum
Definition RecoilBase.c:23
float m_ReloadTime
Definition RecoilBase.c:9
vector m_MouseOffsetTarget
Definition RecoilBase.c:22
proto string ToString(bool beautify=true)
Vector to string.
void PrintString(string s)
Helper for printing out string expression. Example: PrintString("Hello " + var);.
Definition EnScript.c:345

Перекрестные ссылки Math::Clamp(), m_DebugMode, m_MouseOffsetRelativeTime, m_MouseOffsetTarget, m_MouseOffsetTargetAccum, m_ReloadTime, PrintString() и vector::ToString().

Используется в Update().

◆ Destroy()

void Destroy ( )
inlineprotected

Destroys this object next update tick.

63 {
64 m_DeleteRequested = true;
65 }
bool m_DeleteRequested
Definition RecoilBase.c:7

Перекрестные ссылки m_DeleteRequested.

Используется в Update().

◆ GetPositionOnCurve()

vector GetPositionOnCurve ( array< vector > points,
float time )
inlineprotected
203 {
204 return Math3D.Curve(ECurveType.CatmullRom, time, points);
205 }
Definition EnMath3D.c:28
ECurveType
Definition EnMath3D.c:21
static proto native vector Curve(ECurveType type, float param, notnull array< vector > points)
Computes curve.

Перекрестные ссылки Math3D::Curve().

Используется в ApplyHandsOffset().

◆ GetRecoilModifier()

vector GetRecoilModifier ( Weapon_Base weapon)
inlineprotected
194 {
195 if( weapon )
196 {
197 return weapon.GetPropertyModifierObject().m_RecoilModifiers;
198 }
199 else return "1 1 1";
200 }

Используется в PostInit().

◆ GetWeapon()

Weapon_Base GetWeapon ( )
inlineprotected
43 {
44 return m_Weapon;
45 }

Перекрестные ссылки m_Weapon.

Используется в PostInit().

◆ Init()

void Init ( )
protected

Используется в RecoilBase().

◆ PostInit()

void PostInit ( Weapon_Base weapon)
inlineprotected
48 {
49 int muzzleIndex = weapon.GetCurrentMuzzle();
50 m_Angle = m_Player.GetRandomGeneratorSyncManager().GetRandomInRange(RandomGeneratorSyncUsage.RGSRecoil, m_MouseOffsetRangeMin, m_MouseOffsetRangeMax);
53
54 m_ReloadTime = weapon.GetReloadTime(muzzleIndex);
57 m_IsClient = !GetGame().IsDedicatedServer();
59 }
RandomGeneratorSyncUsage
Definition RandomGeneratorSyncManager.c:2
Weapon_Base GetWeapon()
Definition RecoilBase.c:42
vector GetRecoilModifier(Weapon_Base weapon)
Definition RecoilBase.c:193
float m_MouseOffsetRangeMin
Definition RecoilBase.c:13
float m_Angle
Definition RecoilBase.c:24
bool m_IsClient
Definition RecoilBase.c:11
vector m_RecoilModifier
Definition RecoilBase.c:10
float m_MouseOffsetDistance
Definition RecoilBase.c:19
float m_MouseOffsetRangeMax
Definition RecoilBase.c:14
proto static native vector YawToVector(float yaw)
Returns vector of yaw.
proto native CGame GetGame()
proto void Print(void var)
Prints content of variable to console/log.

Перекрестные ссылки GetGame(), GetRecoilModifier(), GetWeapon(), m_Angle, m_CamOffsetDistance, m_DebugMode, m_IsClient, m_MouseOffsetDistance, m_MouseOffsetRangeMax, m_MouseOffsetRangeMin, m_MouseOffsetTarget, m_Player, m_RecoilModifier, m_ReloadTime, Print() и vector::YawToVector().

Используется в RecoilBase().

◆ Update()

void Update ( SDayZPlayerAimingModel pModel,
out float axis_mouse_x,
out float axis_mouse_y,
out float axis_hands_x,
out float axis_hands_y,
float pDt )
inlineprotected
69 {
71 {
72 delete this;
73 }
74
77
80 if(m_IsClient)
82 #ifdef DEVELOPER
83 if(m_DebugMode)
84 PrintString("RecoilBase | BEFORE | axis_mouse_y: " + axis_mouse_y.ToString());
85 #endif
88
91
92 #ifdef DEVELOPER
93 if(m_DebugMode)
94 {
95 PrintString("RecoilBase | AFTER | axis_mouse_y: " + axis_mouse_y.ToString());
96 }
97 #endif
98 m_Time += pDt;
99
100 if( m_Time >= m_ReloadTime )
101 {
102 Destroy();
103 }
104 }
float m_Time
Definition RecoilBase.c:8
void ApplyCamOffset(SDayZPlayerAimingModel pModel)
Definition RecoilBase.c:106
void ApplyMouseOffset(float pDt, out float pRecResultX, out float pRecResultY)
Definition RecoilBase.c:144
void ApplyHandsOffset(float pDt, out float pRecResultX, out float pRecResultY)
Definition RecoilBase.c:125
void Destroy()
Destroys this object next update tick.
Definition RecoilBase.c:62

Перекрестные ссылки ApplyCamOffset(), ApplyHandsOffset(), ApplyMouseOffset(), Math::Clamp(), Destroy(), Math::InverseLerp(), m_DebugMode, m_DeleteRequested, m_IsClient, m_RecoilModifier, m_ReloadTime, m_Time, m_TimeNormalized и PrintString().

Поля

◆ m_Angle

float m_Angle
protected

Используется в PostInit().

◆ m_CamOffsetDistance

◆ m_CamOffsetRelativeTime

◆ m_DebugMode

bool m_DebugMode
private

Используется в ApplyMouseOffset(), PostInit(), RecoilBase() и Update().

◆ m_DeleteRequested

bool m_DeleteRequested
protected

Используется в Destroy() и Update().

◆ m_HandsCurvePoints

◆ m_HandsOffsetRelativeTime

◆ m_IsClient

bool m_IsClient
protected

Используется в PostInit() и Update().

◆ m_MouseOffsetDistance

◆ m_MouseOffsetRangeMax

◆ m_MouseOffsetRangeMin

◆ m_MouseOffsetRelativeTime

◆ m_MouseOffsetTarget

vector m_MouseOffsetTarget
protected

Используется в ApplyMouseOffset() и PostInit().

◆ m_MouseOffsetTargetAccum

vector m_MouseOffsetTargetAccum
protected

Используется в ApplyMouseOffset().

◆ m_Player

◆ m_RecoilModifier

vector m_RecoilModifier
protected

Используется в PostInit() и Update().

◆ m_ReloadTime

float m_ReloadTime
protected

Используется в ApplyMouseOffset(), PostInit() и Update().

◆ m_Time

float m_Time
protected

Используется в Update().

◆ m_TimeNormalized

float m_TimeNormalized
protected

Используется в ApplyCamOffset(), ApplyHandsOffset() и Update().

◆ m_Weapon

Weapon_Base m_Weapon
private

Используется в GetWeapon() и RecoilBase().


Объявления и описания членов класса находятся в файле: