Dayz
Build 1.29.163047, Scripts Rev. 123548
Dayz Code Explorer by Zeroy
Toggle main menu visibility
Loading...
Searching...
No Matches
playerstatspco.c
Go to the documentation of this file.
1
class
PCOHandlerStats
2
{
3
ref
map<int, ref PlayerStatsPCO_Base>
m_PCOs
=
new
map<int, ref PlayerStatsPCO_Base>
;
4
int
m_HighestVersion
;;
5
6
protected
Man
m_Player
;
7
8
void
PCOHandlerStats
(Man player)
9
{
10
m_Player
= player;
11
12
RegisterPCO
(
new
PlayerStatsPCO_v100);
13
RegisterPCO
(
new
PlayerStatsPCO_v101);
14
RegisterPCO
(
new
PlayerStatsPCO_current);
15
}
16
17
void
RegisterPCO
(
PlayerStatsPCO_Base
pco)
18
{
19
int
version = pco.
GetVersion
();
20
21
if
(version >
m_HighestVersion
)
22
m_HighestVersion
= version;
23
24
pco.SetPlayer(
m_Player
);
25
pco.
Init
();
26
m_PCOs
.Insert(version, pco);
27
}
28
29
PlayerStatsPCO_Base
GetPCO
(
int
version = -1)
30
{
31
if
(version == -1)
//no version set - fetch the highest version
32
{
33
return
m_PCOs
.Get(
m_HighestVersion
);
34
}
35
else
if
(!
m_PCOs
.Contains(version))
//version set - version not present, fetch the closest lower version
36
{
37
for
(
int
i = version; i > 100; --i)
38
{
39
if
(
m_PCOs
.Contains(i))
40
{
41
//Print("fetching PCO version:"+ i);
42
return
m_PCOs
.Get(i);
43
}
44
}
45
46
return
null;
47
}
48
else
//version set - version present, fetch it
49
{
50
//Print("fetching PCO version:"+ version);
51
return
m_PCOs
.Get(version);
52
}
53
}
54
}
55
56
57
class
PlayerStatsPCO_Base
58
{
59
protected
Man
m_Player
;
60
61
void
PlayerStatsPCO_Base
()
62
{
63
}
64
65
void
Init
();
66
67
void
SetPlayer
(Man player)
68
{
69
m_Player
= player;
70
}
71
72
int
GetVersion
()
73
{
74
return
-1;
75
}
76
77
ref
array<ref PlayerStatBase>
m_PlayerStats
=
new
array<ref PlayerStatBase>
;
78
79
PlayerStatBase
GetStatObject
(
int
id
)
80
{
81
return
m_PlayerStats
.Get(
id
);
82
}
83
84
void
RegisterStat
(
int
id
,
PlayerStatBase
stat)
85
{
86
m_PlayerStats
.InsertAt(stat,
id
);
87
stat.
SetPlayer
(
m_Player
);
88
stat.
Init
(
id
);
89
}
90
91
void
OnStoreSave
(
ParamsWriteContext
ctx)
92
{
93
foreach
(
PlayerStatBase
playerStat :
m_PlayerStats
)
94
playerStat.OnStoreSave(ctx);
95
}
96
97
bool
OnStoreLoad
(
ParamsReadContext
ctx)
98
{
99
foreach
(
PlayerStatBase
playerStat :
m_PlayerStats
)
100
{
101
if
(!playerStat.OnStoreLoad(ctx))
102
return
false
;
103
}
104
105
return
true
;
106
}
107
108
array<ref PlayerStatBase>
Get
()
109
{
110
return
m_PlayerStats
;
111
}
112
113
void
ResetAllStats
()
114
{
115
m_PlayerStats
.Clear();
116
Init
();
117
}
118
119
void
OnRPC
(
ParamsReadContext
ctx)
120
{
121
ParamsReadContext
localContext = ctx;
122
localContext.
Read
(
CachedObjectsParams
.
PARAM2_INT_FLOAT
);
123
124
PlayerStatBase
playerStat =
m_PlayerStats
[
CachedObjectsParams
.
PARAM2_INT_FLOAT
.param1];
125
playerStat.
OnRPC
(ctx);
126
}
127
128
void
OnAfterStoreLoad
()
129
{
130
foreach
(
PlayerStatBase
playerStat :
m_PlayerStats
)
131
playerStat.OnAfterStoreLoad();
132
}
133
}
134
135
//---------------------------------------------------------------
136
//------------------------- version 100 -------------------------
137
//---------------------------------------------------------------
138
enum
EPlayerStats_v100
139
{
140
HEATCOMFORT
,
141
TREMOR
,
142
WET
,
143
ENERGY
,
144
WATER
,
145
STOMACH_SOLID
,
146
STOMACH_ENERGY
,
147
STOMACH_WATER
,
148
DIET
,
149
STAMINA
,
150
SPECIALTY
,
151
BLOODTYPE
,
152
};
153
154
155
class
PlayerStatsPCO_v100
extends
PlayerStatsPCO_Base
156
{
157
158
override
int
GetVersion
()
159
{
160
return
100;
161
}
162
163
override
void
Init
()
164
{
165
RegisterStat
(
EPlayerStats_v100
.HEATCOMFORT,
new
PlayerStat<float>
(-1, 1, 0,
"HeatComfort"
,
EPSstatsFlags
.EMPTY) );
166
RegisterStat
(
EPlayerStats_v100
.TREMOR,
new
PlayerStat<float>
(0, 1, 0,
"Tremor"
,
EPSstatsFlags
.EMPTY) );
167
RegisterStat
(
EPlayerStats_v100
.WET,
new
PlayerStat<int>
(0, 1, 0,
"Wet"
,
EPSstatsFlags
.EMPTY) );
168
RegisterStat
(
EPlayerStats_v100
.ENERGY,
new
PlayerStat<float>
(0, 20000, 600,
"Energy"
,
EPSstatsFlags
.EMPTY) );
169
RegisterStat
(
EPlayerStats_v100
.WATER,
new
PlayerStat<float>
(0, 5000, 500,
"Water"
,
EPSstatsFlags
.EMPTY) );
170
RegisterStat
(
EPlayerStats_v100
.STOMACH_SOLID,
new
PlayerStat<float>
(0, 5000, 0,
"StomachSolid"
,
EPSstatsFlags
.EMPTY) );
171
RegisterStat
(
EPlayerStats_v100
.STOMACH_ENERGY,
new
PlayerStat<float>
(0, 40000, 0,
"StomachEnergy"
,
EPSstatsFlags
.EMPTY) );
172
RegisterStat
(
EPlayerStats_v100
.STOMACH_WATER,
new
PlayerStat<float>
(0, 5000, 0,
"StomachWater"
,
EPSstatsFlags
.EMPTY) );
173
RegisterStat
(
EPlayerStats_v100
.DIET,
new
PlayerStat<float>
(0, 5000, 2500,
"Diet"
,
EPSstatsFlags
.EMPTY) );
174
RegisterStat
(
EPlayerStats_v100
.STAMINA,
new
PlayerStat<float>
(0,
GameConstants
.
STAMINA_MAX
, 100,
"Stamina"
,
EPSstatsFlags
.EMPTY) );
175
RegisterStat
(
EPlayerStats_v100
.SPECIALTY,
new
PlayerStat<float>
(-1, 1, 0,
"Specialty"
,
EPSstatsFlags
.EMPTY) );
176
RegisterStat
(
EPlayerStats_v100
.BLOODTYPE,
new
PlayerStat<int>
(0, 128,
BloodTypes
.
GenerateBloodType
(),
"BloodType"
,
EPSstatsFlags
.EMPTY) );
177
}
178
179
void
PlayerStatsPCO_v100
()
180
{
181
182
}
183
184
};
185
//---------------------------------------------------------------
186
//------------------------- version 101 -------------------------
187
//---------------------------------------------------------------
188
189
enum
EPlayerStats_v101
190
{
191
HEATCOMFORT
,
192
TREMOR
,
193
WET
,
194
ENERGY
,
195
WATER
,
196
STOMACH_SOLID
,
197
STOMACH_ENERGY
,
198
STOMACH_WATER
,
199
DIET
,
200
STAMINA
,
201
SPECIALTY
,
202
BLOODTYPE
,
203
TOXICITY
,
204
};
205
206
207
class
PlayerStatsPCO_v101
extends
PlayerStatsPCO_Base
208
{
209
override
int
GetVersion
()
210
{
211
return
101;
212
}
213
214
override
void
Init
()
215
{
216
RegisterStat
(
EPlayerStats_v101
.HEATCOMFORT,
new
PlayerStat<float>
(-1, 1, 0,
"HeatComfort"
,
EPSstatsFlags
.EMPTY) );
217
RegisterStat
(
EPlayerStats_v101
.TREMOR,
new
PlayerStat<float>
(0, 1, 0,
"Tremor"
,
EPSstatsFlags
.EMPTY) );
218
RegisterStat
(
EPlayerStats_v101
.WET,
new
PlayerStat<int>
(0, 1, 0,
"Wet"
,
EPSstatsFlags
.EMPTY) );
219
RegisterStat
(
EPlayerStats_v101
.ENERGY,
new
PlayerStat<float>
(0, 20000, 600,
"Energy"
,
EPSstatsFlags
.EMPTY) );
220
RegisterStat
(
EPlayerStats_v101
.WATER,
new
PlayerStat<float>
(0, 5000, 500,
"Water"
,
EPSstatsFlags
.EMPTY) );
221
RegisterStat
(
EPlayerStats_v101
.STOMACH_SOLID,
new
PlayerStat<float>
(0, 5000, 0,
"StomachSolid"
,
EPSstatsFlags
.EMPTY) );
222
RegisterStat
(
EPlayerStats_v101
.STOMACH_ENERGY,
new
PlayerStat<float>
(0, 40000, 0,
"StomachEnergy"
,
EPSstatsFlags
.EMPTY) );
223
RegisterStat
(
EPlayerStats_v101
.STOMACH_WATER,
new
PlayerStat<float>
(0, 5000, 0,
"StomachWater"
,
EPSstatsFlags
.EMPTY) );
224
RegisterStat
(
EPlayerStats_v101
.DIET,
new
PlayerStat<float>
(0, 5000, 2500,
"Diet"
,
EPSstatsFlags
.EMPTY) );
225
RegisterStat
(
EPlayerStats_v101
.STAMINA,
new
PlayerStat<float>
(0,
GameConstants
.
STAMINA_MAX
, 100,
"Stamina"
,
EPSstatsFlags
.EMPTY) );
226
RegisterStat
(
EPlayerStats_v101
.SPECIALTY,
new
PlayerStat<float>
(-1, 1, 0,
"Specialty"
,
EPSstatsFlags
.EMPTY) );
227
RegisterStat
(
EPlayerStats_v101
.BLOODTYPE,
new
PlayerStat<int>
(0, 128,
BloodTypes
.
GenerateBloodType
(),
"BloodType"
,
EPSstatsFlags
.EMPTY) );
228
RegisterStat
(
EPlayerStats_v101
.TOXICITY,
new
PlayerStat<float>
(0, 100, 0,
"Toxicity"
,
EPSstatsFlags
.EMPTY) );
229
}
230
};
231
232
233
enum
EPlayerStats_v106
234
{
235
HEATCOMFORT
,
236
TREMOR
,
237
WET
,
238
ENERGY
,
239
WATER
,
240
DIET
,
241
STAMINA
,
242
SPECIALTY
,
243
BLOODTYPE
,
244
TOXICITY
,
245
};
246
247
class
PlayerStatsPCO_v106
extends
PlayerStatsPCO_Base
248
{
249
override
int
GetVersion
()
250
{
251
return
106;
252
}
253
254
override
void
Init
()
255
{
256
RegisterStat
(
EPlayerStats_v106
.HEATCOMFORT,
new
PlayerStat<float>
(-1, 1, 0,
"HeatComfort"
,
EPSstatsFlags
.EMPTY) );
257
RegisterStat
(
EPlayerStats_v106
.TREMOR,
new
PlayerStat<float>
(0, 1, 0,
"Tremor"
,
EPSstatsFlags
.EMPTY) );
258
RegisterStat
(
EPlayerStats_v106
.WET,
new
PlayerStat<int>
(0, 1, 0,
"Wet"
,
EPSstatsFlags
.EMPTY) );
259
RegisterStat
(
EPlayerStats_v106
.ENERGY,
new
PlayerStat<float>
(0, 20000, 600,
"Energy"
,
EPSstatsFlags
.EMPTY) );
260
RegisterStat
(
EPlayerStats_v106
.WATER,
new
PlayerStat<float>
(0, 5000, 650,
"Water"
,
EPSstatsFlags
.EMPTY) );
261
RegisterStat
(
EPlayerStats_v106
.DIET,
new
PlayerStat<float>
(0, 5000, 2500,
"Diet"
,
EPSstatsFlags
.EMPTY) );
262
RegisterStat
(
EPlayerStats_v106
.STAMINA,
new
PlayerStat<float>
(0,
GameConstants
.
STAMINA_MAX
, 100,
"Stamina"
,
EPSstatsFlags
.EMPTY) );
263
RegisterStat
(
EPlayerStats_v106
.SPECIALTY,
new
PlayerStat<float>
(-1, 1, 0,
"Specialty"
,
EPSstatsFlags
.EMPTY) );
264
RegisterStat
(
EPlayerStats_v106
.BLOODTYPE,
new
PlayerStat<int>
(0, 128,
BloodTypes
.
GenerateBloodType
(),
"BloodType"
,
EPSstatsFlags
.EMPTY) );
265
RegisterStat
(
EPlayerStats_v106
.TOXICITY,
new
PlayerStat<float>
(0, 100, 0,
"Toxicity"
,
EPSstatsFlags
.EMPTY) );
266
}
267
};
268
269
270
enum
EPlayerStats_v115
271
{
272
HEATCOMFORT
= 0,
273
TREMOR
= 1,
274
WET
= 2,
275
ENERGY
= 3,
276
WATER
,
277
DIET
,
278
STAMINA
,
279
SPECIALTY
,
280
BLOODTYPE
,
281
TOXICITY
,
282
HEATBUFFER
,
283
};
284
285
class
PlayerStatsPCO_v115
extends
PlayerStatsPCO_Base
286
{
287
override
int
GetVersion
()
288
{
289
return
115;
290
}
291
292
override
void
Init
()
293
{
294
RegisterStat
(
EPlayerStats_v115
.HEATCOMFORT,
new
PlayerStat<float>
(-1, 1, 0,
"HeatComfort"
,
EPSstatsFlags
.EMPTY) );
295
RegisterStat
(
EPlayerStats_v115
.TREMOR,
new
PlayerStat<float>
(0, 1, 0,
"Tremor"
,
EPSstatsFlags
.EMPTY) );
296
RegisterStat
(
EPlayerStats_v115
.WET,
new
PlayerStat<int>
(0, 1, 0,
"Wet"
,
EPSstatsFlags
.EMPTY) );
297
RegisterStat
(
EPlayerStats_v115
.ENERGY,
new
PlayerStat<float>
(0,
PlayerConstants
.
SL_ENERGY_MAX
, 600,
"Energy"
,
EPSstatsFlags
.EMPTY) );
298
RegisterStat
(
EPlayerStats_v115
.WATER,
new
PlayerStat<float>
(0,
PlayerConstants
.
SL_WATER_MAX
, 600,
"Water"
,
EPSstatsFlags
.EMPTY) );
299
RegisterStat
(
EPlayerStats_v115
.DIET,
new
PlayerStat<float>
(0, 5000, 2500,
"Diet"
,
EPSstatsFlags
.EMPTY) );
300
RegisterStat
(
EPlayerStats_v115
.STAMINA,
new
PlayerStat<float>
(0,
CfgGameplayHandler
.
GetStaminaMax
(), 100,
"Stamina"
,
EPSstatsFlags
.EMPTY) );
301
RegisterStat
(
EPlayerStats_v115
.SPECIALTY,
new
PlayerStat<float>
(-1, 1, 0,
"Specialty"
,
EPSstatsFlags
.EMPTY) );
302
RegisterStat
(
EPlayerStats_v115
.BLOODTYPE,
new
PlayerStat<int>
(0, 128,
BloodTypes
.
GenerateBloodType
(),
"BloodType"
,
EPSstatsFlags
.EMPTY) );
303
RegisterStat
(
EPlayerStats_v115
.TOXICITY,
new
PlayerStat<float>
(0, 100, 0,
"Toxicity"
,
EPSstatsFlags
.EMPTY) );
304
RegisterStat
(
EPlayerStats_v115
.HEATBUFFER,
new
PlayerStat<float>
(-30, 30, 0,
"HeatBuffer"
,
EPSstatsFlags
.SYNCED) );
305
}
306
};
307
308
//---------------------------------------------------------------
309
//------------------------- version current ---------------------
310
//---------------------------------------------------------------
311
312
enum
EPlayerStats_current
:
EPlayerStats_v115
313
{
314
315
};
316
317
//mod this class, it will always point to the latest version
318
class
PlayerStatsPCO_current
extends
PlayerStatsPCO_v115
319
{
320
321
};
WET
@ WET
Definition
entityai.c:5
m_Player
map m_Player
BloodTypes
Definition
bloodtype.c:2
BloodTypes::GenerateBloodType
static int GenerateBloodType()
Definition
bloodtype.c:7
CachedObjectsParams
Definition
utilityclasses.c:10
CachedObjectsParams::PARAM2_INT_FLOAT
static ref Param2< int, float > PARAM2_INT_FLOAT
Definition
utilityclasses.c:17
CfgGameplayHandler
Definition
cfggameplayhandler.c:2
CfgGameplayHandler::GetStaminaMax
static float GetStaminaMax()
Definition
cfggameplayhandler.c:207
GameConstants
Definition
constants.c:664
PCOHandlerStats::PCOHandlerStats
void PCOHandlerStats(Man player)
Definition
playerstatspco.c:8
PCOHandlerStats::RegisterPCO
void RegisterPCO(PlayerStatsPCO_Base pco)
Definition
playerstatspco.c:17
PCOHandlerStats::GetPCO
PlayerStatsPCO_Base GetPCO(int version=-1)
Definition
playerstatspco.c:29
PCOHandlerStats::m_Player
Man m_Player
Definition
playerstatspco.c:6
PCOHandlerStats::m_HighestVersion
int m_HighestVersion
Definition
playerstatspco.c:4
PCOHandlerStats::m_PCOs
ref map< int, ref PlayerStatsPCO_Base > m_PCOs
Definition
playerstatspco.c:3
PlayerConstants
Definition
playerconstants.c:2
PlayerConstants::SL_WATER_MAX
static const float SL_WATER_MAX
Definition
playerconstants.c:50
PlayerConstants::SL_ENERGY_MAX
static const float SL_ENERGY_MAX
Definition
playerconstants.c:44
PlayerStatBase
Definition
playerstatbase.c:2
PlayerStatBase::SetPlayer
void SetPlayer(Man player)
Definition
playerstatbase.c:26
PlayerStatBase::Init
void Init(int id)
PlayerStatBase::OnRPC
void OnRPC(ParamsReadContext ctx)
PlayerStatsPCO_Base
Definition
playerstatspco.c:156
PlayerStatsPCO_Base::PlayerStatsPCO_v100
void PlayerStatsPCO_v100()
Definition
playerstatspco.c:179
PlayerStatsPCO_Base::Init
override void Init()
Definition
playerstatspco.c:163
PlayerStatsPCO_Base::GetVersion
override int GetVersion()
Definition
playerstatspco.c:158
PlayerStatsPCO_v115
Definition
playerstatspco.c:319
Serializer::Read
proto bool Read(void value_in)
array
Result for an object found in CGame.IsBoxCollidingGeometryProxy.
Definition
isboxcollidinggeometryproxyclasses.c:28
map
Definition
cachedequipmentstorage.c:4
ParamsReadContext
Serializer ParamsReadContext
Definition
gameplay.c:15
ParamsWriteContext
Serializer ParamsWriteContext
Definition
gameplay.c:16
WATER
@ WATER
Used by tracing methods. Traceable only with flag TraceFlags.WATER.
Definition
enentity.c:136
GameConstants::STAMINA_MAX
const float STAMINA_MAX
Definition
constants.c:715
PlayerStat
void PlayerStat(T min, T max, T init, string label, int flags)
Definition
playerstatbase.c:43
EPSstatsFlags
EPSstatsFlags
Definition
playerstats.c:2
m_PlayerStats
enum EPSstatsFlags m_PlayerStats
PlayerStatsPCO_Base
void PlayerStatsPCO_Base()
Definition
playerstatspco.c:61
EPlayerStats_v106
EPlayerStats_v106
Definition
playerstatspco.c:234
Get
array< ref PlayerStatBase > Get()
Definition
playerstatspco.c:108
EPlayerStats_v115
EPlayerStats_v115
Definition
playerstatspco.c:271
HEATBUFFER
@ HEATBUFFER
Definition
playerstatspco.c:282
ENERGY
@ ENERGY
Definition
playerstatspco.c:143
BLOODTYPE
@ BLOODTYPE
Definition
playerstatspco.c:151
STAMINA
@ STAMINA
Definition
playerstatspco.c:149
DIET
@ DIET
Definition
playerstatspco.c:148
HEATCOMFORT
@ HEATCOMFORT
Definition
playerstatspco.c:140
TREMOR
@ TREMOR
Definition
playerstatspco.c:141
SPECIALTY
@ SPECIALTY
Definition
playerstatspco.c:150
TOXICITY
@ TOXICITY
Definition
playerstatspco.c:203
EPlayerStats_current
EPlayerStats_current
Definition
playerstatspco.c:313
OnStoreLoad
bool OnStoreLoad(ParamsReadContext ctx)
Definition
playerstatspco.c:97
OnAfterStoreLoad
void OnAfterStoreLoad()
Definition
playerstatspco.c:128
SetPlayer
void SetPlayer(Man player)
Definition
playerstatspco.c:67
EPlayerStats_v101
EPlayerStats_v101
Definition
playerstatspco.c:190
STOMACH_SOLID
@ STOMACH_SOLID
Definition
playerstatspco.c:145
STOMACH_ENERGY
@ STOMACH_ENERGY
Definition
playerstatspco.c:146
STOMACH_WATER
@ STOMACH_WATER
Definition
playerstatspco.c:147
OnRPC
void OnRPC(ParamsReadContext ctx)
Definition
playerstatspco.c:119
EPlayerStats_v100
EPlayerStats_v100
Definition
playerstatspco.c:139
OnStoreSave
void OnStoreSave(ParamsWriteContext ctx)
Definition
playerstatspco.c:91
RegisterStat
void RegisterStat(int id, PlayerStatBase stat)
Definition
playerstatspco.c:84
ResetAllStats
void ResetAllStats()
Definition
playerstatspco.c:113
GetStatObject
PlayerStatBase GetStatObject(int id)
Definition
playerstatspco.c:79
Games
Dayz
scripts
4_world
classes
playerstats
playerstatspco.c
Generated by
1.17.0