DayZ 1.27
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено
CfgGameplayHandler.c
См. документацию.
2{
3 private static string m_Path = "$mission:cfggameplay.json";
5
7
8 //---------------------------------------------------------------------------------------
9 static void RegisterItem(ITEM_DataBase item)
10 {
11 m_Items.Insert(item);
12 }
13 //---------------------------------------------------------------------------------------
14 private static void ValidateItems()
15 {
16 foreach (ITEM_DataBase item : m_Items)
17 {
18 if (!item.ValidateServer())
19 {
20 string itemName = item.Type().ToString();
21 itemName.Replace("ITEM_", "");
22 PrintToRPT("Validation failed during loading of 'cfggameplay.json' for " + itemName);
23 item.InitServer();
24 }
25 }
26 }
27
28 //---------------------------------------------------------------------------------------
29 private static void InitData()
30 {
31 foreach (ITEM_DataBase item:m_Items)
32 {
33 item.InitServer();
34 }
35 }
36 #ifdef DEVELOPER
37 //---------------------------------------------------------------------------------------
38 static void Output()
39 {
40 Print(m_Items.Count());
41 }
42 #endif
43 //---------------------------------------------------------------------------------------
44 static bool LoadData()
45 {
46 if (!FileExist(m_Path))
47 {
48 m_Path = "";
50 m_Path = string.Format("dz/worlds/%1/ce/cfggameplay.json", m_Path);
51 }
52
53 bool cfgGameplayFileEnabled = GetGame().ServerConfigGetInt( "enableCfgGameplayFile" );
54
55 #ifdef DIAG_DEVELOPER
56 if (!GetGame().IsDedicatedServer())
57 {
58 cfgGameplayFileEnabled = true;
59 }
60 #endif
61
62 if (!cfgGameplayFileEnabled || !FileExist(m_Path))
63 {
64 m_Data.InitServer();//legacy call
65 InitData();
66 OnLoaded();
67 return false;
68 }
69
70 string errorMessage;
71 if (!JsonFileLoader<CfgGameplayJson>.LoadFile(m_Path, m_Data, errorMessage))
72 ErrorEx(errorMessage);
73
75 OnLoaded();
76
77 return true;
78 }
79
80 //---------------------------------------------------------------------------------------
81 static void OnLoaded()
82 {
84 DayZGame.Cast(GetGame()).OnGameplayDataHandlerLoad();
85 }
86
87 //---------------------------------------------------------------------------------------
88 static void SyncDataSend(notnull Man player)
89 {
90 GetGame().RPCSingleParam(player, ERPCs.RPC_CFG_GAMEPLAY_SYNC, new Param1<CfgGameplayJson>(m_Data), true, player.GetIdentity());
91 }
92
93 //---------------------------------------------------------------------------------------
94 static void SyncDataSendEx(notnull PlayerIdentity identity)
95 {
96 //Debug.Log("SyncDataSendEx");
97 GetGame().RPCSingleParam(null, ERPCs.RPC_CFG_GAMEPLAY_SYNC, new Param1<CfgGameplayJson>(m_Data), true, identity);
98 }
99
100 //---------------------------------------------------------------------------------------
101
102 static void OnRPC(Man player, ParamsReadContext ctx)
103 {
104 Param1<CfgGameplayJson> data = new Param1<CfgGameplayJson>(null);
105
106 if ( ctx.Read(data) )
107 {
108 m_Data = data.param1;
109 }
110 else
111 {
112 ErrorEx("CfgGameplayHandler - client failed to read incoming data");
113 }
114 }
115
116
117 // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
121 // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
122
123 //========================
124 // !!! ONLY GETTERS BELLOW
125 //========================
126
127
128 //----------------------------------------------------------------------------------
130 {
131 return m_Data.PlayerData.disablePersonalLight;
132 }
133 //----------------------------------------------------------------------------------
134
135 //------------------------------- WorldsData -----------------------------------
136 static int GetLightingConfig()
137 {
138 return m_Data.WorldsData.lightingConfig;
139 }
140
142 {
143 return m_Data.WorldsData.objectSpawnersArr;
144 }
145
147 {
148 return m_Data.WorldsData.environmentMinTemps;
149 }
150
152 {
153 return m_Data.WorldsData.environmentMaxTemps;
154 }
156 {
157 return m_Data.WorldsData.wetnessWeightModifiers;
158 }
159 //----------------------------------------------------------------------------------
160
161
163 {
164 return m_Data.GeneralData.disableBaseDamage;
165 }
166 //----------------------------------------------------------------------------------
167
169 {
170 return m_Data.GeneralData.disableContainerDamage;
171 }
172 //----------------------------------------------------------------------------------
174 {
175 return m_Data.GeneralData.disableRespawnDialog;
176 }
177 //----------------------------------------------------------------------------------
179 {
180 return m_Data.GeneralData.disableRespawnInUnconsciousness;
181 }
182 //----------------------------------------------------------------------------------
184 {
185 return m_Data.PlayerData.StaminaData.sprintStaminaModifierErc;
186 }
187 //----------------------------------------------------------------------------------
189 {
190 return m_Data.PlayerData.StaminaData.sprintStaminaModifierCro;
191 }
192 //----------------------------------------------------------------------------------
194 {
195 return m_Data.PlayerData.StaminaData.sprintSwimmingStaminaModifier;
196 }//----------------------------------------------------------------------------------
198 {
199 return m_Data.PlayerData.StaminaData.sprintLadderStaminaModifier;
200 }
201 //----------------------------------------------------------------------------------
203 {
204 return m_Data.PlayerData.StaminaData.staminaWeightLimitThreshold;
205 }
206 //----------------------------------------------------------------------------------
207 static float GetStaminaMax()
208 {
209 return m_Data.PlayerData.StaminaData.staminaMax;
210 }
211 //----------------------------------------------------------------------------------
213 {
214 return m_Data.PlayerData.StaminaData.staminaKgToStaminaPercentPenalty;
215 }
216 //----------------------------------------------------------------------------------
217 static float GetStaminaMinCap()
218 {
219 return m_Data.PlayerData.StaminaData.staminaMinCap;
220 }
221 //----------------------------------------------------------------------------------
223 {
224 return m_Data.PlayerData.StaminaData.meleeStaminaModifier;
225 }
226 //----------------------------------------------------------------------------------
228 {
229 return m_Data.PlayerData.StaminaData.obstacleTraversalStaminaModifier;
230 }
231 //----------------------------------------------------------------------------------
233 {
234 return m_Data.PlayerData.StaminaData.holdBreathStaminaModifier;
235 }
236 //----------------------------------------------------------------------------------
238 {
239 return Math.Max(0.01, m_Data.PlayerData.MovementData.timeToStrafeJog);
240 }
241 //----------------------------------------------------------------------------------
243 {
244 return Math.Max(0.01, m_Data.PlayerData.MovementData.timeToSprint);
245 }
246 //----------------------------------------------------------------------------------
248 {
249 return Math.Max(0.01, m_Data.PlayerData.MovementData.timeToStrafeSprint);
250 }
251 //----------------------------------------------------------------------------------
253 {
254 return Math.Max(0.01, m_Data.PlayerData.MovementData.rotationSpeedJog);
255 }
256 //----------------------------------------------------------------------------------
258 {
259 return Math.Max(0.01, m_Data.PlayerData.MovementData.rotationSpeedSprint);
260 }
261 //----------------------------------------------------------------------------------
262 static bool GetDisable2dMap()
263 {
264 return m_Data.PlayerData.disable2dMap;
265 }
266 //----------------------------------------------------------------------------------
268 {
269 return m_Data.BaseBuildingData.HologramData.disableIsCollidingBBoxCheck;
270 }
271 //----------------------------------------------------------------------------------
273 {
274 return m_Data.BaseBuildingData.HologramData.disableIsCollidingPlayerCheck;
275 }
276 //----------------------------------------------------------------------------------
278 {
279 return m_Data.BaseBuildingData.HologramData.disableIsClippingRoofCheck;
280 }
281 //----------------------------------------------------------------------------------
283 {
284 return m_Data.BaseBuildingData.HologramData.disableIsBaseViableCheck;
285 }
286 //----------------------------------------------------------------------------------
288 {
289 return m_Data.BaseBuildingData.HologramData.disableIsInTerrainCheck;
290 }
291 //----------------------------------------------------------------------------------
293 {
294 return m_Data.BaseBuildingData.HologramData.disableIsUnderwaterCheck;
295 }
296 //----------------------------------------------------------------------------------
298 {
299 return m_Data.BaseBuildingData.HologramData.disableHeightPlacementCheck;
300 }
301 //----------------------------------------------------------------------------------
303 {
304 return m_Data.BaseBuildingData.HologramData.disableIsPlacementPermittedCheck;
305 }
306 //----------------------------------------------------------------------------------
308 {
309 return m_Data.BaseBuildingData.HologramData.disableIsCollidingAngleCheck;
310 }
311 //----------------------------------------------------------------------------------
313 {
314 return m_Data.BaseBuildingData.HologramData.disableIsCollidingGPlotCheck;
315 }
316 //----------------------------------------------------------------------------------
318 {
319 return m_Data.BaseBuildingData.ConstructionData.disableIsCollidingCheck;
320 }
321 //----------------------------------------------------------------------------------
323 {
324 return m_Data.BaseBuildingData.ConstructionData.disablePerformRoofCheck;
325 }
326 //----------------------------------------------------------------------------------
328 {
329 return m_Data.BaseBuildingData.ConstructionData.disableDistanceCheck;
330 }
331 //----------------------------------------------------------------------------------
333 {
334 return m_Data.BaseBuildingData.HologramData.disableColdAreaPlacementCheck;
335 }
336 //----------------------------------------------------------------------------------
338 {
339 return m_Data.BaseBuildingData.HologramData.disallowedTypesInUnderground;
340 }
341 //----------------------------------------------------------------------------------
342 static bool GetHitIndicationOverrideEnabled() //TODO - ?
343 {
344 return m_Data.UIData.HitIndicationData.hitDirectionOverrideEnabled;
345 }
346 //----------------------------------------------------------------------------------
348 {
349 return m_Data.UIData.HitIndicationData.hitDirectionBehaviour;
350 }
351 //----------------------------------------------------------------------------------
353 {
354 return m_Data.UIData.HitIndicationData.hitDirectionStyle;
355 }
356 //----------------------------------------------------------------------------------
358 {
359 return m_Data.UIData.HitIndicationData.hitDirectionIndicatorColorStr.HexToInt();
360 }
361 //----------------------------------------------------------------------------------
363 {
364 return m_Data.UIData.HitIndicationData.hitDirectionMaxDuration;
365 }
366 //----------------------------------------------------------------------------------
368 {
369 return m_Data.UIData.HitIndicationData.hitDirectionBreakPointRelative;
370 }
371 //----------------------------------------------------------------------------------
373 {
374 return m_Data.UIData.HitIndicationData.hitDirectionScatter;
375 }
376 //----------------------------------------------------------------------------------
378 {
379 return m_Data.UIData.HitIndicationData.hitIndicationPostProcessEnabled;
380 }
381 //----------------------------------------------------------------------------------
382 static bool GetUse3DMap()
383 {
384 return m_Data.UIData.use3DMap;
385 }
386 //----------------------------------------------------------------------------------
388 {
389 return m_Data.PlayerData.ShockHandlingData.shockRefillSpeedConscious;
390 }
391 //----------------------------------------------------------------------------------
393 {
394 return m_Data.PlayerData.ShockHandlingData.shockRefillSpeedUnconscious;
395 }
396 //----------------------------------------------------------------------------------
398 {
399 return m_Data.PlayerData.ShockHandlingData.allowRefillSpeedModifier;
400 }
401
402 //--- MapData ----------------------------------------------------------------------
404 {
405 return m_Data.MapData.ignoreMapOwnership;
406 }
407 //----------------------------------------------------------------------------------
409 {
410 return m_Data.MapData.ignoreNavItemsOwnership;
411 }
412 //----------------------------------------------------------------------------------
414 {
415 return m_Data.MapData.displayPlayerPosition;
416 }
417 //----------------------------------------------------------------------------------
419 {
420 return m_Data.MapData.displayNavInfo;
421 }
422 //----------------------------------------------------------------------------------
424 {
425 return m_Data.PlayerData.DrowningData.staminaDepletionSpeed;
426 }
427 //----------------------------------------------------------------------------------
429 {
430 return m_Data.PlayerData.DrowningData.healthDepletionSpeed;
431 }
432 //----------------------------------------------------------------------------------
434 {
435 return m_Data.PlayerData.DrowningData.shockDepletionSpeed;
436 }
437 //----------------------------------------------------------------------------------
439 {
440 return m_Data.PlayerData.MovementData.allowStaminaAffectInertia;
441 }
442 //----------------------------------------------------------------------------------
444 {
445 return m_Data.PlayerData.spawnGearPresetFiles;
446 }
447 //----------------------------------------------------------------------------------
449 {
450 return m_Data.WorldsData.playerRestrictedAreaFiles;
451 }
452 //----------------------------------------------------------------------------------
454 {
455 return m_Data.VehicleData.boatDecayMultiplier;
456 }
457}
ERPCs
Определения ERPCs.c:2
proto void GetWorldName(out string world_name)
proto native void RPCSingleParam(Object target, int rpc_type, Param param, bool guaranteed, PlayerIdentity recipient=null)
see CGame.RPC
proto native int ServerConfigGetInt(string name)
Server config parsing. Returns 0 if not found.
proto native Mission GetMission()
static void InitData()
Определения CfgGameplayHandler.c:29
static ref CfgGameplayJson m_Data
Определения CfgGameplayHandler.c:6
static bool GetHitIndicationOverrideEnabled()
Определения CfgGameplayHandler.c:342
static bool GetDisablePersonalLight()
Определения CfgGameplayHandler.c:129
static float GetHoldBreathStaminaModifier()
Определения CfgGameplayHandler.c:232
static float GetSprintLadderStaminaModifier()
Определения CfgGameplayHandler.c:197
static bool GetUse3DMap()
Определения CfgGameplayHandler.c:382
static bool GetDisable2dMap()
Определения CfgGameplayHandler.c:262
static void OnLoaded()
Определения CfgGameplayHandler.c:81
static void RegisterItem(ITEM_DataBase item)
Определения CfgGameplayHandler.c:9
static float GetMovementTimeToStrafeSprint()
Определения CfgGameplayHandler.c:247
static string m_Path
Определения CfgGameplayHandler.c:3
static int GetHitIndicationIndicatorColor()
Определения CfgGameplayHandler.c:357
static TStringArray GetObjectSpawnersArr()
Определения CfgGameplayHandler.c:141
static float GetShockRefillSpeedUnconscious()
Определения CfgGameplayHandler.c:392
static bool GetAllowRefillSpeedModifier()
Определения CfgGameplayHandler.c:397
static TStringArray GetPlayerRestrictedAreaFiles()
Определения CfgGameplayHandler.c:448
static bool GetDisableIsInTerrainCheck()
Определения CfgGameplayHandler.c:287
static bool GetDisablePerformRoofCheck()
Определения CfgGameplayHandler.c:322
static array< float > GetEnvironmentMaxTemps()
Определения CfgGameplayHandler.c:151
static float GetMovementTimeToSprint()
Определения CfgGameplayHandler.c:242
static int GetLightingConfig()
Определения CfgGameplayHandler.c:136
static bool GetDisableIsClippingRoofCheck()
Определения CfgGameplayHandler.c:277
static float GetStaminaKgToStaminaPercentPenalty()
Определения CfgGameplayHandler.c:212
static float GetMovementTimeToStrafeJog()
Определения CfgGameplayHandler.c:237
static bool GetDisableBaseDamage()
Определения CfgGameplayHandler.c:162
static int GetHitIndicationMode()
Определения CfgGameplayHandler.c:347
static bool GetDisableIsUnderwaterCheck()
Определения CfgGameplayHandler.c:292
static void OnRPC(Man player, ParamsReadContext ctx)
Определения CfgGameplayHandler.c:102
static bool GetDisableColdAreaPlacementCheck()
Определения CfgGameplayHandler.c:332
static bool GetDisableIsCollidingBBoxCheck()
Определения CfgGameplayHandler.c:267
static float GetShockDepletionSpeed()
Определения CfgGameplayHandler.c:433
static bool GetAllowStaminaAffectInertia()
Определения CfgGameplayHandler.c:438
static void ValidateItems()
Определения CfgGameplayHandler.c:14
static float GetStaminaMinCap()
Определения CfgGameplayHandler.c:217
static float GetSprintStaminaModifierCro()
Определения CfgGameplayHandler.c:188
static float GetSprintStaminaModifierErc()
Определения CfgGameplayHandler.c:183
static bool GetDisableRespawnInUnconsciousness()
Определения CfgGameplayHandler.c:178
static bool GetDisableHeightPlacementCheck()
Определения CfgGameplayHandler.c:297
static bool GetHitIndicationPPEEnabled()
Определения CfgGameplayHandler.c:377
static bool LoadData()
Определения CfgGameplayHandler.c:44
static float GetHealthDepletionSpeed()
Определения CfgGameplayHandler.c:428
static float GetObstacleTraversalStaminaModifier()
Определения CfgGameplayHandler.c:227
static bool GetDisableIsPlacementPermittedCheck()
Определения CfgGameplayHandler.c:302
static float GetHitIndicationMaxDuration()
Определения CfgGameplayHandler.c:362
static bool GetMapDisplayPlayerPosition()
Определения CfgGameplayHandler.c:413
static bool GetMapDisplayNavigationInfo()
Определения CfgGameplayHandler.c:418
static float GetStaminaMax()
Определения CfgGameplayHandler.c:207
static TStringSet GetDisallowedTypesInUnderground()
Определения CfgGameplayHandler.c:337
static bool GetDisableDistanceCheck()
Определения CfgGameplayHandler.c:327
static int GetHitIndicationTypeID()
Определения CfgGameplayHandler.c:352
static TStringArray GetPlayerSpawnGearPresetFiles()
Определения CfgGameplayHandler.c:443
static bool GetDisableIsCollidingPlayerCheck()
Определения CfgGameplayHandler.c:272
static ref array< ref ITEM_DataBase > m_Items
Определения CfgGameplayHandler.c:4
static bool GetDisableContainerDamage()
Определения CfgGameplayHandler.c:168
static float GetMovementRotationSpeedJog()
Определения CfgGameplayHandler.c:252
static float GetMeleeStaminaModifier()
Определения CfgGameplayHandler.c:222
static bool GetDisableIsCollidingGPlotCheck()
Определения CfgGameplayHandler.c:312
static bool GetDisableRespawnDialog()
Определения CfgGameplayHandler.c:173
static float GetStaminaDepletionSpeed()
Определения CfgGameplayHandler.c:423
static bool GetDisableIsCollidingAngleCheck()
Определения CfgGameplayHandler.c:307
static bool GetMapIgnoreMapOwnership()
Определения CfgGameplayHandler.c:403
static float GetSprintSwimmingStaminaModifier()
Определения CfgGameplayHandler.c:193
static float GetMovementRotationSpeedSprint()
Определения CfgGameplayHandler.c:257
static bool GetMapIgnoreNavItemsOwnership()
Определения CfgGameplayHandler.c:408
static bool GetDisableIsCollidingCheck()
Определения CfgGameplayHandler.c:317
static float GetBoatDecayMultiplier()
Определения CfgGameplayHandler.c:453
static array< float > GetEnvironmentMinTemps()
Определения CfgGameplayHandler.c:146
static float GetStaminaWeightLimitThreshold()
Определения CfgGameplayHandler.c:202
static bool GetDisableIsBaseViableCheck()
Определения CfgGameplayHandler.c:282
static float GetHitIndicationBreakPoint()
Определения CfgGameplayHandler.c:367
static array< float > GetWetnessWeightModifiers()
Определения CfgGameplayHandler.c:155
static float GetShockRefillSpeedConscious()
Определения CfgGameplayHandler.c:387
static void SyncDataSendEx(notnull PlayerIdentity identity)
Определения CfgGameplayHandler.c:94
static void SyncDataSend(notnull Man player)
Определения CfgGameplayHandler.c:88
static float GetHitIndicationScatter()
Определения CfgGameplayHandler.c:372
contents of this class will be transfered to client upon connecting, with the variables in either ini...
Определения CfgGameplayDataJson.c:3
Определения EnMath.c:7
void OnGameplayDataHandlerLoad()
Определения gameplay.c:719
The class that will be instanced (moddable)
Определения gameplay.c:389
proto bool Read(void value_in)
Result for an object found in CGame.IsBoxCollidingGeometryProxy.
Serializer ParamsReadContext
Определения gameplay.c:15
proto native CGame GetGame()
proto void Print(void var)
Prints content of variable to console/log.
proto void PrintToRPT(void var)
Prints content of variable to RPT file (performance warning - each write means fflush!...
enum ShapeType ErrorEx
array< string > TStringArray
Определения EnScript.c:685
set< string > TStringSet
Определения EnScript.c:775
proto bool FileExist(string name)
Check existence of file.
static proto float Max(float x, float y)
Returns bigger of two given values.
proto int Replace(string sample, string replace)
Replace all occurrances of 'sample' in 'str' by 'replace'.