Dayz Explorer 1.28.160049
Loading...
Searching...
No Matches
plugindiagmenu.c
Go to the documentation of this file.
2{
78};
79
86
87
88class PluginDiagMenu extends PluginBase
89{
90#ifdef DEVELOPER
91 ref Timer m_Timer;
92 bool m_EnableModifiers = true;
93 bool m_EnableUnlimitedAmmo;
94 bool m_DisableBloodLoss = false;
95 bool m_IsInvincible = false;
96 bool m_ShowCraftingDebugActions = false;
97 bool m_LogPlayerStats = false;
98 bool m_SoftSkillsState = false;
99 bool m_SoftSkillsDebug = false;
100 bool m_GunParticlesState = false;
101 bool m_SoftSkillsModel = false;
102 bool m_BloodyHands = false;
103 bool m_PermanentCrossHair = false;
104 bool m_ToggleHud = false;
105 bool m_ShowingWeaponDebug = false;
106 bool m_AimNoiseEnabled = true;
107 int m_DisplayPlayerInfo = false;
108 bool m_ProceduralRecoilEnabled = true;
109 bool m_EnableQuickRestrain = false;
110 bool m_EnableQuickFishing = false;
111 bool m_StaminaDisabled = false;
112 bool m_EnvironmentStats = false;
113 bool m_DrawCheckerboard = false;
114 bool m_PresenceNotifierDebug = false;
115 bool m_ShowBleedingSources = false;
116 bool m_XboxCursor = true;
117 float m_SpecialtyLevel = 0;
118 float m_LifespanLevel = 0;
119 int m_DayzPlayerDebugMenu = -1;
120 int m_BleedingSourceRequested;
121 int m_HairLevelSelected = 0;
122 int m_TotalHairLevelsAdjusted;
123
124 //string m_HairSelections = "Clipping_GhillieHood, Clipping_grathelm, Clipping_ConstructionHelmet, Clipping_Hockey_hekmet, Clipping_Maska, Clipping_ProtecSkateHelmet2, Clipping_BandanaFace, Clipping_NioshFaceMask, Clipping_NBC_Hood, Clipping_MotoHelmet, Clipping_FireHelmet, Clipping_ushanka, Clipping_TankerHelmet, Clipping_SantasBeard, Clipping_Surgical_mask, Clipping_PumpkinHelmet, Clipping_Balaclava_3holes, Clipping_Balaclava, Clipping_GP5GasMask, Clipping_BoonieHat, Clipping_prison_cap, Clipping_MilitaryBeret_xx, Clipping_Policecap, Clipping_OfficerHat, Clipping_Hat_leather, Clipping_CowboyHat, Clipping_BandanaHead, Clipping_SantasHat, Clipping_FlatCap, Clipping_MxHelmet, Clipping_baseballcap, Clipping_BeanieHat, Clipping_MedicalScrubs_Hat, Clipping_RadarCap, Clipping_ZmijovkaCap, Clipping_HeadTorch, Clipping_pilotka, Clipping_MxHelmet, Clipping_HelmetMich, Clipping_Ssh68Helmet, Clipping_Mich2001, Clipping_Welding_Mask, Clipping_VintageHockeyMask, Clipping_mouth_rags, Clipping_Gasmask";
125 ref map<int,bool> m_HairHidingStateMap;
126 ref TStringArray m_HairSelectionArray;
127 Shape m_VehicleFreeAreaBox;
128
129 override void OnInit()
130 {
131 if( GetGame().IsMultiplayer() && GetGame().IsServer() ) return; //(only client/local)
132
133 //----------------------
134 m_HairHidingStateMap = new map<int,bool>;
135 m_HairSelectionArray = new TStringArray;
136 m_VehicleFreeAreaBox = Debug.DrawBox(Vector(0,0,0), Vector(0,0,0), 0xffffffff);
137
138 g_Game.ConfigGetTextArray("cfgVehicles Head_Default simpleHiddenSelections",m_HairSelectionArray);
139 m_TotalHairLevelsAdjusted = m_HairSelectionArray.Count() - 1;
140 for (int i = 0; i < m_HairSelectionArray.Count(); i++)
141 {
142 m_HairHidingStateMap.Insert(i,1); //all considered "shown" on init
143 }
144
145 //----------------------
146 m_Timer = new Timer();
147
148 m_Timer.Run(0.5, this, "Update", NULL, true);
149
150 //---------------------------------------------------------------
151 // LEVEL 0
152 //---------------------------------------------------------------
153 DiagMenu.RegisterMenu(DiagMenuIDs.DM_SCRIPTS_MENU,"Script", "");
154 //---------------------------------------------------------------
155 // LEVEL 1
156 //---------------------------------------------------------------
157 DiagMenu.RegisterMenu(DiagMenuIDs.DM_BLEEDING_MENU,"Bleeding", "Script");
158 //---------------------------------------------------------------
159 // LEVEL 2
160 //---------------------------------------------------------------
161 DiagMenu.RegisterBool(DiagMenuIDs.DM_SHOW_BLEEDING_SOURCES, "", "Show Bleeding Sources", "Bleeding");
162 DiagMenu.RegisterBool(DiagMenuIDs.DM_DISABLE_BLOOD_LOSS, "", "Disable Blood Loss", "Bleeding");
163 DiagMenu.RegisterRange(DiagMenuIDs.DM_ACTIVATE_SOURCE, "", "Activate Source #", "Bleeding", "1, 32, 0, 1");
164 DiagMenu.RegisterBool(DiagMenuIDs.DM_ACTIVATE_ALL_BS, "", "Activate All Sources", "Bleeding");
165
166 DiagMenu.RegisterBool(DiagMenuIDs.DM_BS_RELOAD, "", "Client Reload", "Bleeding");
167
168 //---------------------------------------------------------------
169 // LEVEL 1
170 //---------------------------------------------------------------
171 DiagMenu.RegisterMenu(DiagMenuIDs.DM_CHEATS_MENU,"Cheats", "Script");
172 //---------------------------------------------------------------
173 // LEVEL 2
174 //---------------------------------------------------------------
175 DiagMenu.RegisterBool(DiagMenuIDs.DM_CHEATS_MODIFIERS_ENABLE, "lalt+2", "Tick Modifiers", "Cheats");
176 DiagMenu.RegisterBool(DiagMenuIDs.DM_CHEATS_INVINCIBILITY, "lalt+1", "Invincibility(IDDQD)", "Cheats");
177 DiagMenu.SetValue(DiagMenuIDs.DM_CHEATS_MODIFIERS_ENABLE, true);
178 DiagMenu.RegisterBool(DiagMenuIDs.DM_CHEATS_PLAYER_INSTAKILL, "", "Kill Player", "Cheats");
179 DiagMenu.RegisterBool(DiagMenuIDs.DM_CHEATS_STAMINA_DISABLE, "", "Disable stamina", "Cheats");
180
181 //---------------------------------------------------------------
182 // LEVEL 1
183 //---------------------------------------------------------------
184 DiagMenu.RegisterMenu(DiagMenuIDs.DM_PLAYER_CRAFTING_MENU,"Crafting", "Script");
185 //---------------------------------------------------------------
186 // LEVEL 2
187 //---------------------------------------------------------------
188 DiagMenu.RegisterBool(DiagMenuIDs.DM_PLAYER_CRAFTING_GENERATE, "", "Generate Cache", "Crafting");
189 DiagMenu.RegisterBool(DiagMenuIDs.DM_PLAYER_CRAFTING_DEBUG_ACTIONS_ENABLE, "", "Debug Insta Crafting", "Crafting");
190 DiagMenu.RegisterBool(DiagMenuIDs.DM_PLAYER_CRAFTING_DUMP, "", "Dump recipes to file", "Crafting");
191
192
193 //---------------------------------------------------------------
194 // LEVEL 1
195 //---------------------------------------------------------------
196 DiagMenu.RegisterMenu(DiagMenuIDs.DM_PLAYER_STATES_MENU,"Player States", "Script");
197 //---------------------------------------------------------------
198 // LEVEL 2
199 //---------------------------------------------------------------
200 DiagMenu.RegisterBool(DiagMenuIDs.DM_PLAYER_SYMPTOMS_SHOW, "lalt+6", "Show States", "Player States");
201
202 //---------------------------------------------------------------
203 // LEVEL 1
204 //---------------------------------------------------------------
205 DiagMenu.RegisterMenu(DiagMenuIDs.DM_TRANSFER_VALUES_MENU, "TransferValues", "Script");
206 //---------------------------------------------------------------
207 // LEVEL 2
208 //---------------------------------------------------------------
209 DiagMenu.RegisterBool(DiagMenuIDs.DM_TRANSFER_VALUES_SHOW, "", "ShowValues", "TransferValues");
210 //---------------------------------------------------------------
211 // LEVEL 1
212 //---------------------------------------------------------------
213 DiagMenu.RegisterMenu(DiagMenuIDs.DM_PLAYER_AGENTS_MENU, "Player Agents", "Script");
214 //---------------------------------------------------------------
215 // LEVEL 2
216 //---------------------------------------------------------------
217 DiagMenu.RegisterBool(DiagMenuIDs.DM_PLAYER_AGENTS_INJECTS_SHOW, "lalt+5", "Allow Inject Actions", "Player Agents");
218 //---------------------------------------------------------------
219 // LEVEL 1
220 //---------------------------------------------------------------
221 DiagMenu.RegisterMenu(DiagMenuIDs.DM_SOFT_SKILLS_MENU, "Soft Skills", "Script");
222 //---------------------------------------------------------------
223 // LEVEL 2
224 //---------------------------------------------------------------
225 DiagMenu.RegisterBool( DiagMenuIDs.DM_SOFT_SKILLS_SHOW_DEBUG, "", "Show Debug", "Soft Skills" );
226 DiagMenu.RegisterBool( DiagMenuIDs.DM_SOFT_SKILLS_TOGGLE_STATE, "", "Enable SoftSkills", "Soft Skills" );
227 DiagMenu.RegisterBool( DiagMenuIDs.DM_SOFT_SKILLS_TOGGLE_MODEL, "", "Enable linear model", "Soft Skills" );
228 DiagMenu.RegisterRange( DiagMenuIDs.DM_SOFT_SKILLS_SPECIALTY_VALUE, "", "Set specialty value", "Soft Skills", "-1, 1, 0, 0.01" );
229 //---------------------------------------------------------------
230 // LEVEL 1
231 //---------------------------------------------------------------
232 DiagMenu.RegisterMenu(DiagMenuIDs.DM_LIFESPAN_MENU, "Lifespan", "Script");
233 //---------------------------------------------------------------
234 // LEVEL 2
235 //---------------------------------------------------------------
236 DiagMenu.RegisterBool( DiagMenuIDs.DM_BLOODY_HANDS, "", "Bloody hands", "Lifespan" );
237 DiagMenu.RegisterRange( DiagMenuIDs.DM_LIFESPAN_PLAYTIME_UPDATE, "", "Playtime in seconds", "Lifespan", "0, 3600, 0, 300" );
238 //---------------------------------------------------------------
239 // LEVEL 1
240 //---------------------------------------------------------------
241 DiagMenu.RegisterMenu(DiagMenuIDs.DM_MISC_SIMULATE, "Simulate script", "Script");
242 //---------------------------------------------------------------
243 // LEVEL 2
244 //---------------------------------------------------------------
245 DiagMenu.RegisterBool(DiagMenuIDs.DM_SIMULATE_INFINITE_LOOP, "", "Simulate infinite loop", "Simulate script");
246 DiagMenu.RegisterBool(DiagMenuIDs.DM_SIMULATE_NULL_POINTER, "", "Simulate null pointer", "Simulate script");
247 DiagMenu.RegisterBool(DiagMenuIDs.DM_SIMULATE_DIVISION_BY_ZERO, "", "Simulate division by 0", "Simulate script");
248 DiagMenu.RegisterBool(DiagMenuIDs.DM_SIMULATE_ERROR_FUNCTION, "", "Simulate Error() function", "Simulate script");
249 //---------------------------------------------------------------
250 // LEVEL 1
251 //---------------------------------------------------------------
252 DiagMenu.RegisterMenu(DiagMenuIDs.DM_MISC_MENU, "Misc", "Script");
253 //---------------------------------------------------------------
254 // LEVEL 2
255 //---------------------------------------------------------------
256 DiagMenu.RegisterBool(DiagMenuIDs.DM_ITEM_DEBUG_ACTIONS_SHOW, "lalt+4", "Item Debug Actions", "Misc");
257 DiagMenu.RegisterBool(DiagMenuIDs.DM_BULLET_IMPACT, "lalt+7", "BulletImpact", "Misc");
258 DiagMenu.RegisterBool(DiagMenuIDs.DM_SHOCK_IMPACT, "lalt+8", "ShockHitEffect", "Misc");
259 DiagMenu.RegisterBool(DiagMenuIDs.DM_PLAYER_STATS_LOG_ENABLE, "", "Log Player Stats", "Misc");
260 DiagMenu.RegisterMenu(DiagMenuIDs.DM_ACTION_TARGETS_MENU, "Action Targets", "Misc");
261 DiagMenu.RegisterBool(DiagMenuIDs.DM_XBOX_CURSOR, "", "XboxCursor", "Misc");
262 DiagMenu.RegisterBool(DiagMenuIDs.DM_PERMANENT_CROSSHAIR, "", "Enable permanent crosshair", "Misc");
263 DiagMenu.RegisterBool(DiagMenuIDs.DM_SHOW_VEHICLE_GETOUT_BOX, "", "Debug transport freespace", "Misc");
264 DiagMenu.RegisterBool(DiagMenuIDs.DM_TOGGLE_HUD, "", "Toggle HUD on/off", "Misc", true);
265 DiagMenu.RegisterRange(DiagMenuIDs.DM_DISPLAY_PLAYER_INFO, "", "Display Player Info", "Misc", "0,2,0,1");
266 DiagMenu.RegisterBool(DiagMenuIDs.DM_ENVIRONMENT_DEBUG_ENABLE, "", "Show Environment stats", "Misc");
267 DiagMenu.RegisterBool(DiagMenuIDs.DM_DRAW_CHECKERBOARD, "", "Draw Checkerboard on screen", "Misc");
268 DiagMenu.RegisterBool(DiagMenuIDs.DM_PRESENCE_NOTIFIER_DBG, "", "Show Presence to AI dbg", "Misc");
269 DiagMenu.RegisterBool(DiagMenuIDs.DM_GO_UNCONSCIOUS, "", "Go Unconscious", "Misc");
270 DiagMenu.RegisterBool(DiagMenuIDs.DM_GO_UNCONSCIOUS_DELAYED, "", "Uncons. in 10sec", "Misc");
271 DiagMenu.RegisterBool(DiagMenuIDs.DM_QUICK_RESTRAIN, "ralt+0", "Quick Restrain", "Misc");
272 DiagMenu.RegisterBool(DiagMenuIDs.DM_QUICK_FISHING, "", "Quick Fishing", "Misc");
273 DiagMenu.RegisterMenu(DiagMenuIDs.DM_HAIR_MENU, "Hair Hiding", "Misc");
274 DiagMenu.RegisterBool(DiagMenuIDs.DM_DISABLE_PERSONAL_LIGHT, "", "Disable Personal Light", "Misc");
275 DiagMenu.RegisterBool(DiagMenuIDs.DM_CAM_SHAKE, "lalt+3", "Simulate Cam Shake", "Misc");
276 DiagMenu.RegisterBool(DiagMenuIDs.DM_HOLOGRAM, "lctrl+h", "Hologram placing debug", "Misc");
277 //---------------------------------------------------------------
278 // LEVEL 3
279 //---------------------------------------------------------------
280 DiagMenu.RegisterBool(DiagMenuIDs.DM_ACTION_TARGETS_NEW, "", "New AT Selection", "Action Targets", true);
281 DiagMenu.RegisterBool(DiagMenuIDs.DM_ACTION_TARGETS_DEBUG, "", "Show Debug", "Action Targets");
282 DiagMenu.RegisterBool(DiagMenuIDs.DM_ACTION_TARGETS_SELPOS_DEBUG, "", "Show selection pos debug", "Action Targets");
283 DiagMenu.RegisterBool(DiagMenuIDs.DM_HAIR_DISPLAY_DEBUG, "", "Display Debug", "Hair Hiding");
284 DiagMenu.RegisterRange(DiagMenuIDs.DM_HAIR_LEVEL, "", "Hair Level#", "Hair Hiding","0,"+m_TotalHairLevelsAdjusted+",0,1");
285 DiagMenu.RegisterBool(DiagMenuIDs.DM_HAIR_LEVEL_HIDE, "", "Toggle Hair Level", "Hair Hiding");
286 DiagMenu.RegisterBool(DiagMenuIDs.DM_HAIR_HIDE_ALL, "", "Hide/Show All", "Hair Hiding");
287
288 //---------------------------------------------------------------
289 // LEVEL 1
290 //---------------------------------------------------------------
291 DiagMenu.RegisterMenu(DiagMenuIDs.DM_MELEE_MENU, "Melee", "Script");
292 //---------------------------------------------------------------
293 // LEVEL 2
294 //---------------------------------------------------------------
295 DiagMenu.RegisterBool(DiagMenuIDs.DM_MELEE_DEBUG_ENABLE, "", "Enable Melee Debug", "Melee");
296 DiagMenu.RegisterBool(DiagMenuIDs.DM_MELEE_SHOW_TARGETS, "", "Show targets", "Melee");
297 DiagMenu.RegisterBool(DiagMenuIDs.DM_MELEE_DRAW_TARGETS, "", "Draw targets", "Melee");
298 DiagMenu.RegisterBool(DiagMenuIDs.DM_MELEE_DRAW_RANGE, "", "Draw range", "Melee");
299 //---------------------------------------------------------------
300 // LEVEL 1
301 //---------------------------------------------------------------
302 DiagMenu.RegisterMenu(DiagMenuIDs.DM_WEAPON_DEBUG_MENU, "Weapon", "Script");
303 //---------------------------------------------------------------
304 // LEVEL 2
305 //---------------------------------------------------------------
306 DiagMenu.RegisterBool( DiagMenuIDs.DM_GUN_PARTICLES, "", "Enable gun particles", "Weapon", true );
307 DiagMenu.RegisterBool(DiagMenuIDs.DM_WEAPON_DEBUG_ENABLE, "", "Show Debug", "Weapon");
308 DiagMenu.RegisterBool(DiagMenuIDs.DM_WEAPON_AIM_NOISE, "", "Weapon Sway", "Weapon");
309 DiagMenu.SetValue(DiagMenuIDs.DM_WEAPON_AIM_NOISE, true);
310 DiagMenu.RegisterBool(DiagMenuIDs.DM_WEAPON_ALLOW_RECOIL, "", "Procedural Recoil", "Weapon");
311 DiagMenu.SetValue(DiagMenuIDs.DM_WEAPON_ALLOW_RECOIL, true);
312 DiagMenu.RegisterBool(DiagMenuIDs.DM_WEAPON_UNLIMITED, "lalt+9", "Unlimited Ammo", "Weapon");
313 }
314
315 void Update(float deltaT)
316 {
317 //---------------------------------------------
318 // every system can handle their own actions locally(within the system itself),
319 // this section is for systems which don't have client side representation,
320 // or don't have their own tick, or for whatever other reason you prefer to put the logic here
321 // PUT ONLY METHOD CALLS HERE, NO CODE !!
322 // PUT ONLY METHOD CALLS HERE, NO CODE !!
323 //---------------------------------------------
324
325 CheckModifiers();//should modifiers be ticking
326 CheckKillPlayer();//should i kill myself ?
327 CheckCraftingDebugActions();
328 CheckItemDebugActions();
329 CheckAgentInjectActions();
330 CheckGenerateRecipeCache();
331 CheckDayzPlayerMenu();
332 CheckSoftSkillsDebug();
333 CheckSoftSkillsState();
334 CheckSoftSkillsModel();
335 CheckGunParticles();
336 CheckSpecialtyLevel();
337 CheckBloodyHands();
338 CheckLifeSpanPlaytimeUpdate();
339 CheckPermanentCrossHairUpdate();
340 CheckToggleHud();
341 CheckShowWeaponDebug();
342 CheckInvincibility();
343 CheckStamina();
344 CheckAimNoise();
345 CheckProceduralRecoil();
346 CheckUnlimitedAmmo();
347 CheckCraftingDump();
348 CheckEnvironmentStats();
349 CheckDisplayMenu();
350 CheckDrawCheckerboard();
351 CheckBulletImpact();
352 CheckShockImpact();
353 CheckPresenceNotifierDebug();
354 CheckGoUnconscious();
355 CheckGoUnconsciousDelayed();
356 CheckSimulateNULLPointer();
357 CheckSimulateDivisionByZero();
358 CheckSimulateInfiniteLoop();
359 CheckSimulateErrorFunction();
360 CheckShowBleedingSources();
361 CheckDisableBloodLoss();
362 CheckActivateAllBS();
363 CheckReloadBS();
364 CheckActivateBleedingSource();
365 CheckQuickRestrain();
366 CheckQuickFishing();
367 CheckHairLevel();
368 CheckHairHide();
369 CheckPersonalLight();
370 CheckCamShake();
371 CheckVehicleGetOutBox();
372
373 }
374 //---------------------------------------------
375 void CheckModifiers()
376 {
377 if( DiagMenu.GetBool(DiagMenuIDs.DM_CHEATS_MODIFIERS_ENABLE) )
378 {
379 if(!m_EnableModifiers)
380 {
381 SendModifiersRPC(true);
382 m_EnableModifiers = true;
383 }
384 }
385 else
386 {
387 if(m_EnableModifiers)
388 {
389 SendModifiersRPC(false);
390 m_EnableModifiers = false;
391 }
392 }
393 }
394 //---------------------------------------------
395 void CheckUnlimitedAmmo()
396 {
397 if( DiagMenu.GetBool(DiagMenuIDs.DM_WEAPON_UNLIMITED) )
398 {
399 if(!m_EnableUnlimitedAmmo)
400 {
401 SendUnlimitedRPC(true);
402 m_EnableUnlimitedAmmo = true;
403 ItemBase.SetDebugActionsMask( ItemBase.GetDebugActionsMask() | DebugActionType.UNLIMITED_AMMO );
404 }
405 }
406 else
407 {
408 if(m_EnableUnlimitedAmmo)
409 {
410 SendUnlimitedRPC(false);
411 m_EnableUnlimitedAmmo = false;
412 ItemBase.SetDebugActionsMask( ItemBase.GetDebugActionsMask() & (~DebugActionType.UNLIMITED_AMMO) );
413 }
414 }
415 }
416 //---------------------------------------------
417 void CheckDisableBloodLoss()
418 {
419 if( DiagMenu.GetBool(DiagMenuIDs.DM_DISABLE_BLOOD_LOSS) )
420 {
421 if(!m_DisableBloodLoss)
422 {
423 SendDisableBloodLossRPC(true);
424 m_DisableBloodLoss = true;
425 }
426 }
427 else
428 {
429 if(m_DisableBloodLoss)
430 {
431 SendDisableBloodLossRPC(false);
432 m_DisableBloodLoss = false;
433 }
434 }
435 }
436 //---------------------------------------------
437 void CheckActivateAllBS()
438 {
439 if( DiagMenu.GetBool(DiagMenuIDs.DM_ACTIVATE_ALL_BS) )
440 {
441 SendActivateAllBSRPC();
442 DiagMenu.SetValue(DiagMenuIDs.DM_ACTIVATE_ALL_BS, false);//to prevent constant RPC calls, switch back to false
443 }
444 }
445 //---------------------------------------------
446 void CheckReloadBS()
447 {
448 if( DiagMenu.GetBool(DiagMenuIDs.DM_BS_RELOAD) )
449 {
450 PlayerBase player = PlayerBase.Cast(GetGame().GetPlayer());
451 if(player && player.GetBleedingManagerRemote())
452 {
453 player.GetBleedingManagerRemote().Reload();
454 }
455 DiagMenu.SetValue(DiagMenuIDs.DM_BS_RELOAD, false);//to prevent constant RPC calls, switch back to false
456 }
457 }
458 //---------------------------------------------
459 void CheckGenerateRecipeCache()
460 {
461 if ( DiagMenu.GetBool(DiagMenuIDs.DM_PLAYER_CRAFTING_GENERATE) )
462 {
463 PluginRecipesManager plugin_recipes_manager;
464 Class.CastTo(plugin_recipes_manager, GetPlugin(PluginRecipesManager));
465 plugin_recipes_manager.CallbackGenerateCache();
466 DiagMenu.SetValue(DiagMenuIDs.DM_PLAYER_CRAFTING_GENERATE, false);
467 }
468 }
469 //---------------------------------------------
470 void CheckShowBleedingSources()
471 {
472 PlayerBase player;
473 if ( DiagMenu.GetBool(DiagMenuIDs.DM_SHOW_BLEEDING_SOURCES) )
474 {
475 if( !m_ShowBleedingSources )
476 {
477 player = PlayerBase.Cast(GetGame().GetPlayer());
478 player.GetBleedingManagerRemote().SetDiag(true);
479 m_ShowBleedingSources = true;
480 }
481 }
482 else
483 {
484 if( m_ShowBleedingSources )
485 {
486 player = PlayerBase.Cast(GetGame().GetPlayer());
487 player.GetBleedingManagerRemote().SetDiag(false);
488 m_ShowBleedingSources = false;
489 }
490 }
491 }
492 //---------------------------------------------
493 void CheckKillPlayer()
494 {
495 if( DiagMenu.GetBool(DiagMenuIDs.DM_CHEATS_PLAYER_INSTAKILL) )
496 {
497 SendKillPlayerRPC();
498 DiagMenu.SetValue(DiagMenuIDs.DM_CHEATS_PLAYER_INSTAKILL, false);//to prevent constant RPC calls, switch back to false
499 }
500 }
501 //---------------------------------------------
502 void CheckGoUnconscious()
503 {
504 if( DiagMenu.GetBool(DiagMenuIDs.DM_GO_UNCONSCIOUS) )
505 {
506 SendGoUnconsciousRPC(false);
507 DiagMenu.SetValue(DiagMenuIDs.DM_GO_UNCONSCIOUS, false);//to prevent constant RPC calls, switch back to false
508 }
509 }
510 //---------------------------------------------
511 void CheckGoUnconsciousDelayed()
512 {
513 if( DiagMenu.GetBool(DiagMenuIDs.DM_GO_UNCONSCIOUS_DELAYED) )
514 {
515 SendGoUnconsciousRPC(true);
516 DiagMenu.SetValue(DiagMenuIDs.DM_GO_UNCONSCIOUS_DELAYED, false);//to prevent constant RPC calls, switch back to false
517 }
518 }
519
520 void CheckHairLevel()
521 {
522 int value = DiagMenu.GetRangeValue(DiagMenuIDs.DM_HAIR_LEVEL);
523 if (value != m_HairLevelSelected)
524 {
525 m_HairLevelSelected = value;
526 //SendSetHairLevelRPC();
527 DiagMenu.SetRangeValue(DiagMenuIDs.DM_HAIR_LEVEL, value);//to prevent constant RPC calls, switch back to false
528 }
529 }
530
531 void CheckHairHide()
532 {
533 int value = DiagMenu.GetBool(DiagMenuIDs.DM_HAIR_LEVEL_HIDE);
534 bool hide_all = DiagMenu.GetBool(DiagMenuIDs.DM_HAIR_HIDE_ALL);
535 if (hide_all)
536 {
537 SendSetHairLevelHideRPC(-1,value);
538 DiagMenu.SetValue(DiagMenuIDs.DM_HAIR_HIDE_ALL, false);//to prevent constant RPC calls, switch back to false
539 }
540 else if (value)
541 {
542 SendSetHairLevelHideRPC(m_HairLevelSelected,value);
543 DiagMenu.SetValue(DiagMenuIDs.DM_HAIR_LEVEL_HIDE, false);//to prevent constant RPC calls, switch back to false
544 }
545 }
546
547 void CheckPersonalLight()
548 {
549 int value = DiagMenu.GetBool(DiagMenuIDs.DM_DISABLE_PERSONAL_LIGHT);
550 PlayerBaseClient.m_PersonalLightDisabledByDebug = value;
551 PlayerBaseClient.UpdatePersonalLight();
552 }
553
554 //---------------------------------------------
555 void CheckItemDebugActions()
556 {
557 if( DiagMenu.GetBool(DiagMenuIDs.DM_ITEM_DEBUG_ACTIONS_SHOW) )
558 {
559 if( (ItemBase.GetDebugActionsMask() & DebugActionType.GENERIC_ACTIONS) == 0 )
560 {
561 int test = ItemBase.GetDebugActionsMask();
562 int mask = (ItemBase.GetDebugActionsMask() | DebugActionType.GENERIC_ACTIONS);
563 ItemBase.SetDebugActionsMask(mask);
564 SendDebugActionsRPC();
565 }
566 }
567 else
568 {
569 if( (ItemBase.GetDebugActionsMask() & DebugActionType.GENERIC_ACTIONS) )
570 {
571 int mask2 = (ItemBase.GetDebugActionsMask() & (~DebugActionType.GENERIC_ACTIONS));
572 ItemBase.SetDebugActionsMask(mask2);
573 SendDebugActionsRPC();
574 }
575 }
576 }
577
578 void CheckBulletImpact()
579 {
580 if( DiagMenu.GetBool(DiagMenuIDs.DM_BULLET_IMPACT) )
581 {
582 PlayerBase pl_player = PlayerBase.Cast(GetGame().GetPlayer() );
583 pl_player.SpawnDamageDealtEffect();
584 DiagMenu.SetValue(DiagMenuIDs.DM_BULLET_IMPACT, false);
585 }
586 else
587 {
588
589 }
590 }
591
592 float tmp = 0.25;
593 void CheckShockImpact()
594 {
595 if( DiagMenu.GetBool(DiagMenuIDs.DM_SHOCK_IMPACT) )
596 {
597 PlayerBase pl_player = PlayerBase.Cast(GetGame().GetPlayer() );
598 if (tmp >= 1.0) tmp = 0.25;
599 pl_player.SpawnShockEffect(tmp);
600 tmp += 0.25;
601 DiagMenu.SetValue(DiagMenuIDs.DM_SHOCK_IMPACT, false);
602 }
603 }
604
605 bool GetXboxCursor()
606 {
607 return DiagMenu.GetBool(DiagMenuIDs.DM_XBOX_CURSOR);
608 }
609
610 //---------------------------------------------
611 void CheckAgentInjectActions()
612 {
613 if( DiagMenu.GetBool(DiagMenuIDs.DM_PLAYER_AGENTS_INJECTS_SHOW) )
614 {
615 if( (ItemBase.GetDebugActionsMask() & DebugActionType.PLAYER_AGENTS) == 0 )
616 {
617 int mask = (ItemBase.GetDebugActionsMask() | DebugActionType.PLAYER_AGENTS);
618 ItemBase.SetDebugActionsMask(mask);
619 SendDebugActionsRPC();
620 }
621 }
622 else
623 {
624 if( ItemBase.GetDebugActionsMask() & DebugActionType.PLAYER_AGENTS )
625 {
626 int mask2 = (ItemBase.GetDebugActionsMask() & (~DebugActionType.PLAYER_AGENTS));
627 ItemBase.SetDebugActionsMask(mask2);
628 SendDebugActionsRPC();
629 }
630 }
631 }
632 //---------------------------------------------
633 /*
634 void CheckAgentInjectActions()
635 {
636 if( DiagMenu.GetBool(DM_PLAYER_AGENTS_INJECTS_SHOW) )
637 {
638 if( !ItemBase.IsShowInjectActions() )
639 {
640 ItemBase.SetShowInjectActions(true);
641 }
642 }
643 else
644 {
645 if( ItemBase.IsShowInjectActions() )
646 {
647 ItemBase.SetShowInjectActions(false);
648 }
649 }
650 }
651 */
652
653 //---------------------------------------------
654 void CheckCraftingDump()
655 {
656 if( DiagMenu.GetBool(DiagMenuIDs.DM_PLAYER_CRAFTING_DUMP) )
657 {
658 PluginRecipesManager plugin_recipes_manager;
659 Class.CastTo(plugin_recipes_manager, GetPlugin(PluginRecipesManager));
660 plugin_recipes_manager.GenerateHumanReadableRecipeList();
661 DiagMenu.SetValue(DiagMenuIDs.DM_PLAYER_CRAFTING_DUMP, false);
662 }
663 }
664 //---------------------------------------------
665
666
667 //---------------------------------------------
668 void CheckCraftingDebugActions()
669 {
670 if( DiagMenu.GetBool(DiagMenuIDs.DM_PLAYER_CRAFTING_DEBUG_ACTIONS_ENABLE) )
671 {
672 if(!m_ShowCraftingDebugActions)
673 {
674 SendDebugCraftingRPC(true);
675 PluginRecipesManager plugin_recipes_manager;
676 Class.CastTo(plugin_recipes_manager, GetPlugin(PluginRecipesManager));
677 plugin_recipes_manager.SetEnableDebugCrafting(true);
678 m_ShowCraftingDebugActions = true;
679 }
680 }
681 else
682 {
683 if(m_ShowCraftingDebugActions)
684 {
685 SendDebugCraftingRPC(false);
686 PluginRecipesManager plugin_recipes_manager2;
687 Class.CastTo(plugin_recipes_manager2, GetPlugin(PluginRecipesManager));
688 plugin_recipes_manager2.SetEnableDebugCrafting(false);
689 m_ShowCraftingDebugActions = false;
690 }
691 }
692 }
693 //---------------------------------------------
694 void CheckInvincibility()
695 {
696 if( DiagMenu.GetBool(DiagMenuIDs.DM_CHEATS_INVINCIBILITY) )
697 {
698 if(!m_IsInvincible)
699 {
700 SendInvincibilityRPC(true);
701 m_IsInvincible = true;
702 }
703 }
704 else
705 {
706 if(m_IsInvincible)
707 {
708 SendInvincibilityRPC(false);
709 m_IsInvincible = false;
710 }
711 }
712 }
713
714 //---------------------------------------------
715 void CheckStamina()
716 {
717 if( DiagMenu.GetBool(DiagMenuIDs.DM_CHEATS_STAMINA_DISABLE) )
718 {
719 if(!m_StaminaDisabled)
720 {
721 m_StaminaDisabled = true;
722 }
723 }
724 else
725 {
726 if(m_StaminaDisabled)
727 {
728 m_StaminaDisabled = false;
729 }
730 }
731 }
732
733 //---------------------------------------------
734 void CheckLogPlayerStats()
735 {
736 if( DiagMenu.GetBool(DiagMenuIDs.DM_PLAYER_STATS_LOG_ENABLE) )
737 {
738 if(!m_LogPlayerStats)
739 {
740 SendLogPlayerStatsRPC(true);
741 m_LogPlayerStats = true;
742 }
743 }
744 else
745 {
746 if(m_LogPlayerStats)
747 {
748 SendLogPlayerStatsRPC(false);
749 m_LogPlayerStats = false;
750 }
751 }
752 }
753
754 //---------------------------------------------
755 void CheckSoftSkillsDebug()
756 {
757 PlayerBase player;
758 SoftSkillManagerDebug m_DebugWindow;
759
760 if( DiagMenu.GetBool( DiagMenuIDs.DM_SOFT_SKILLS_SHOW_DEBUG ) )
761 {
762 if(!m_SoftSkillsDebug)
763 {
764 Class.CastTo(player, GetGame().GetPlayer());
765 player.GetSoftSkillsManager().CreateDebugWindow( true );
766 SoftSkillsShowDebugRPC(true);
767 m_SoftSkillsDebug = true;
768 }
769 }
770 else
771 {
772 if(m_SoftSkillsDebug)
773 {
774 Class.CastTo(player, GetGame().GetPlayer());
775 player.GetSoftSkillsManager().CreateDebugWindow( false );
776 SoftSkillsShowDebugRPC(false);
777 m_SoftSkillsDebug = false;
778 }
779 }
780 }
781
782 //---------------------------------------------
783 void CheckSoftSkillsState()
784 {
785 if( DiagMenu.GetBool( DiagMenuIDs.DM_SOFT_SKILLS_TOGGLE_STATE ) )
786 {
787 if(!m_SoftSkillsState)
788 {
789 SoftSkillsToggleStateRPC(true);
790 m_SoftSkillsState = true;
791 }
792 }
793 else
794 {
795 if(m_SoftSkillsState)
796 {
797 SoftSkillsToggleStateRPC(false);
798 m_SoftSkillsState = false;
799 }
800 }
801 }
802
803 //---------------------------------------------
804 void CheckGunParticles()
805 {
806 if( DiagMenu.GetBool( DiagMenuIDs.DM_GUN_PARTICLES ) )
807 {
808 if(!m_GunParticlesState)
809 {
810 GunParticlesToggleStateRPC(false);
811 m_GunParticlesState = true;
812 }
813 }
814 else
815 {
816 if(m_GunParticlesState)
817 {
818 GunParticlesToggleStateRPC(true);
819 m_GunParticlesState = false;
820 }
821 }
822 }
823
824 //---------------------------------------------
825 void CheckSoftSkillsModel()
826 {
827 if( DiagMenu.GetBool( DiagMenuIDs.DM_SOFT_SKILLS_TOGGLE_MODEL ) )
828 {
829 if(!m_SoftSkillsModel)
830 {
831 SoftSkillsToggleModelRPC(true);
832 m_SoftSkillsModel = true;
833 }
834 }
835 else
836 {
837 if(m_SoftSkillsModel)
838 {
839 SoftSkillsToggleModelRPC(false);
840 m_SoftSkillsModel = false;
841 }
842 }
843 }
844
845 //---------------------------------------------
846 void CheckSpecialtyLevel()
847 {
848 float specialty_value = DiagMenu.GetRangeValue( DiagMenuIDs.DM_SOFT_SKILLS_SPECIALTY_VALUE );
849
850 if( m_SpecialtyLevel != specialty_value )
851 {
852 SoftSkillsSetSpecialtyRPC( specialty_value );
853 m_SpecialtyLevel = specialty_value;
854 }
855 }
856
857 //---------------------------------------------
858 void CheckActivateBleedingSource()
859 {
860 int bleeding_source = DiagMenu.GetRangeValue( DiagMenuIDs.DM_ACTIVATE_SOURCE );
861
862 if( bleeding_source != m_BleedingSourceRequested )
863 {
864 SendActivateBleedingSource(bleeding_source);
865 m_BleedingSourceRequested = bleeding_source;
866 }
867
868 }
869
870 //---------------------------------------------
871 void CheckBloodyHands()
872 {
873 if( DiagMenu.GetBool( DiagMenuIDs.DM_BLOODY_HANDS ) )
874 {
875 if(!m_BloodyHands)
876 {
877 LifespanBloodyHandsRPC(true);
878 m_BloodyHands = true;
879 }
880 }
881 else
882 {
883 if(m_BloodyHands)
884 {
885 LifespanBloodyHandsRPC(false);
886 m_BloodyHands = false;
887 }
888 }
889 }
890
891 //---------------------------------------------
892 void CheckLifeSpanPlaytimeUpdate()
893 {
894 float lifespan_level = DiagMenu.GetRangeValue( DiagMenuIDs.DM_LIFESPAN_PLAYTIME_UPDATE );
895
896 if( m_LifespanLevel != lifespan_level )
897 {
898 LifespanPlaytimeUpdateRPC( lifespan_level );
899 m_LifespanLevel = lifespan_level;
900 }
901 }
902 //---------------------------------------------
903 void CheckPermanentCrossHairUpdate()
904 {
905 PluginPermanentCrossHair crosshair;
906 if( DiagMenu.GetBool( DiagMenuIDs.DM_PERMANENT_CROSSHAIR ) )
907 {
908 if(!m_PermanentCrossHair)
909 {
910 Class.CastTo(crosshair, GetPlugin( PluginPermanentCrossHair ));
911 crosshair.SwitchPermanentCrossHair(true);
912 m_PermanentCrossHair = true;
913 }
914 }
915 else
916 {
917 if(m_PermanentCrossHair)
918 {
919 Class.CastTo(crosshair, GetPlugin( PluginPermanentCrossHair ));
920 crosshair.SwitchPermanentCrossHair(false);
921 m_PermanentCrossHair = false;
922 }
923 }
924 }
925
926 //---------------------------------------------
927 void CheckVehicleGetOutBox()
928 {
929 if ( DiagMenu.GetBool(DiagMenuIDs.DM_SHOW_VEHICLE_GETOUT_BOX ) )
930 {
931 if (m_VehicleFreeAreaBox)
932 {
933 m_VehicleFreeAreaBox.Destroy();
934 m_VehicleFreeAreaBox = null;
935 }
936
937 HumanCommandVehicle hcv = GetGame().GetPlayer().GetCommand_Vehicle();
938 if (!hcv)
939 return;
940 m_VehicleFreeAreaBox = hcv.GetTransport().DebugFreeAreaAtDoor( hcv.GetVehicleSeat() );
941 }
942 else if (m_VehicleFreeAreaBox)
943 {
944 m_VehicleFreeAreaBox.Destroy();
945 m_VehicleFreeAreaBox = null;
946 }
947 }
948
949 //---------------------------------------------
950 void CheckToggleHud()
951 {
952 Hud hud;
953
954 if( DiagMenu.GetBool( DiagMenuIDs.DM_TOGGLE_HUD ) )
955 {
956 if(!m_ToggleHud)
957 {
958 hud = GetGame().GetMission().GetHud();
959 hud.Show( m_ToggleHud );
960 GetGame().GetMission().HideCrosshairVisibility();
961 m_ToggleHud = true;
962 }
963 }
964 else
965 {
966 if(m_ToggleHud)
967 {
968 hud = GetGame().GetMission().GetHud();
969 hud.Show( m_ToggleHud );
970 GetGame().GetMission().RefreshCrosshairVisibility();
971 m_ToggleHud = false;
972 }
973 }
974 }
975
976 //---------------------------------------------
977 void CheckShowWeaponDebug()
978 {
979 PlayerBase player;
980 if( DiagMenu.GetBool( DiagMenuIDs.DM_WEAPON_DEBUG_ENABLE ) )
981 {
982 if(!m_ShowingWeaponDebug)
983 {
984
985 Class.CastTo(player, GetGame().GetPlayer());
986 player.ShowWeaponDebug(true);
987 m_ShowingWeaponDebug = true;
988 }
989 }
990 else
991 {
992 if(m_ShowingWeaponDebug)
993 {
994 Class.CastTo(player, GetGame().GetPlayer());
995 player.ShowWeaponDebug(false);
996 m_ShowingWeaponDebug = false;
997 }
998 }
999 }
1000 //---------------------------------------------
1001 void CheckProceduralRecoil()
1002 {
1003 DayZPlayerImplement player;
1004 if( DiagMenu.GetBool( DiagMenuIDs.DM_WEAPON_ALLOW_RECOIL ) )
1005 {
1006 if(!m_ProceduralRecoilEnabled)
1007 {
1008 //Class.CastTo(player, GetGame().GetPlayer());
1009 //player.GetAimingModel().SetProceduralRecoilEnabled(true);
1010 SendProceduralRecoilRPC(true);
1011 m_ProceduralRecoilEnabled = true;
1012 }
1013 }
1014 else
1015 {
1016 if(m_ProceduralRecoilEnabled)
1017 {
1018 //Class.CastTo(player, GetGame().GetPlayer());
1019 //player.GetAimingModel().SetProceduralRecoilEnabled(false);
1020 SendProceduralRecoilRPC(false);
1021 m_ProceduralRecoilEnabled = false;
1022 }
1023 }
1024 }
1025 //---------------------------------------------
1026 void CheckQuickRestrain()
1027 {
1028
1029 if( DiagMenu.GetBool( DiagMenuIDs.DM_QUICK_RESTRAIN ) )
1030 {
1031 if(!m_EnableQuickRestrain)
1032 {
1033 SendEnableQuickRestrainRPC(true);
1034 m_EnableQuickRestrain = true;
1035 }
1036 }
1037 else
1038 {
1039 if(m_EnableQuickRestrain)
1040 {
1041 SendEnableQuickRestrainRPC(false);
1042 m_EnableQuickRestrain = false;
1043 }
1044 }
1045 }
1046
1047 //---------------------------------------------
1048 void CheckQuickFishing()
1049 {
1050
1051 if ( DiagMenu.GetBool( DiagMenuIDs.DM_QUICK_FISHING ) )
1052 {
1053 if (!m_EnableQuickFishing)
1054 {
1055 SendEnableQuickFishingRPC(true);
1056 m_EnableQuickFishing = true;
1057 }
1058 }
1059 else
1060 {
1061 if (m_EnableQuickFishing)
1062 {
1063 SendEnableQuickFishingRPC(false);
1064 m_EnableQuickFishing = false;
1065 }
1066 }
1067 }
1068
1069 //---------------------------------------------
1070
1071 void CheckCamShake()
1072 {
1073 if( DiagMenu.GetBool( DiagMenuIDs.DM_CAM_SHAKE ) )
1074 {
1075 GetGame().GetPlayer().GetCurrentCamera().SpawnCameraShake(1,1,15,4);
1076 DiagMenu.SetValue(DiagMenuIDs.DM_CAM_SHAKE, false);
1077 }
1078
1079
1080 }
1081 //---------------------------------------------
1082 void CheckAimNoise()
1083 {
1084 DayZPlayerImplement player;
1085 if( DiagMenu.GetBool( DiagMenuIDs.DM_WEAPON_AIM_NOISE ) )
1086 {
1087 if(!m_AimNoiseEnabled)
1088 {
1089
1090 Class.CastTo(player, GetGame().GetPlayer());
1091 player.GetAimingModel().SetAimNoiseAllowed(true);
1092 m_AimNoiseEnabled = true;
1093 }
1094 }
1095 else
1096 {
1097 if(m_AimNoiseEnabled)
1098 {
1099 Class.CastTo(player, GetGame().GetPlayer());
1100 player.GetAimingModel().SetAimNoiseAllowed(false);
1101 m_AimNoiseEnabled = false;
1102 }
1103 }
1104 }
1105
1106 //---------------------------------------------
1107 void CheckDayzPlayerMenu()
1108 {
1109 int actMenuValue = DiagMenu.GetValue(DayZPlayerConstants.DEBUG_SHOWDEBUGPLUGIN);
1110 // Print("Debug Menu:" + actMenuValue.ToString());
1111 if (actMenuValue != m_DayzPlayerDebugMenu)
1112 {
1113 if (g_Plugins != NULL)
1114 {
1116 Class.CastTo(pd, g_Plugins.GetPluginByType(PluginDayzPlayerDebug));
1117 if (pd != NULL)
1118 {
1119 pd.ToggleDebugWindowSetMode(actMenuValue);
1120 //Print("DayzPlayerDebug - switched to:" + actMenuValue.ToString());
1121 }
1122 }
1123 m_DayzPlayerDebugMenu = actMenuValue;
1124 }
1125
1126 }
1127 //---------------------------------------------
1128
1129 void CheckDisplayMenu()
1130 {
1131 PluginRemotePlayerDebugClient plugin_remote_client;
1132 int value = DiagMenu.GetRangeValue( DiagMenuIDs.DM_DISPLAY_PLAYER_INFO );
1133
1134 if( value != 0 )
1135 {
1136 if( m_DisplayPlayerInfo != value )
1137 {
1138 plugin_remote_client = PluginRemotePlayerDebugClient.Cast( GetPlugin(PluginRemotePlayerDebugClient) );
1139 plugin_remote_client.RequestPlayerInfo( PlayerBase.Cast(GetGame().GetPlayer()), value );
1140
1141 m_DisplayPlayerInfo = value;
1142 }
1143 }
1144 else
1145 {
1146 if( m_DisplayPlayerInfo != 0 )
1147 {
1148 plugin_remote_client = PluginRemotePlayerDebugClient.Cast( GetPlugin(PluginRemotePlayerDebugClient) );
1149 plugin_remote_client.RequestPlayerInfo( PlayerBase.Cast(GetGame().GetPlayer()), 0 );
1150
1151 m_DisplayPlayerInfo = 0;
1152 }
1153 }
1154 }
1155
1156 void CheckEnvironmentStats()
1157 {
1158 if(DiagMenu.GetBool(DiagMenuIDs.DM_ENVIRONMENT_DEBUG_ENABLE))
1159 {
1160 if(!m_EnvironmentStats)
1161 m_EnvironmentStats = true;
1162 }
1163 else
1164 {
1165 if(m_EnvironmentStats)
1166 m_EnvironmentStats = false;
1167 }
1168 }
1169
1170 void CheckDrawCheckerboard()
1171 {
1172 if(DiagMenu.GetBool(DiagMenuIDs.DM_DRAW_CHECKERBOARD))
1173 {
1174 if(!m_DrawCheckerboard) m_DrawCheckerboard = true;
1175 }
1176 else
1177 {
1178 if(m_DrawCheckerboard) m_DrawCheckerboard = false;
1179 }
1180 }
1181
1182 void CheckPresenceNotifierDebug()
1183 {
1184 if(DiagMenu.GetBool(DiagMenuIDs.DM_PRESENCE_NOTIFIER_DBG))
1185 {
1186 if(!m_PresenceNotifierDebug) m_PresenceNotifierDebug = true;
1187 }
1188 else
1189 {
1190 if(m_PresenceNotifierDebug) m_PresenceNotifierDebug = false;
1191 }
1192 }
1193
1194 //---------------------------------------------
1195 void CheckSimulateNULLPointer()
1196 {
1197 if( DiagMenu.GetBool(DiagMenuIDs.DM_SIMULATE_NULL_POINTER) )
1198 {
1199 SendSimulateNULLPointer();
1200 DiagMenu.SetValue(DiagMenuIDs.DM_SIMULATE_NULL_POINTER, false);//to prevent constant RPC calls, switch back to false
1201 }
1202 }
1203 //---------------------------------------------
1204 void CheckSimulateDivisionByZero()
1205 {
1206 if( DiagMenu.GetBool(DiagMenuIDs.DM_SIMULATE_DIVISION_BY_ZERO) )
1207 {
1208 SendSimulateDivisionByZero();
1209 DiagMenu.SetValue(DiagMenuIDs.DM_SIMULATE_DIVISION_BY_ZERO, false);//to prevent constant RPC calls, switch back to false
1210 }
1211 }
1212 //---------------------------------------------
1213 void CheckSimulateInfiniteLoop()
1214 {
1215 if( DiagMenu.GetBool(DiagMenuIDs.DM_SIMULATE_INFINITE_LOOP) )
1216 {
1217 SendSimulateInfiniteLoop();
1218 DiagMenu.SetValue(DiagMenuIDs.DM_SIMULATE_INFINITE_LOOP, false);//to prevent constant RPC calls, switch back to false
1219 }
1220 }
1221 //---------------------------------------------
1222 void CheckSimulateErrorFunction()
1223 {
1224 if( DiagMenu.GetBool(DiagMenuIDs.DM_SIMULATE_ERROR_FUNCTION) )
1225 {
1226 SendSimulateErrorFunction();
1227 DiagMenu.SetValue(DiagMenuIDs.DM_SIMULATE_ERROR_FUNCTION, false);//to prevent constant RPC calls, switch back to false
1228 }
1229 }
1230
1231 //---------------------------------------------
1232 void SendDebugActionsRPC()
1233 {
1234 CachedObjectsParams.PARAM1_INT.param1 = ItemBase.GetDebugActionsMask();
1235 if( GetGame() && GetGame().GetPlayer() )
1236 GetGame().RPCSingleParam( GetGame().GetPlayer(),ERPCs.RPC_ITEM_DEBUG_ACTIONS, CachedObjectsParams.PARAM1_INT, true, GetGame().GetPlayer().GetIdentity() );
1237 }
1238
1239 //---------------------------------------------
1240 void SendEnableQuickRestrainRPC(bool enable)
1241 {
1242 CachedObjectsParams.PARAM1_BOOL.param1 = enable;
1243 PlayerBase player = PlayerBase.Cast(GetGame().GetPlayer());
1244 if(player) player.SetQuickRestrain(enable);
1245 if( GetGame() && GetGame().GetPlayer() )
1246 GetGame().RPCSingleParam( GetGame().GetPlayer(),ERPCs.RPC_ENABLE_QUICK_RESTRAIN, CachedObjectsParams.PARAM1_BOOL, true, GetGame().GetPlayer().GetIdentity() );
1247 }
1248
1249 //---------------------------------------------
1250 void SendEnableQuickFishingRPC(bool enable)
1251 {
1252 CachedObjectsParams.PARAM1_BOOL.param1 = enable;
1253 PlayerBase player = PlayerBase.Cast(GetGame().GetPlayer());
1254 if (player) player.SetQuickFishing(enable);
1255 if ( GetGame() && GetGame().GetPlayer() )
1256 GetGame().RPCSingleParam( GetGame().GetPlayer(),ERPCs.RPC_ENABLE_QUICK_FISHING, CachedObjectsParams.PARAM1_BOOL, true, GetGame().GetPlayer().GetIdentity() );
1257 }
1258
1259 //---------------------------------------------
1260 void SendProceduralRecoilRPC(bool enable)
1261 {
1262 CachedObjectsParams.PARAM1_BOOL.param1 = enable;
1263 PlayerBase player = PlayerBase.Cast(GetGame().GetPlayer());
1264 if(player) player.GetAimingModel().SetProceduralRecoilEnabled(enable);
1265 if( GetGame() && GetGame().GetPlayer() )
1266 GetGame().RPCSingleParam( GetGame().GetPlayer(),ERPCs.RPC_WEAPON_PROC_RECOIL, CachedObjectsParams.PARAM1_BOOL, true, GetGame().GetPlayer().GetIdentity() );
1267 }
1268
1269 //---------------------------------------------
1270 void SendActivateAllBSRPC()
1271 {
1272 if(GetGame() && GetGame().GetPlayer())
1273 GetGame().RPCSingleParam( GetGame().GetPlayer(),ERPCs.DEV_ACTIVATE_ALL_BS, NULL, true, GetGame().GetPlayer().GetIdentity() );
1274 }
1275 //---------------------------------------------
1276 void SendKillPlayerRPC()
1277 {
1278 if(GetGame() && GetGame().GetPlayer())
1279 GetGame().RPCSingleParam( GetGame().GetPlayer(),ERPCs.RPC_KILL_PLAYER, NULL, true, GetGame().GetPlayer().GetIdentity() );
1280 }
1281 //---------------------------------------------
1282 void SendInvincibilityRPC(bool enable)
1283 {
1284 CachedObjectsParams.PARAM1_BOOL.param1 = enable;
1285 if(GetGame() && GetGame().GetPlayer())
1286 GetGame().RPCSingleParam( GetGame().GetPlayer(),ERPCs.RPC_ENABLE_INVINCIBILITY, CachedObjectsParams.PARAM1_BOOL, true, GetGame().GetPlayer().GetIdentity() );
1287 }
1288 //---------------------------------------------
1289 void SendLogPlayerStatsRPC(bool enable)
1290 {
1291 CachedObjectsParams.PARAM1_BOOL.param1 = enable;
1292 if(GetGame() && GetGame().GetPlayer())
1293 GetGame().RPCSingleParam( GetGame().GetPlayer(),ERPCs.RPC_LOG_PLAYER_STATS, CachedObjectsParams.PARAM1_BOOL, true, GetGame().GetPlayer().GetIdentity() );
1294 }
1295 //---------------------------------------------
1296 void SendModifiersRPC(bool enable)
1297 {
1298 CachedObjectsParams.PARAM1_BOOL.param1 = enable;
1299 if(GetGame() && GetGame().GetPlayer())
1300 GetGame().RPCSingleParam( GetGame().GetPlayer(),ERPCs.RPC_DISABLE_MODIFIERS, CachedObjectsParams.PARAM1_BOOL, true, GetGame().GetPlayer().GetIdentity() );
1301 }
1302 //---------------------------------------------
1303 void SendUnlimitedRPC(bool enable)
1304 {
1305 CachedObjectsParams.PARAM1_BOOL.param1 = enable;
1306 if(GetGame() && GetGame().GetPlayer())
1307 GetGame().RPCSingleParam( GetGame().GetPlayer(),ERPCs.DEV_RPC_UNLIMITED_AMMO, CachedObjectsParams.PARAM1_BOOL, true, GetGame().GetPlayer().GetIdentity() );
1308 }
1309 //---------------------------------------------
1310 void SendDisableBloodLossRPC(bool enable)
1311 {
1312 CachedObjectsParams.PARAM1_BOOL.param1 = enable;
1313 if(GetGame() && GetGame().GetPlayer())
1314 GetGame().RPCSingleParam( GetGame().GetPlayer(),ERPCs.DEV_RPC_DISABLE_BLOODLOOS, CachedObjectsParams.PARAM1_BOOL, true, GetGame().GetPlayer().GetIdentity() );
1315 }
1316 //---------------------------------------------
1317 void SendDebugCraftingRPC(bool enable)
1318 {
1319 CachedObjectsParams.PARAM1_BOOL.param1 = enable;
1320 if(GetGame() && GetGame().GetPlayer())
1321 GetGame().RPCSingleParam( GetGame().GetPlayer(),ERPCs.RPC_CRAFTING_DEBUG, CachedObjectsParams.PARAM1_BOOL, true, GetGame().GetPlayer().GetIdentity() );
1322 }
1323 //---------------------------------------------
1324 void SoftSkillsShowDebugRPC(bool enable)
1325 {
1326 CachedObjectsParams.PARAM1_BOOL.param1 = enable;
1327 if(GetGame() && GetGame().GetPlayer())
1328 GetGame().RPCSingleParam( GetGame().GetPlayer(),ERPCs.RPC_SOFT_SKILLS_DEBUG_WINDOW, CachedObjectsParams.PARAM1_BOOL, true, GetGame().GetPlayer().GetIdentity() );
1329 }
1330 //---------------------------------------------
1331 void SoftSkillsToggleStateRPC(bool enable)
1332 {
1333 CachedObjectsParams.PARAM1_BOOL.param1 = enable;
1334 if(GetGame() && GetGame().GetPlayer())
1335 GetGame().RPCSingleParam( GetGame().GetPlayer(),ERPCs.RPC_SOFT_SKILLS_TOGGLE_STATE, CachedObjectsParams.PARAM1_BOOL, true, GetGame().GetPlayer().GetIdentity() );
1336 }
1337 //---------------------------------------------
1338 void GunParticlesToggleStateRPC(bool enable)
1339 {
1340 CachedObjectsParams.PARAM1_BOOL.param1 = enable;
1341 if(GetGame() && GetGame().GetPlayer())
1342 GetGame().RPCSingleParam( GetGame().GetPlayer(),ERPCs.RPC_GUN_PARTICLES_TOGGLE, CachedObjectsParams.PARAM1_BOOL, true, GetGame().GetPlayer().GetIdentity() );
1343 }
1344 //---------------------------------------------
1345 void SoftSkillsToggleModelRPC(bool enable)
1346 {
1347 CachedObjectsParams.PARAM1_BOOL.param1 = enable;
1348 if(GetGame() && GetGame().GetPlayer())
1349 GetGame().RPCSingleParam( GetGame().GetPlayer(),ERPCs.RPC_SOFT_SKILLS_TOGGLE_MODEL, CachedObjectsParams.PARAM1_BOOL, true, GetGame().GetPlayer().GetIdentity() );
1350 }
1351 //---------------------------------------------
1352 void SoftSkillsSetSpecialtyRPC( float specialty_value )
1353 {
1354 CachedObjectsParams.PARAM1_FLOAT.param1 = specialty_value;
1355 if(GetGame() && GetGame().GetPlayer())
1356 GetGame().RPCSingleParam( GetGame().GetPlayer(),ERPCs.RPC_SOFT_SKILLS_SET_SPECIALTY, CachedObjectsParams.PARAM1_FLOAT, true, GetGame().GetPlayer().GetIdentity() );
1357 }
1358 //---------------------------------------------
1359 void LifespanBloodyHandsRPC(bool enable)
1360 {
1361 CachedObjectsParams.PARAM1_BOOL.param1 = enable;
1362 if(GetGame() && GetGame().GetPlayer())
1363 GetGame().RPCSingleParam( GetGame().GetPlayer(),ERPCs.RPC_LIFESPAN_BLOODY_HANDS, CachedObjectsParams.PARAM1_BOOL, true, GetGame().GetPlayer().GetIdentity() );
1364 }
1365 //---------------------------------------------
1366 void LifespanPlaytimeUpdateRPC( float playtime )
1367 {
1368 CachedObjectsParams.PARAM1_FLOAT.param1 = playtime;
1369 if(GetGame() && GetGame().GetPlayer())
1370 GetGame().RPCSingleParam( GetGame().GetPlayer(),ERPCs.RPC_LIFESPAN_PLAYTIME_UPDATE, CachedObjectsParams.PARAM1_FLOAT, true, GetGame().GetPlayer().GetIdentity() );
1371 }
1372 //---------------------------------------------
1373 void SendMeleeBlockStanceRPC(bool enable)
1374 {
1375 CachedObjectsParams.PARAM1_BOOL.param1 = enable;
1376 if(GetGame() && GetGame().GetPlayer())
1377 GetGame().RPCSingleParam( GetGame().GetPlayer(),ERPCs.DEV_RPC_MELEE_BLOCK_STANCE, CachedObjectsParams.PARAM1_BOOL, true, GetGame().GetPlayer().GetIdentity() );
1378 }
1379 //---------------------------------------------
1380 void SendMeleeFightRPC(bool enable)
1381 {
1382 CachedObjectsParams.PARAM1_BOOL.param1 = enable;
1383 if(GetGame() && GetGame().GetPlayer())
1384 GetGame().RPCSingleParam( GetGame().GetPlayer(),ERPCs.DEV_RPC_MELEE_FIGHT, CachedObjectsParams.PARAM1_BOOL, true, GetGame().GetPlayer().GetIdentity() );
1385 }
1386 //---------------------------------------------
1387 void SendGoUnconsciousRPC(bool is_delayed)
1388 {
1389 Param1<bool> p1 = new Param1<bool>(is_delayed);
1390 if(GetGame() && GetGame().GetPlayer())
1391 GetGame().RPCSingleParam( GetGame().GetPlayer(),ERPCs.DEV_GO_UNCONSCIOUS, p1, true, GetGame().GetPlayer().GetIdentity() );
1392 }
1393 //---------------------------------------------
1394 void SendSimulateNULLPointer()
1395 {
1396 GetGame().RPCSingleParam( GetGame().GetPlayer(),ERPCs.DEV_SIMULATE_NULL_POINTER, NULL, true, GetGame().GetPlayer().GetIdentity() );
1397 }
1398 //---------------------------------------------
1399 void SendSimulateDivisionByZero()
1400 {
1401 if(GetGame() && GetGame().GetPlayer())
1402 GetGame().RPCSingleParam( GetGame().GetPlayer(),ERPCs.DEV_SIMULATE_DIVISION_BY_ZERO, NULL, true, GetGame().GetPlayer().GetIdentity() );
1403 }
1404 //---------------------------------------------
1405 void SendSimulateInfiniteLoop()
1406 {
1407 if(GetGame() && GetGame().GetPlayer())
1408 GetGame().RPCSingleParam( GetGame().GetPlayer(),ERPCs.DEV_SIMULATE_INFINITE_LOOP, NULL, true, GetGame().GetPlayer().GetIdentity() );
1409 }
1410 //---------------------------------------------
1411 void SendSimulateErrorFunction()
1412 {
1413 if(GetGame() && GetGame().GetPlayer())
1414 GetGame().RPCSingleParam( GetGame().GetPlayer(),ERPCs.DEV_SIMULATE_ERROR_FUNCTION, NULL, true, GetGame().GetPlayer().GetIdentity() );
1415 }
1416
1417 void SendActivateBleedingSource(int bleeding_source)
1418 {
1419 Param1<int> p1 = new Param1<int>(bleeding_source);
1420 if(GetGame() && GetGame().GetPlayer())
1421 GetGame().RPCSingleParam( GetGame().GetPlayer(),ERPCs.DEV_ACTIVATE_BS, p1, true, GetGame().GetPlayer().GetIdentity() );
1422 }
1423 //---------------------------------------------
1424 void SendSetHairLevelRPC()
1425 {
1426 if(GetGame() && GetGame().GetPlayer())
1427 GetGame().RPCSingleParam( GetGame().GetPlayer(),ERPCs.DEV_HAIR_LEVEL, NULL, true, GetGame().GetPlayer().GetIdentity() );
1428 }
1429
1430 void SendSetHairLevelHideRPC(int level, bool value)
1431 {
1432 Param2<int,bool> p2 = new Param2<int,bool>(level,value);
1433 if(GetGame() && GetGame().GetPlayer())
1434 GetGame().RPCSingleParam( GetGame().GetPlayer(),ERPCs.DEV_HAIR_LEVEL_HIDE, p2, true, GetGame().GetPlayer().GetIdentity() );
1435 }
1436
1437 //---------------------------------------------
1438 void OnRPC(PlayerBase player, int rpc_type, ParamsReadContext ctx)
1439 {
1440 if( GetGame().IsMultiplayer() && GetGame().IsServer() )
1441 {
1442 switch(rpc_type)
1443 {
1444 case ERPCs.DEV_SIMULATE_NULL_POINTER:
1445 PlayerBase NULL_player = NULL;
1446 NULL_player.SetHealth("","", -1);
1447 break;
1448
1449 case ERPCs.DEV_SIMULATE_DIVISION_BY_ZERO:
1450 int zero = 0;
1451 int division_by_zero = 1/zero;
1452 break;
1453
1454 case ERPCs.DEV_SIMULATE_INFINITE_LOOP:
1455 while( true )
1456 {
1457 Print("simulated infinite loop");
1458 }
1459 break;
1460
1461 case ERPCs.DEV_SIMULATE_ERROR_FUNCTION:
1462 Error("Simulated error");
1463 break;
1464 }
1465 }
1466
1467 bool enable;
1468
1469 switch(rpc_type)
1470 {
1471 case ERPCs.DEV_ACTIVATE_BS:
1472 ctx.Read(CachedObjectsParams.PARAM1_INT);
1473 player.GetBleedingManagerServer().DebugActivateBleedingSource(CachedObjectsParams.PARAM1_INT.param1);
1474 break;
1475
1476 case ERPCs.DEV_RPC_UNLIMITED_AMMO:
1477 ctx.Read(CachedObjectsParams.PARAM1_BOOL);
1478 enable = CachedObjectsParams.PARAM1_BOOL.param1;
1479 if(enable)
1480 {
1481 ItemBase.SetDebugActionsMask( ItemBase.GetDebugActionsMask() | DebugActionType.UNLIMITED_AMMO );
1482 }
1483 else
1484 {
1485 ItemBase.SetDebugActionsMask( ItemBase.GetDebugActionsMask() & (~DebugActionType.UNLIMITED_AMMO) );
1486 }
1487 break;
1488
1489 case ERPCs.RPC_DISABLE_MODIFIERS:
1490 ctx.Read(CachedObjectsParams.PARAM1_BOOL);
1491 enable = CachedObjectsParams.PARAM1_BOOL.param1;
1492 player.SetModifiers( enable );
1493 break;
1494
1495 case ERPCs.DEV_RPC_DISABLE_BLOODLOOS:
1496 ctx.Read(CachedObjectsParams.PARAM1_BOOL);
1497 player.GetBleedingManagerServer().SetBloodLoss( CachedObjectsParams.PARAM1_BOOL.param1 );
1498 break;
1499
1500 case ERPCs.RPC_KILL_PLAYER:
1501 player.SetHealth("","", -1);
1502 break;
1503
1504 case ERPCs.DEV_ACTIVATE_ALL_BS:
1505 player.GetBleedingManagerServer().ActivateAllBS();
1506 break;
1507
1508 case ERPCs.RPC_ENABLE_INVINCIBILITY:
1509 ctx.Read(CachedObjectsParams.PARAM1_BOOL);
1510 enable = CachedObjectsParams.PARAM1_BOOL.param1;
1511 player.SetAllowDamage(!enable);
1512 break;
1513
1514 case ERPCs.RPC_ITEM_DEBUG_ACTIONS:
1515 ctx.Read(CachedObjectsParams.PARAM1_INT);
1516 int mask = CachedObjectsParams.PARAM1_INT.param1;
1517 ItemBase.SetDebugActionsMask(mask);
1518 break;
1519
1520 case ERPCs.RPC_WEAPON_PROC_RECOIL:
1521 ctx.Read(CachedObjectsParams.PARAM1_BOOL);
1522 enable = CachedObjectsParams.PARAM1_BOOL.param1;
1523 player.GetAimingModel().SetProceduralRecoilEnabled(enable);
1524 break;
1525
1526 case ERPCs.RPC_ENABLE_QUICK_RESTRAIN:
1527 ctx.Read(CachedObjectsParams.PARAM1_BOOL);
1528 enable = CachedObjectsParams.PARAM1_BOOL.param1;
1529 player.SetQuickRestrain(enable);
1530 break;
1531
1532 case ERPCs.RPC_ENABLE_QUICK_FISHING:
1533 ctx.Read(CachedObjectsParams.PARAM1_BOOL);
1534 enable = CachedObjectsParams.PARAM1_BOOL.param1;
1535 player.SetQuickFishing(enable);
1536 break;
1537
1538 case ERPCs.RPC_LOG_PLAYER_STATS:
1539 ctx.Read(CachedObjectsParams.PARAM1_BOOL);
1540 player.GetPlayerStats().SetAllowLogs(CachedObjectsParams.PARAM1_BOOL.param1);
1541 break;
1542
1543 case ERPCs.RPC_SOFT_SKILLS_TOGGLE_STATE:
1544 ctx.Read(CachedObjectsParams.PARAM1_BOOL);
1545 player.GetSoftSkillsManager().SetSoftSkillsState(CachedObjectsParams.PARAM1_BOOL.param1);
1546 break;
1547
1548 case ERPCs.RPC_SOFT_SKILLS_DEBUG_WINDOW:
1549 ctx.Read(CachedObjectsParams.PARAM1_BOOL);
1550 enable = CachedObjectsParams.PARAM1_BOOL.param1;
1551
1552 if( enable )
1553 {
1554 player.GetSoftSkillsManager().StartSynchTimer();
1555 }
1556 else
1557 {
1558 player.GetSoftSkillsManager().StopSynchTimer();
1559 player.GetSoftSkillsManager().ResetDebugWindow();
1560 }
1561
1562 break;
1563
1564 case ERPCs.RPC_GUN_PARTICLES_TOGGLE:
1565 ctx.Read(CachedObjectsParams.PARAM1_BOOL);
1566 PrtTest.m_GunParticlesState = CachedObjectsParams.PARAM1_BOOL.param1;
1567 break;
1568
1569 case ERPCs.RPC_CRAFTING_DEBUG:
1570 ctx.Read(CachedObjectsParams.PARAM1_BOOL);
1571 PluginRecipesManager plugin_recipes_manager;
1572 Class.CastTo(plugin_recipes_manager, GetPlugin(PluginRecipesManager));
1573 plugin_recipes_manager.SetEnableDebugCrafting(CachedObjectsParams.PARAM1_BOOL.param1);
1574 break;
1575
1576 case ERPCs.RPC_SOFT_SKILLS_TOGGLE_MODEL:
1577 ctx.Read(CachedObjectsParams.PARAM1_BOOL);
1578 player.GetSoftSkillsManager().SetLinearState(CachedObjectsParams.PARAM1_BOOL.param1) ;
1579 break;
1580
1581 case ERPCs.RPC_SOFT_SKILLS_SET_SPECIALTY:
1582 ctx.Read( CachedObjectsParams.PARAM1_FLOAT );
1583 float specialty = CachedObjectsParams.PARAM1_FLOAT.param1;
1584 SoftSkillsManager soft_skill_manager = player.GetSoftSkillsManager();
1585 soft_skill_manager.SetSpecialtyLevel( specialty );
1586 soft_skill_manager.SynchSpecialtyLevel();
1587 player.GetStatSpecialty().Set( specialty );
1588 break;
1589
1590 case ERPCs.RPC_LIFESPAN_BLOODY_HANDS:
1591 ctx.Read( CachedObjectsParams.PARAM1_BOOL );
1592 enable = CachedObjectsParams.PARAM1_BOOL.param1;
1593 PluginLifespan lifespan_bloody_hands;
1594 Class.CastTo(lifespan_bloody_hands, GetPlugin( PluginLifespan ));
1595 lifespan_bloody_hands.UpdateBloodyHandsVisibility( player, enable );
1596 break;
1597
1598 case ERPCs.RPC_LIFESPAN_PLAYTIME_UPDATE:
1599 ctx.Read( CachedObjectsParams.PARAM1_FLOAT );
1600 //reset players playtime
1601 float playtime = player.StatGet("playtime");
1602 float opposite_playtime = playtime * ( -1 );
1603 player.StatUpdate("playtime", opposite_playtime );
1604 //set new playtime
1605 float playtime_update = CachedObjectsParams.PARAM1_FLOAT.param1;
1606 player.StatUpdate("playtime", playtime_update );
1607 player.SetLastShavedSeconds( 0 );
1608 //update lifespan
1609 PluginLifespan module_lifespan_update;
1610 Class.CastTo(module_lifespan_update, GetPlugin( PluginLifespan ));
1611 module_lifespan_update.UpdateLifespan( player, true );
1612 module_lifespan_update.ChangeFakePlaytime( player, playtime_update );
1613
1614 break;
1615 case ERPCs.DEV_GO_UNCONSCIOUS:
1616 ctx.Read( CachedObjectsParams.PARAM1_BOOL );
1617 if(!CachedObjectsParams.PARAM1_BOOL.param1)
1618 {
1619 if(player.IsUnconscious())
1620 {
1621 player.SetHealth("","Shock",100);
1622 }
1623 else
1624 {
1625 player.m_UnconsciousEndTime = -60;
1626 player.SetHealth("","Shock",0);
1627 }
1628 }
1629 else
1630 {
1631 GetGame().GetCallQueue(CALL_CATEGORY_GAMEPLAY).CallLater(GoUnconsciousDelayed, 10000, false, new Param1<PlayerBase>(player));
1632 }
1633 //DayZPlayerSyncJunctures.SendPlayerUnconsciousness(player, !player.IsUnconscious() );
1634 break;
1635 case ERPCs.DEV_HAIR_LEVEL_HIDE:
1636 ctx.Read( CachedObjectsParams.PARAM2_INT_INT ); //PARAM2_INT_INT.param2 is BOOL here
1637 player.SetHairLevelToHide(CachedObjectsParams.PARAM2_INT_INT.param1,CachedObjectsParams.PARAM2_INT_INT.param2,true);
1638 player.UpdateHairSelectionVisibility(true);
1639 break;
1640 }
1641 }
1642 // Helper diag functions
1643 void GoUnconsciousDelayed(Param1<PlayerBase> p1)
1644 {
1645 PlayerBase player = p1.param1;
1646 if(player.IsUnconscious())
1647 {
1648 player.SetHealth("","Shock",100);
1649 }
1650 else
1651 {
1652 player.m_UnconsciousEndTime = -60;
1653 player.SetHealth("","Shock",0);
1654 }
1655 }
1656
1657#endif
1658}
Super root of all classes in Enforce script.
Definition enscript.c:11
Definition debug.c:2
Plugin interface for controlling of agent pool system.
Definition pluginbase.c:2
ref Timer m_Timer
void OnRPC(PlayerBase player, int rpc_type, ParamsReadContext ctx)
Serialization general interface. Serializer API works with:
Definition serializer.c:56
void SetSpecialtyLevel(float specialty_level)
override Shape DebugFreeAreaAtDoor(int currentSeat, float maxAllowedObjHeight=0.5, float horizontalExtents=0.5, float playerHeight=1.7)
Definition car.c:136
Result for an object found in CGame.IsBoxCollidingGeometryProxy.
DayZGame g_Game
Definition dayzgame.c:3868
DayZPlayerConstants
defined in C++
Definition dayzplayer.c:602
DiagMenuIDs
Definition ediagmenuids.c:2
ERPCs
Definition erpcs.c:2
proto native CGame GetGame()
void Error(string err)
Messagebox with error message.
Definition endebug.c:90
proto void Print(void var)
Prints content of variable to console/log.
class DiagMenu Shape
don't call destructor directly. Use Destroy() instead
array< string > TStringArray
Definition enscript.c:709
proto native vector Vector(float x, float y, float z)
Vector constructor from components.
void OnInit()
Callback for user defined initialization. Called for all suites during TestHarness....
Definition freezestate.c:81
const int CALL_CATEGORY_GAMEPLAY
Definition tools.c:10
PlayerBase GetPlayer()
void PluginDayzPlayerDebug()
DebugActionType
@ UNLIMITED_AMMO
@ GENERIC_ACTIONS
@ PLAYER_AGENTS
@ DM_QUICK_RESTRAIN
@ DM_CHEATS_PLAYER_INSTAKILL
@ DM_TRANSFER_VALUES_SHOW
@ DM_ACTION_TARGETS_MENU
@ DM_SHOW_VEHICLE_GETOUT_BOX
@ DM_SHOCK_IMPACT
@ DM_MISC_MENU
@ DM_GO_UNCONSCIOUS_DELAYED
@ DM_CHEATS_MENU
@ DM_ACTIVATE_SOURCE
@ DM_HOLOGRAM
@ DM_BLOODY_HANDS
@ DM_MELEE_DRAW_RANGE
@ DM_BS_RELOAD
@ DM_LIFESPAN_PLAYTIME_UPDATE
@ DM_PLAYER_CRAFTING_MENU
@ DM_MELEE_SHOW_TARGETS
@ DM_ITEM_DEBUG_ACTIONS_SHOW
@ DM_BULLET_IMPACT
@ DM_HAIR_DISPLAY_DEBUG
@ DM_GO_UNCONSCIOUS
@ DM_PLAYER_CRAFTING_GENERATE
@ DM_DRAW_CHECKERBOARD
@ DM_CAM_SHAKE
@ DM_PLAYER_AGENTS_INJECTS_SHOW
@ DM_CHEATS_MODIFIERS_ENABLE
@ DM_SHOW_BLEEDING_SOURCES
@ DM_HAIR_LEVEL_HIDE
@ DM_CHEATS_STAMINA_DISABLE
@ DM_ACTION_TARGETS_SELPOS_DEBUG
@ DM_SIMULATE_DIVISION_BY_ZERO
@ DM_ACTION_TARGETS_NEW
@ DM_SOFT_SKILLS_SPECIALTY_VALUE
@ DM_HAIR_LEVEL
@ DM_XBOX_CURSOR
@ DM_MELEE_MENU
@ DM_PLAYER_STATS_LOG_ENABLE
@ DM_SCRIPTS_MENU
@ DM_SIMULATE_ERROR_FUNCTION
@ DM_PLAYER_STATES_MENU
@ DM_DISABLE_BLOOD_LOSS
@ DM_PLAYER_CRAFTING_DEBUG_ACTIONS_ENABLE
@ DM_PLAYER_CRAFTING_DUMP
@ DM_TOGGLE_HUD
@ DM_DISABLE_PERSONAL_LIGHT
@ DM_SIMULATE_INFINITE_LOOP
@ DM_WEAPON_AIM_NOISE
@ DM_PLAYER_SYMPTOMS_SHOW
@ DM_WEAPON_ALLOW_RECOIL
@ DM_HAIR_MENU
@ DM_SOFT_SKILLS_MENU
@ DM_DISPLAY_PLAYER_INFO
@ DM_ENVIRONMENT_DEBUG_ENABLE
@ DM_QUICK_FISHING
@ DM_BLEEDING_MENU
@ DM_WEAPON_UNLIMITED
@ DM_MISC_SIMULATE
@ DM_PRESENCE_NOTIFIER_DBG
@ DM_WEAPON_DEBUG_ENABLE
@ DM_MELEE_DEBUG_ENABLE
@ DM_SOFT_SKILLS_SHOW_DEBUG
@ DM_LIFESPAN_MENU
@ DM_ACTIVATE_ALL_BS
@ DM_SIMULATE_NULL_POINTER
@ DM_SOFT_SKILLS_TOGGLE_MODEL
@ DM_GUN_PARTICLES
@ DM_SOFT_SKILLS_TOGGLE_STATE
@ DM_WEAPON_DEBUG_MENU
@ DM_PERMANENT_CROSSHAIR
@ DM_PLAYER_AGENTS_MENU
@ DM_ACTION_TARGETS_DEBUG
@ DM_MELEE_DRAW_TARGETS
@ DM_HAIR_HIDE_ALL
@ DM_CHEATS_INVINCIBILITY
@ DM_TRANSFER_VALUES_MENU
void PluginLifespan()
ref map< string, ref BloodyHands > m_BloodyHands
PluginBase GetPlugin(typename plugin_type)
class PluginManager g_Plugins
void SoftSkillManagerDebug(SoftSkillsManager softskill_manager)