3 private static string m_Path =
"$mission:cfggameplay.json";
14 private static void ValidateItems()
18 if (!item.ValidateServer())
20 string itemName = item.Type().ToString();
21 itemName.Replace(
"ITEM_",
"");
22 PrintToRPT(
"Validation failed during loading of 'cfggameplay.json' for " + itemName);
29 private static void InitData()
44 static bool LoadData()
50 m_Path =
string.Format(
"dz/worlds/%1/ce/cfggameplay.json", m_Path);
56 if (!
GetGame().IsDedicatedServer())
58 cfgGameplayFileEnabled =
true;
62 if (!cfgGameplayFileEnabled || !
FileExist(m_Path))
71 if (!JsonFileLoader<CfgGameplayJson>.LoadFile(m_Path,
m_Data, errorMessage))
81 static void OnLoaded()
83 GetGame().GetMission().OnGameplayDataHandlerLoad();
84 DayZGame.Cast(
GetGame()).OnGameplayDataHandlerLoad();
88 static void SyncDataSend(notnull Man player)
90 GetGame().RPCSingleParam(player,
ERPCs.RPC_CFG_GAMEPLAY_SYNC,
new Param1<CfgGameplayJson>(
m_Data),
true, player.GetIdentity());
97 GetGame().RPCSingleParam(null,
ERPCs.RPC_CFG_GAMEPLAY_SYNC,
new Param1<CfgGameplayJson>(
m_Data),
true, identity);
104 Param1<CfgGameplayJson> data =
new Param1<CfgGameplayJson>(null);
106 if ( ctx.Read(data) )
112 ErrorEx(
"CfgGameplayHandler - client failed to read incoming data");
129 static bool GetDisablePersonalLight()
131 return m_Data.PlayerData.disablePersonalLight;
136 static int GetLightingConfig()
138 return m_Data.WorldsData.lightingConfig;
143 return m_Data.WorldsData.objectSpawnersArr;
148 return m_Data.WorldsData.environmentMinTemps;
153 return m_Data.WorldsData.environmentMaxTemps;
157 return m_Data.WorldsData.wetnessWeightModifiers;
162 static bool GetDisableBaseDamage()
164 return m_Data.GeneralData.disableBaseDamage;
168 static bool GetDisableContainerDamage()
170 return m_Data.GeneralData.disableContainerDamage;
173 static bool GetDisableRespawnDialog()
175 return m_Data.GeneralData.disableRespawnDialog;
178 static bool GetDisableRespawnInUnconsciousness()
180 return m_Data.GeneralData.disableRespawnInUnconsciousness;
183 static float GetSprintStaminaModifierErc()
185 return m_Data.PlayerData.StaminaData.sprintStaminaModifierErc;
188 static float GetSprintStaminaModifierCro()
190 return m_Data.PlayerData.StaminaData.sprintStaminaModifierCro;
193 static float GetSprintSwimmingStaminaModifier()
195 return m_Data.PlayerData.StaminaData.sprintSwimmingStaminaModifier;
197 static float GetSprintLadderStaminaModifier()
199 return m_Data.PlayerData.StaminaData.sprintLadderStaminaModifier;
202 static float GetStaminaWeightLimitThreshold()
204 return m_Data.PlayerData.StaminaData.staminaWeightLimitThreshold;
207 static float GetStaminaMax()
209 return m_Data.PlayerData.StaminaData.staminaMax;
212 static float GetStaminaKgToStaminaPercentPenalty()
214 return m_Data.PlayerData.StaminaData.staminaKgToStaminaPercentPenalty;
217 static float GetStaminaMinCap()
219 return m_Data.PlayerData.StaminaData.staminaMinCap;
222 static float GetMeleeStaminaModifier()
224 return m_Data.PlayerData.StaminaData.meleeStaminaModifier;
227 static float GetObstacleTraversalStaminaModifier()
229 return m_Data.PlayerData.StaminaData.obstacleTraversalStaminaModifier;
232 static float GetHoldBreathStaminaModifier()
234 return m_Data.PlayerData.StaminaData.holdBreathStaminaModifier;
237 static float GetMovementTimeToStrafeJog()
239 return Math.Max(0.01,
m_Data.PlayerData.MovementData.timeToStrafeJog);
242 static float GetMovementTimeToSprint()
244 return Math.Max(0.01,
m_Data.PlayerData.MovementData.timeToSprint);
247 static float GetMovementTimeToStrafeSprint()
249 return Math.Max(0.01,
m_Data.PlayerData.MovementData.timeToStrafeSprint);
252 static float GetMovementRotationSpeedJog()
254 return Math.Max(0.01,
m_Data.PlayerData.MovementData.rotationSpeedJog);
257 static float GetMovementRotationSpeedSprint()
259 return Math.Max(0.01,
m_Data.PlayerData.MovementData.rotationSpeedSprint);
264 return m_Data.PlayerData.WeaponObstructionData.staticMode;
269 return m_Data.PlayerData.WeaponObstructionData.dynamicMode;
272 static bool GetDisable2dMap()
274 return m_Data.PlayerData.disable2dMap;
277 static bool GetDisableIsCollidingBBoxCheck()
279 return m_Data.BaseBuildingData.HologramData.disableIsCollidingBBoxCheck;
282 static bool GetDisableIsCollidingPlayerCheck()
284 return m_Data.BaseBuildingData.HologramData.disableIsCollidingPlayerCheck;
287 static bool GetDisableIsClippingRoofCheck()
289 return m_Data.BaseBuildingData.HologramData.disableIsClippingRoofCheck;
292 static bool GetDisableIsBaseViableCheck()
294 return m_Data.BaseBuildingData.HologramData.disableIsBaseViableCheck;
297 static bool GetDisableIsInTerrainCheck()
299 return m_Data.BaseBuildingData.HologramData.disableIsInTerrainCheck;
302 static bool GetDisableIsUnderwaterCheck()
304 return m_Data.BaseBuildingData.HologramData.disableIsUnderwaterCheck;
307 static bool GetDisableHeightPlacementCheck()
309 return m_Data.BaseBuildingData.HologramData.disableHeightPlacementCheck;
312 static bool GetDisableIsPlacementPermittedCheck()
314 return m_Data.BaseBuildingData.HologramData.disableIsPlacementPermittedCheck;
317 static bool GetDisableIsCollidingAngleCheck()
319 return m_Data.BaseBuildingData.HologramData.disableIsCollidingAngleCheck;
322 static bool GetDisableIsCollidingGPlotCheck()
324 return m_Data.BaseBuildingData.HologramData.disableIsCollidingGPlotCheck;
327 static bool GetDisableIsCollidingCheck()
329 return m_Data.BaseBuildingData.ConstructionData.disableIsCollidingCheck;
332 static bool GetDisablePerformRoofCheck()
334 return m_Data.BaseBuildingData.ConstructionData.disablePerformRoofCheck;
337 static bool GetDisableDistanceCheck()
339 return m_Data.BaseBuildingData.ConstructionData.disableDistanceCheck;
342 static bool GetDisableColdAreaPlacementCheck()
344 return m_Data.BaseBuildingData.HologramData.disableColdAreaPlacementCheck;
347 static TStringSet GetDisallowedTypesInUnderground()
349 return m_Data.BaseBuildingData.HologramData.disallowedTypesInUnderground;
352 static bool GetHitIndicationOverrideEnabled()
354 return m_Data.UIData.HitIndicationData.hitDirectionOverrideEnabled;
357 static int GetHitIndicationMode()
359 return m_Data.UIData.HitIndicationData.hitDirectionBehaviour;
362 static int GetHitIndicationTypeID()
364 return m_Data.UIData.HitIndicationData.hitDirectionStyle;
367 static int GetHitIndicationIndicatorColor()
369 return m_Data.UIData.HitIndicationData.hitDirectionIndicatorColorStr.HexToInt();
372 static float GetHitIndicationMaxDuration()
374 return m_Data.UIData.HitIndicationData.hitDirectionMaxDuration;
377 static float GetHitIndicationBreakPoint()
379 return m_Data.UIData.HitIndicationData.hitDirectionBreakPointRelative;
382 static float GetHitIndicationScatter()
384 return m_Data.UIData.HitIndicationData.hitDirectionScatter;
387 static bool GetHitIndicationPPEEnabled()
389 return m_Data.UIData.HitIndicationData.hitIndicationPostProcessEnabled;
392 static bool GetUse3DMap()
394 return m_Data.UIData.use3DMap;
397 static float GetShockRefillSpeedConscious()
399 return m_Data.PlayerData.ShockHandlingData.shockRefillSpeedConscious;
402 static float GetShockRefillSpeedUnconscious()
404 return m_Data.PlayerData.ShockHandlingData.shockRefillSpeedUnconscious;
407 static bool GetAllowRefillSpeedModifier()
409 return m_Data.PlayerData.ShockHandlingData.allowRefillSpeedModifier;
413 static bool GetMapIgnoreMapOwnership()
415 return m_Data.MapData.ignoreMapOwnership;
418 static bool GetMapIgnoreNavItemsOwnership()
420 return m_Data.MapData.ignoreNavItemsOwnership;
423 static bool GetMapDisplayPlayerPosition()
425 return m_Data.MapData.displayPlayerPosition;
428 static bool GetMapDisplayNavigationInfo()
430 return m_Data.MapData.displayNavInfo;
433 static float GetStaminaDepletionSpeed()
435 return m_Data.PlayerData.DrowningData.staminaDepletionSpeed;
438 static float GetHealthDepletionSpeed()
440 return m_Data.PlayerData.DrowningData.healthDepletionSpeed;
443 static float GetShockDepletionSpeed()
445 return m_Data.PlayerData.DrowningData.shockDepletionSpeed;
448 static bool GetAllowStaminaAffectInertia()
450 return m_Data.PlayerData.MovementData.allowStaminaAffectInertia;
455 return m_Data.PlayerData.spawnGearPresetFiles;
460 return m_Data.WorldsData.playerRestrictedAreaFiles;
463 static float GetBoatDecayMultiplier()
465 return m_Data.VehicleData.boatDecayMultiplier;