DayZ 1.30
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено
DayZPlayerImplementFallDamage.c
См. документацию.
17
19{
20 static const string FALL_DAMAGE_AMMO_HEALTH = "FallDamageHealth";
21 static const string FALL_DAMAGE_AMMO_SHOCK = "FallDamageShock";
22
23 static const string FALL_DAMAGE_AMMO_HEALTH_ATTACHMENT = "FallDamageHealthAttachment";
24 static const string FALL_DAMAGE_AMMO_HEALTH_OTHER_ATTACHMENTS = "FallDamageHealthOtherAttachments";
25
26 const float HEALTH_HEIGHT_LOW = 2;
27 const float HEALTH_HEIGHT_HIGH = 12;
28
29 private const float SHOCK_HEIGHT_LOW = 0;
30 private const float SHOCK_HEIGHT_HIGH = 8;
31 private const float BROKENLEGS_HEIGHT_LOW = 3;
32 private const float BROKENLEGS_HEIGHT_HIGH = 8;
33
34 private const float GLOVES_HEALTH_HEIGHT_LOW = 5;
35 private const float GLOVES_HEALTH_HEIGHT_HIGH = 15;
36 private const float SHOES_HEALTH_HEIGHT_LOW = 2;
37 private const float SHOES_HEALTH_HEIGHT_HIGH = 15;
38 private const float PANTS_HEALTH_HEIGHT_LOW = 5;
39 private const float PANTS_HEALTH_HEIGHT_HIGH = 16;
40
41 private const float BLEEDINGHANDS_HEIGHT_LOW = 3;
42 private const float BLEEDINGFEET_HEIGHT_LOW = 3;
43 private const float BLEEDINGLEGS_HEIGHT_LOW = 10;
44
45 private const float RANDOM_THRESHOLD_HEALTH_LOW = 0.05;
46 private const float RANDOM_THRESHOLD_HEALTH_HIGH = 0.1;
47 private const float RANDOM_THRESHOLD_LEGS_LOW = 0.05;
48 private const float RANDOM_THRESHOLD_LEGS_HIGH = 0.1;
49 private const float RANDOM_THRESHOLD_ATTACHMENTS_LOW = 0;
50 private const float RANDOM_THRESHOLD_ATTACHMENTS_HIGH = 0.2;
51
52 private const float BLEEDING_CHANCE_HEIGHT_LOW = 3;
53 private const float BLEEDING_CHANCE_HEIGHT_HIGH = 15;
54
55 private static const float BROKENLEGS_HEALTH_DAMAGE_MAX = 125;
56
57 private static const string BLEEDING_HANDS_SELECTIONS[2] = {"LeftForeArmRoll", "RightForeArmRoll"};
58 private static const string BLEEDING_FEET_SELECTIONS[2] = {"LeftFoot", "RightFoot"};
59 private static const string BLEEDING_LEGS_SELECTIONS[2] = {"LeftLeg", "RightLeg"};
60
61 private const int DAMAGE_TYPE_GLOBAL = 0;
62 private const int DAMAGE_TYPE_LEGS = 1;
63 private const int DAMAGE_TYPE_ATTACHMENTS = 2;
64
67
68 #ifdef DIAG_DEVELOPER
69 bool m_Debug = false;
70 private static ref map<string, float> m_AmmoTypeData;
71 #endif
72
74 {
75 m_Player = pPlayer;
77
78 #ifdef DIAG_DEVELOPER
79 PreloadAmmoTypeData();
80 #endif
81 }
82
83 float GetHeight()
84 {
85 return m_FallDamageData.m_Height;
86 }
87
89 {
90 return m_FallDamageData.m_LandType;
91 }
92 float CurveExp(float low, float high, float value, float power)
93 {
94 float t = Math.InverseLerp(low, high, value);
95 t = Math.Clamp(t, 0, 1);
96 return Math.Pow(t, power);
97 }
98
100 {
101 m_FallDamageData = pData;
102
103 // Main player damage
106 m_FallDamageData.m_HealthCoef = Math.Clamp(m_FallDamageData.m_HealthCoef, 0, 1);
107
109 m_FallDamageData.m_ShockCoef = Math.Clamp(m_FallDamageData.m_ShockCoef, 0, 1);
110
112 m_FallDamageData.m_BrokenLegsCoef = Randomize(DAMAGE_TYPE_LEGS, m_FallDamageData.m_BrokenLegsCoef);
113 m_FallDamageData.m_BrokenLegsCoef = Math.Clamp(m_FallDamageData.m_BrokenLegsCoef, 0, 1);
114
115 // Bleeding zones
116 m_FallDamageData.m_BleedingHandsCoef = CurveExp(0, BLEEDINGHANDS_HEIGHT_LOW, pData.m_Height, 1.8);
117 m_FallDamageData.m_BleedingHandsCoef = Math.Clamp(m_FallDamageData.m_BleedingHandsCoef, 0, 1);
118
119 m_FallDamageData.m_BleedingFeetCoef = CurveExp(0, BLEEDINGFEET_HEIGHT_LOW, pData.m_Height, 1.8);
120 m_FallDamageData.m_BleedingFeetCoef = Math.Clamp(m_FallDamageData.m_BleedingFeetCoef, 0, 1);
121
122 m_FallDamageData.m_BleedingLegsCoef = CurveExp(0, BLEEDINGLEGS_HEIGHT_LOW, pData.m_Height, 2.0);
123 m_FallDamageData.m_BleedingLegsCoef = Math.Clamp(m_FallDamageData.m_BleedingLegsCoef, 0, 1);
124
125 // Attached gear damage
127 m_FallDamageData.m_GlovesHealthCoef = Randomize(DAMAGE_TYPE_ATTACHMENTS, m_FallDamageData.m_GlovesHealthCoef);
128 m_FallDamageData.m_GlovesHealthCoef = Math.Clamp(m_FallDamageData.m_GlovesHealthCoef, 0, 1);
129
131 m_FallDamageData.m_ShoesHealthCoef = Randomize(DAMAGE_TYPE_ATTACHMENTS, m_FallDamageData.m_ShoesHealthCoef);
132 m_FallDamageData.m_ShoesHealthCoef = Math.Clamp(m_FallDamageData.m_ShoesHealthCoef, 0, 1);
133
135 m_FallDamageData.m_PantsHealthCoef = Randomize(DAMAGE_TYPE_ATTACHMENTS, m_FallDamageData.m_PantsHealthCoef);
136 m_FallDamageData.m_PantsHealthCoef = Math.Clamp(m_FallDamageData.m_PantsHealthCoef, 0, 1);
137
138 // Bleeding chance
140 m_FallDamageData.m_BleedingChanceCoef = Math.Clamp(m_FallDamageData.m_BleedingChanceCoef, 0, 0.7);
141
142 m_FallDamageData.m_BleedingChanceLegsCoef = 0.15;
143
144 if (g_Game.IsServer())
145 {
146 PlayerBase playerBase = PlayerBase.Cast(m_Player);
147 if (playerBase)
148 {
150 DamageAttachedGear(playerBase);
151 playerBase.DamageAllLegs(BROKENLEGS_HEALTH_DAMAGE_MAX * m_FallDamageData.m_BrokenLegsCoef);
152 playerBase.ForceUpdateInjuredState();
153 }
154
155 m_Player.ProcessDirectDamage(DamageType.CUSTOM, m_Player, "", FALL_DAMAGE_AMMO_HEALTH, vector.Zero, m_FallDamageData.m_HealthCoef);
156 m_Player.ProcessDirectDamage(DamageType.CUSTOM, m_Player, "", FALL_DAMAGE_AMMO_SHOCK, vector.Zero, m_FallDamageData.m_ShockCoef);
157 }
158 }
159
160 private float Randomize(int pType, float pValue)
161 {
162 if (pValue == 1)
163 return pValue;
164
165 Math.Randomize(g_Game.GetTime());
166
167 int randomizedSign = -1;
168 if (Math.RandomIntInclusive(1, 2) % 2 == 1)
169 randomizedSign = 1;
170
171 float randomizationValue = 0;
172 switch (pType)
173 {
176 break;
177 case DAMAGE_TYPE_LEGS:
179 break;
182 break;
183 }
184
185 return pValue + (randomizedSign * pValue * randomizationValue);
186 }
187
188 private void AttachBleedingToZonesByHeight(notnull PlayerBase pPlayer)
189 {
190 Math.Randomize(g_Game.GetTime());
191
192 int bleedingSelectionIndex;
193 BleedingSourcesManagerServer bleedingManager = pPlayer.GetBleedingManagerServer();
194 if (Math.RandomFloatInclusive(0.0, 1.0) <= m_FallDamageData.m_BleedingChanceCoef && m_FallDamageData.m_BleedingHandsCoef == 1.0 && pPlayer.FindAttachmentBySlotName("Gloves") == null)
195 {
196 bleedingSelectionIndex = Math.RandomInt(0, 2);
197 bleedingManager.AttemptAddBleedingSourceBySelection(BLEEDING_HANDS_SELECTIONS[bleedingSelectionIndex]);
198 }
199
200 if (Math.RandomFloatInclusive(0.0, 1.0) <= m_FallDamageData.m_BleedingChanceCoef && m_FallDamageData.m_BleedingFeetCoef == 1.0 && pPlayer.FindAttachmentBySlotName("Feet") == null)
201 {
202
203 bleedingSelectionIndex = Math.RandomInt(0, 2);
204 bleedingManager.AttemptAddBleedingSourceBySelection(BLEEDING_FEET_SELECTIONS[bleedingSelectionIndex]);
205 }
206 if (Math.RandomFloatInclusive(0.0, 1.0) <= m_FallDamageData.m_BleedingChanceLegsCoef && m_FallDamageData.m_BleedingLegsCoef == 1.0)
207 {
208
209 bleedingSelectionIndex = Math.RandomInt(0, 2);
210 bleedingManager.AttemptAddBleedingSourceBySelection(BLEEDING_LEGS_SELECTIONS[bleedingSelectionIndex]);
211 }
212 }
213
214 private void DamageAttachedGear(notnull PlayerBase pPlayer)
215 {
216 EntityAI gloves = pPlayer.FindAttachmentBySlotName("Gloves");
217 if (gloves)
218 gloves.ProcessDirectDamage(DamageType.CUSTOM, pPlayer, "", FALL_DAMAGE_AMMO_HEALTH_OTHER_ATTACHMENTS, gloves.WorldToModel(gloves.GetPosition()), m_FallDamageData.m_GlovesHealthCoef);
219
220 EntityAI shoes = pPlayer.FindAttachmentBySlotName("Feet");
221 if (shoes)
222 shoes.ProcessDirectDamage(DamageType.CUSTOM, pPlayer, "", FALL_DAMAGE_AMMO_HEALTH_OTHER_ATTACHMENTS, shoes.WorldToModel(shoes.GetPosition()), m_FallDamageData.m_ShoesHealthCoef);
223
224 EntityAI pants = pPlayer.FindAttachmentBySlotName("Legs");
225 if (pants)
226 pants.ProcessDirectDamage(DamageType.CUSTOM, pPlayer, "", FALL_DAMAGE_AMMO_HEALTH_ATTACHMENT, pants.WorldToModel(pants.GetPosition()), m_FallDamageData.m_PantsHealthCoef);
227 }
228
229#ifdef DIAG_DEVELOPER
230 FallDamageDebugData GetFallDamageDebugData()
231 {
232 FallDamageDebugData data = new FallDamageDebugData();
233 data.Synch(this);
234
235 return data;
236 }
237
238 void ShowFallDamageDebugInfo(bool enabled)
239 {
240 FallDamageDebugData data = GetFallDamageDebugData();
241 DisplayFallDamageDebugInfo(enabled, data);
242 }
243
244 private static string LandTypeToString(int landType)
245 {
246 switch (landType)
247 {
248 case 1:
249 return "LIGHT";
250 case 2:
251 return "MEDIUM";
252 case 3:
253 return "HEAVY";
254 }
255
256 return "NONE";
257 }
258
259 private void PreloadAmmoTypeData()
260 {
261 if (m_AmmoTypeData == null)
262 m_AmmoTypeData = new map<string, float>();
263
264 m_AmmoTypeData.Insert(FALL_DAMAGE_AMMO_HEALTH, GetValuesFromAmmoType(FALL_DAMAGE_AMMO_HEALTH)[0]);
265 m_AmmoTypeData.Insert(FALL_DAMAGE_AMMO_SHOCK, GetValuesFromAmmoType(FALL_DAMAGE_AMMO_SHOCK)[2]);
266 m_AmmoTypeData.Insert(FALL_DAMAGE_AMMO_HEALTH_OTHER_ATTACHMENTS, GetValuesFromAmmoType(FALL_DAMAGE_AMMO_HEALTH_OTHER_ATTACHMENTS)[0]);
267 m_AmmoTypeData.Insert(FALL_DAMAGE_AMMO_HEALTH_ATTACHMENT, GetValuesFromAmmoType(FALL_DAMAGE_AMMO_HEALTH_ATTACHMENT)[0]);
268 }
269
270 private vector GetValuesFromAmmoType(string pAmmoType)
271 {
272 vector values = vector.Zero;
273 values[0] = g_Game.ConfigGetFloat(string.Format("CfgAmmo %1 DamageApplied Health damage", pAmmoType));
274 values[1] = g_Game.ConfigGetFloat(string.Format("CfgAmmo %1 DamageApplied Blood damage", pAmmoType));
275 values[2] = g_Game.ConfigGetFloat(string.Format("CfgAmmo %1 DamageApplied Shock damage", pAmmoType));
276
277 return values;
278 }
279
280 static void DisplayFallDamageDebugInfo(bool enabled, FallDamageDebugData data)
281 {
282 int windowPosX = 10;
283 int windowPosY = 200;
284
285 DbgUI.Begin("Fall Damage (last)", windowPosX, windowPosY);
286 if (enabled)
287 {
288 DbgUI.Text(string.Format("Height:\t%1", Math.Clamp(data.m_Height, 0, float.MAX)));
289 DbgUI.Text(string.Format("Land Type:\t%1 (%2)", data.m_LandType, LandTypeToString(data.m_LandType)));
290 DbgUI.Text("");
291 DbgUI.Text("Health");
292 DbgUI.Text(string.Format(" coef:%1 dmg:%2", data.m_HealthCoef, m_AmmoTypeData[FALL_DAMAGE_AMMO_HEALTH] * data.m_HealthCoef));
293 DbgUI.Text("Shock");
294 DbgUI.Text(string.Format(" coef:%1 dmg:%2", data.m_ShockCoef, m_AmmoTypeData[FALL_DAMAGE_AMMO_SHOCK] * data.m_ShockCoef));
295 DbgUI.Text("Broken Legs:");
296 DbgUI.Text(string.Format(" coef:%1 dmg:%2", data.m_BrokenLegsCoef, BROKENLEGS_HEALTH_DAMAGE_MAX * data.m_BrokenLegsCoef));
297 DbgUI.Text("Gloves damage:");
298 DbgUI.Text(string.Format(" coef:%1 dmg:%2", data.m_GlovesHealthCoef, m_AmmoTypeData[FALL_DAMAGE_AMMO_HEALTH_OTHER_ATTACHMENTS] * data.m_GlovesHealthCoef));
299 DbgUI.Text("Shoes damage:");
300 DbgUI.Text(string.Format(" coef:%1 dmg:%2", data.m_ShoesHealthCoef, m_AmmoTypeData[FALL_DAMAGE_AMMO_HEALTH_OTHER_ATTACHMENTS] * data.m_ShoesHealthCoef));
301 DbgUI.Text("Pants damage:");
302 DbgUI.Text(string.Format(" coef:%1 dmg:%2" , data.m_PantsHealthCoef, m_AmmoTypeData[FALL_DAMAGE_AMMO_HEALTH_ATTACHMENT] * data.m_PantsHealthCoef));
303 DbgUI.Text("Bleeding coefs:");
304 DbgUI.Text(string.Format(" hands:%1", data.m_BleedingHandsCoef));
305 DbgUI.Text(string.Format(" feet:%1", data.m_BleedingFeetCoef));
306 DbgUI.Text(string.Format(" legs:%1", data.m_BleedingLegsCoef));
307 DbgUI.Text(string.Format(" H&F chance:%1", data.m_BleedingChanceCoef));
308
309
310 }
311 DbgUI.End();
312 }
313
314 void FillDebugFallDamageData(FallDamageDebugData data)
315 {
316 data.m_Height = m_FallDamageData.m_Height;
317 data.m_LandType = m_FallDamageData.m_LandType;
318 data.m_HealthCoef = m_FallDamageData.m_HealthCoef;
319 data.m_ShockCoef = m_FallDamageData.m_ShockCoef;
320 data.m_BrokenLegsCoef = m_FallDamageData.m_BrokenLegsCoef;
321 data.m_GlovesHealthCoef = m_FallDamageData.m_GlovesHealthCoef;
322 data.m_ShoesHealthCoef = m_FallDamageData.m_ShoesHealthCoef;
323 data.m_PantsHealthCoef = m_FallDamageData.m_PantsHealthCoef;
324
325 data.m_BleedingHandsCoef = m_FallDamageData.m_BleedingHandsCoef;
326 data.m_BleedingFeetCoef = m_FallDamageData.m_BleedingFeetCoef;
327 data.m_BleedingLegsCoef = m_FallDamageData.m_BleedingLegsCoef;
328 data.m_BleedingChanceCoef = m_FallDamageData.m_BleedingChanceCoef;
329 }
330#endif
331
335 const string FD_AMMO = "FallDamage";
336 const float FD_DMG_FROM_HEIGHT = 2.5;
337 const float FD_MAX_DMG_AT_HEIGHT = 15;
338 const float FD_MAX_HEIGHT_LEG_BREAK = 8;
339
340 void HandleFallDamage(float pHeight);
341 float DamageCoef(float pHeight);
342}
343
344#ifdef DIAG_DEVELOPER
345class FallDamageDebugData : Param
346{
347 int m_LandType;
348 float m_Height;
349 float m_HealthCoef;
350 float m_ShockCoef;
351 float m_BrokenLegsCoef;
352 float m_GlovesHealthCoef;
353 float m_ShoesHealthCoef;
354 float m_PantsHealthCoef;
355 float m_BleedingHandsCoef;
356 float m_BleedingFeetCoef;
357 float m_BleedingLegsCoef;
358 float m_BleedingChanceCoef;
359
360 void Synch(DayZPlayerImplementFallDamage fallDamage)
361 {
362 m_Height = fallDamage.GetHeight();
363 m_LandType = fallDamage.GetLandType();
364
365 fallDamage.FillDebugFallDamageData(this);
366 }
367
368 override bool Serialize(Serializer ctx)
369 {
370 return ctx.Write(m_Height) && ctx.Write(m_LandType) && ctx.Write(m_HealthCoef) && ctx.Write(m_ShockCoef) && ctx.Write(m_BrokenLegsCoef) && ctx.Write(m_GlovesHealthCoef) && ctx.Write(m_ShoesHealthCoef) && ctx.Write(m_PantsHealthCoef) && ctx.Write(m_BleedingHandsCoef) && ctx.Write(m_BleedingFeetCoef) && ctx.Write(m_BleedingLegsCoef);
371 }
372
373 override bool Deserializer(Serializer ctx)
374 {
375 return ctx.Read(m_Height) && ctx.Read(m_LandType) && ctx.Read(m_HealthCoef) && ctx.Read(m_ShockCoef) && ctx.Write(m_BrokenLegsCoef) && ctx.Read(m_GlovesHealthCoef) && ctx.Read(m_ShoesHealthCoef) && ctx.Read(m_PantsHealthCoef) && ctx.Read(m_BleedingHandsCoef) && ctx.Read(m_BleedingFeetCoef) && ctx.Read(m_BleedingLegsCoef);
376 }
377}
378#endif
void Serialize()
DamageType
exposed from C++ (do not change)
Определения DamageSystem.c:11
DayZGame g_Game
Определения DayZGame.c:4074
class FallDamageData FALL_DAMAGE_AMMO_HEALTH
void DamageAttachedGear(notnull PlayerBase pPlayer)
const float RANDOM_THRESHOLD_HEALTH_LOW
Определения DayZPlayerImplementFallDamage.c:45
const float FD_DMG_FROM_HEIGHT
damage will not be taken into account bellow this HeightToDamage
const float BLEEDINGFEET_HEIGHT_LOW
Определения DayZPlayerImplementFallDamage.c:42
const float BLEEDING_CHANCE_HEIGHT_LOW
Определения DayZPlayerImplementFallDamage.c:52
const float BLEEDINGLEGS_HEIGHT_LOW
Определения DayZPlayerImplementFallDamage.c:43
const float SHOES_HEALTH_HEIGHT_HIGH
Определения DayZPlayerImplementFallDamage.c:37
ref FallDamageData m_FallDamageData
Определения DayZPlayerImplementFallDamage.c:66
static const string FALL_DAMAGE_AMMO_HEALTH_OTHER_ATTACHMENTS
Определения DayZPlayerImplementFallDamage.c:24
float GetHeight()
Определения DayZPlayerImplementFallDamage.c:83
const float HEALTH_HEIGHT_LOW
Определения DayZPlayerImplementFallDamage.c:26
void DayZPlayerImplementFallDamage(DayZPlayer pPlayer)
Определения DayZPlayerImplementFallDamage.c:73
const float PANTS_HEALTH_HEIGHT_HIGH
Определения DayZPlayerImplementFallDamage.c:39
const float RANDOM_THRESHOLD_LEGS_LOW
Определения DayZPlayerImplementFallDamage.c:47
const float GLOVES_HEALTH_HEIGHT_LOW
Определения DayZPlayerImplementFallDamage.c:34
const float FD_MAX_HEIGHT_LEG_BREAK
height where legs break most of the time
const float FD_MAX_DMG_AT_HEIGHT
height where player gets 100% damage
static const string BLEEDING_FEET_SELECTIONS[2]
Определения DayZPlayerImplementFallDamage.c:58
static const string FALL_DAMAGE_AMMO_SHOCK
Определения DayZPlayerImplementFallDamage.c:21
static const string FALL_DAMAGE_AMMO_HEALTH_ATTACHMENT
Определения DayZPlayerImplementFallDamage.c:23
const float BROKENLEGS_HEIGHT_LOW
Определения DayZPlayerImplementFallDamage.c:31
const float SHOCK_HEIGHT_HIGH
Определения DayZPlayerImplementFallDamage.c:30
static const string BLEEDING_HANDS_SELECTIONS[2]
Определения DayZPlayerImplementFallDamage.c:57
const float BLEEDINGHANDS_HEIGHT_LOW
Определения DayZPlayerImplementFallDamage.c:41
const float RANDOM_THRESHOLD_HEALTH_HIGH
Определения DayZPlayerImplementFallDamage.c:46
void AttachBleedingToZonesByHeight(notnull PlayerBase pPlayer)
const int DAMAGE_TYPE_LEGS
Определения DayZPlayerImplementFallDamage.c:62
float DamageCoef(float pHeight)
void HandleFallDamage(FallDamageData pData)
Определения DayZPlayerImplementFallDamage.c:99
const float GLOVES_HEALTH_HEIGHT_HIGH
Определения DayZPlayerImplementFallDamage.c:35
const string FD_AMMO
ammo type used for damaging
const int DAMAGE_TYPE_GLOBAL
Определения DayZPlayerImplementFallDamage.c:61
const float SHOES_HEALTH_HEIGHT_LOW
Определения DayZPlayerImplementFallDamage.c:36
const float PANTS_HEALTH_HEIGHT_LOW
Определения DayZPlayerImplementFallDamage.c:38
static const float BROKENLEGS_HEALTH_DAMAGE_MAX
Определения DayZPlayerImplementFallDamage.c:55
const float RANDOM_THRESHOLD_LEGS_HIGH
Определения DayZPlayerImplementFallDamage.c:48
const int DAMAGE_TYPE_ATTACHMENTS
Определения DayZPlayerImplementFallDamage.c:63
static const string BLEEDING_LEGS_SELECTIONS[2]
Определения DayZPlayerImplementFallDamage.c:59
const float SHOCK_HEIGHT_LOW
Определения DayZPlayerImplementFallDamage.c:29
const float BROKENLEGS_HEIGHT_HIGH
Определения DayZPlayerImplementFallDamage.c:32
float CurveExp(float low, float high, float value, float power)
Определения DayZPlayerImplementFallDamage.c:92
float Randomize(int pType, float pValue)
const float RANDOM_THRESHOLD_ATTACHMENTS_LOW
Определения DayZPlayerImplementFallDamage.c:49
const float BLEEDING_CHANCE_HEIGHT_HIGH
Определения DayZPlayerImplementFallDamage.c:53
const float RANDOM_THRESHOLD_ATTACHMENTS_HIGH
Определения DayZPlayerImplementFallDamage.c:50
int GetLandType()
Определения DayZPlayerImplementFallDamage.c:88
const float HEALTH_HEIGHT_HIGH
Определения DayZPlayerImplementFallDamage.c:27
DayZPlayer m_Player
Определения Hand_Events.c:42
static int m_Height
Определения InventoryMenu.c:18
class PresenceNotifierNoiseEvents windowPosX
dbgUI settings
const int windowPosY
Определения PluginPresenceNotifier.c:77
void Synch(EntityAI victim)
keeping "step" here for consistency only
Определения TrapBase.c:290
Определения DayZPlayerImplement.c:87
float m_BleedingChanceCoef
Определения DayZPlayerImplementFallDamage.c:14
float m_PantsHealthCoef
Определения DayZPlayerImplementFallDamage.c:13
float m_GlovesHealthCoef
Определения DayZPlayerImplementFallDamage.c:11
float m_BleedingChanceLegsCoef
Определения DayZPlayerImplementFallDamage.c:15
float m_HealthCoef
Определения DayZPlayerImplementFallDamage.c:5
float m_BleedingFeetCoef
Определения DayZPlayerImplementFallDamage.c:9
float m_BleedingLegsCoef
Определения DayZPlayerImplementFallDamage.c:10
float m_ShockCoef
Определения DayZPlayerImplementFallDamage.c:6
float m_BleedingHandsCoef
Определения DayZPlayerImplementFallDamage.c:8
float m_BrokenLegsCoef
Определения DayZPlayerImplementFallDamage.c:7
float m_ShoesHealthCoef
Определения DayZPlayerImplementFallDamage.c:12
Определения EnMath.c:7
bool Deserializer(Serializer ctx)
Определения param.c:18
Base Param Class with no parameters. Used as general purpose parameter overloaded with Param1 to Para...
Определения param.c:12
Определения PlayerBaseClient.c:2
proto bool Write(void value_out)
proto bool Read(void value_in)
Определения Transport.c:70
static const vector Zero
Определения EnConvert.c:123
Определения EnConvert.c:119
static proto int Randomize(int seed)
Sets the seed for the random number generator.
static float RandomFloatInclusive(float min, float max)
Returns a random float number between and min [inclusive] and max [inclusive].
Определения EnMath.c:106
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 Pow(float v, float power)
Return power of v ^ power.
static proto int RandomInt(int min, int max)
Returns a random int number between and min [inclusive] and max [exclusive].
static int RandomIntInclusive(int min, int max)
Returns a random int number between and min [inclusive] and max [inclusive].
Определения EnMath.c:54