DayZ 1.29
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено
CorpseData.c
См. документацию.
2{
3 const int GET_LIFETIME_TRIES_MAX = 3;
4
11
12 float m_LifetimeAdjusted = float.MIN;
13 float m_LastLifetime = float.MIN;
15
16 void CorpseData(notnull PlayerBase player,int time_of_death)
17 {
18 m_bUpdate = true;
19 m_iLastUpdateTime = time_of_death;
20 m_iTimeOfDeath = time_of_death;
21 m_iMaxLifetime = -1;
23 m_Player = player;
25 }
26
27 void UpdateCorpseState(bool force_check = false)
28 {
29 if (m_iMaxLifetime <= 0 )
30 {
32 {
33 m_bUpdate = false;
34 return;
35 }
36 else
37 {
38 m_iMaxLifetime = m_Player.GetLifetime();
39 if (m_iMaxLifetime <= 0) //cleanup time not initialized yet!
40 {
42 m_iMaxLifetime = -1;
44 {
45 m_bUpdate = false;
46 }
47
48 return;
49 }
50 m_iMaxLifetime -= 30 * m_iTriesToGetLifetime; //adjusts for failed init attempts
51 m_Player.SetLifetime(m_iMaxLifetime);
52 }
53 }
54
55 if (m_LifetimeAdjusted == float.MIN)
57
58 if (m_LastLifetime == float.MIN)
60
61 float lifetime = m_Player.GetLifetime();
62
63 if (!CanProgressDecay())
64 {
65 m_LastLifetime = lifetime;
66 return;
67 }
68
69 int corpseStateOld = m_iCorpseState;
70 float delta = lifetime - m_LastLifetime;
71
72 #ifdef DIAG_DEVELOPER
73 if (FeatureTimeAccel.GetFeatureTimeAccelEnabled(ETimeAccelCategories.FOOD_DECAY))
74 {
75 float timeAccel = 1;
76 timeAccel = FeatureTimeAccel.GetFeatureTimeAccelValue();
77 delta *= timeAccel;
78 }
79 #endif
80
81 m_LifetimeAdjusted += delta;
82
83 float corpseFreshness = 0.0;
84 if (m_iMaxLifetime != 0)
85 corpseFreshness = m_LifetimeAdjusted / m_iMaxLifetime;
86
87 if (corpseFreshness > PlayerConstants.CORPSE_THRESHOLD_MEDIUM)
88 {
90 }
91 else if (corpseFreshness <= PlayerConstants.CORPSE_THRESHOLD_MEDIUM && corpseFreshness > PlayerConstants.CORPSE_THRESHOLD_DECAYED)
92 {
94 }
95 else
96 {
98 m_bUpdate = false;
99 }
100
101 if (corpseStateOld != m_iCorpseState)
102 {
103 m_Player.m_CorpseState = m_iCorpseState;
104 m_Player.SetSynchDirty();
105 }
106
107 m_LastLifetime = lifetime;
108 }
109
110 protected bool CanProgressDecay()
111 {
112 return !m_Player.GetIsFrozen();
113 }
114}
const int MIN
Определения EnConvert.c:28
int m_iTriesToGetLifetime
Определения CorpseData.c:10
int m_iMaxLifetime
Определения CorpseData.c:8
void CorpseData(notnull PlayerBase player, int time_of_death)
Определения CorpseData.c:16
int m_iTimeOfDeath
Определения CorpseData.c:7
PlayerBase m_Player
Определения CorpseData.c:14
const int GET_LIFETIME_TRIES_MAX
Определения CorpseData.c:3
float m_LifetimeAdjusted
Определения CorpseData.c:12
int m_iLastUpdateTime
Определения CorpseData.c:6
bool m_bUpdate
Определения CorpseData.c:5
bool CanProgressDecay()
Определения CorpseData.c:110
void UpdateCorpseState(bool force_check=false)
Определения CorpseData.c:27
float m_LastLifetime
Определения CorpseData.c:13
int m_iCorpseState
Определения CorpseData.c:9
Определения PlayerBaseClient.c:2
static const int CORPSE_STATE_MEDIUM
Определения PlayerConstants.c:214
static const int CORPSE_STATE_DECAYED
Определения PlayerConstants.c:215
static const float CORPSE_THRESHOLD_MEDIUM
Определения PlayerConstants.c:210
static const int CORPSE_STATE_FRESH
Определения PlayerConstants.c:213
static const float CORPSE_THRESHOLD_DECAYED
Определения PlayerConstants.c:211
Определения PlayerConstants.c:2