DayZ 1.27
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено
PlayerStatsPCO.c
См. документацию.
2{
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
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
58{
59 protected Man m_Player;
60
62 {
63 }
64
65 void Init();
66
67 void SetPlayer(Man player)
68 {
69 m_Player = player;
70 }
71
73 {
74 return -1;
75 }
76
78
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
92 {
93 foreach (PlayerStatBase playerStat : m_PlayerStats)
94 playerStat.OnStoreSave(ctx);
95 }
96
98 {
99 foreach (PlayerStatBase playerStat : m_PlayerStats)
100 {
101 if (!playerStat.OnStoreLoad(ctx))
102 return false;
103 }
104
105 return true;
106 }
107
109 {
110 return m_PlayerStats;
111 }
112
114 {
115 m_PlayerStats.Clear();
116 Init();
117 }
118
120 {
121 ParamsReadContext localContext = ctx;
123
125 playerStat.OnRPC(ctx);
126 }
127
129 {
130 foreach (PlayerStatBase playerStat : m_PlayerStats)
131 playerStat.OnAfterStoreLoad();
132 }
133}
134
135//---------------------------------------------------------------
136//------------------------- version 100 -------------------------
137//---------------------------------------------------------------
153
154
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) );
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
180 {
181
182 }
183
184};
185//---------------------------------------------------------------
186//------------------------- version 101 -------------------------
187//---------------------------------------------------------------
188
190{
192 TREMOR,
193 WET,
194 ENERGY,
195 WATER,
199 DIET,
200 STAMINA,
201 SPECIALTY,
202 BLOODTYPE,
204};
205
206
207class 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) );
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
234{
236 TREMOR,
237 WET,
238 ENERGY,
239 WATER,
240 DIET,
241 STAMINA,
242 SPECIALTY,
243 BLOODTYPE,
244 TOXICITY,
245};
246
247class 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) );
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
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,
283};
284
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) );
299 RegisterStat(EPlayerStats_v115.DIET, new PlayerStat<float> (0, 5000, 2500, "Diet", 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
316
317//mod this class, it will always point to the latest version
318class PlayerStatsPCO_current extends PlayerStatsPCO_v115
319{
320
321};
@ WET
Определения EntityAI.c:5
map
Определения ControlsXboxNew.c:4
DayZPlayer m_Player
Определения Hand_Events.c:42
void PlayerStat(T min, T max, T init, string label, int flags)
Определения PlayerStatBase.c:43
EPSstatsFlags
Определения PlayerStats.c:2
enum EPSstatsFlags m_PlayerStats
void PlayerStatsPCO_Base()
Определения PlayerStatsPCO.c:61
EPlayerStats_v106
Определения PlayerStatsPCO.c:234
array< ref PlayerStatBase > Get()
Определения PlayerStatsPCO.c:108
EPlayerStats_v115
Определения PlayerStatsPCO.c:271
@ HEATBUFFER
Определения PlayerStatsPCO.c:282
@ ENERGY
Определения PlayerStatsPCO.c:143
@ BLOODTYPE
Определения PlayerStatsPCO.c:151
@ STAMINA
Определения PlayerStatsPCO.c:149
@ DIET
Определения PlayerStatsPCO.c:148
@ HEATCOMFORT
Определения PlayerStatsPCO.c:140
@ TREMOR
Определения PlayerStatsPCO.c:141
@ SPECIALTY
Определения PlayerStatsPCO.c:150
@ TOXICITY
Определения PlayerStatsPCO.c:203
EPlayerStats_current
Определения PlayerStatsPCO.c:313
bool OnStoreLoad(ParamsReadContext ctx)
Определения PlayerStatsPCO.c:97
void OnAfterStoreLoad()
Определения PlayerStatsPCO.c:128
void SetPlayer(Man player)
Определения PlayerStatsPCO.c:67
EPlayerStats_v101
Определения PlayerStatsPCO.c:190
@ STOMACH_SOLID
Определения PlayerStatsPCO.c:145
@ STOMACH_ENERGY
Определения PlayerStatsPCO.c:146
@ STOMACH_WATER
Определения PlayerStatsPCO.c:147
void OnRPC(ParamsReadContext ctx)
Определения PlayerStatsPCO.c:119
EPlayerStats_v100
Определения PlayerStatsPCO.c:139
void OnStoreSave(ParamsWriteContext ctx)
Определения PlayerStatsPCO.c:91
void RegisterStat(int id, PlayerStatBase stat)
Определения PlayerStatsPCO.c:84
void ResetAllStats()
Определения PlayerStatsPCO.c:113
PlayerStatBase GetStatObject(int id)
Определения PlayerStatsPCO.c:79
static int GenerateBloodType()
Определения BloodType.c:7
Определения BloodType.c:2
static ref Param2< int, float > PARAM2_INT_FLOAT
Определения UtilityClasses.c:17
static float GetStaminaMax()
Определения CfgGameplayHandler.c:207
Определения constants.c:659
void PCOHandlerStats(Man player)
Определения PlayerStatsPCO.c:8
ref map< int, ref PlayerStatsPCO_Base > m_PCOs
Определения PlayerStatsPCO.c:3
Man m_Player
Определения PlayerStatsPCO.c:6
PlayerStatsPCO_Base GetPCO(int version=-1)
Определения PlayerStatsPCO.c:29
int m_HighestVersion
Определения PlayerStatsPCO.c:4
void RegisterPCO(PlayerStatsPCO_Base pco)
Определения PlayerStatsPCO.c:17
static const float SL_ENERGY_MAX
Определения PlayerConstants.c:44
static const float SL_WATER_MAX
Определения PlayerConstants.c:50
Определения PlayerConstants.c:2
void SetPlayer(Man player)
Определения PlayerStatBase.c:26
void Init(int id)
void OnRPC(ParamsReadContext ctx)
Определения PlayerStatBase.c:2
override void Init()
Определения PlayerStatsPCO.c:163
override int GetVersion()
Определения PlayerStatsPCO.c:158
void PlayerStatsPCO_v100()
Определения PlayerStatsPCO.c:179
proto bool Read(void value_in)
Result for an object found in CGame.IsBoxCollidingGeometryProxy.
Serializer ParamsReadContext
Определения gameplay.c:15
Serializer ParamsWriteContext
Определения gameplay.c:16
@ WATER
Used by tracing methods. Traceable only with flag TraceFlags.WATER.
Определения EnEntity.c:136
const float STAMINA_MAX
Определения constants.c:710