Dayz Build 1.29.163047, Scripts Rev. 123548
Dayz Code Explorer by Zeroy
Loading...
Searching...
No Matches
plugindiagmenu.c
Go to the documentation of this file.
1// For modding, see PluginDiagMenuModding.c
2// !!! MODDING DISCLAIMER: These are debug functionality files, if you are thinking about modding the vanilla ones, do so at your own risk
3// These files will not be maintained with the thought of "what if a modder modded this" (Excluding the modding functionality of course)
4// Which is why the modding functionality was developed with the thought of the modded ones having their own isolated safe space
5
12
13#ifdef DIAG_DEVELOPER
14enum ESubscriberSystems
15{
16 TRIGGERS = 0x00000001,
17 //SYSTEM2 = 0x00000002,
18 //SYSTEM3 = 0x00000004,
19 //SYSTEM4 = 0x00000008,
20}
21
22typedef Param1<int> SendDiagRPCSelfBasicParam;
23typedef Param2<int,Param> SendDiagRPCSelfParamParam;
24
25typedef Param2<int,bool> SendDiagRPCBasicParam;
26typedef Param3<int,bool,Param> SendDiagRPCParamParam;
27#endif
28
30{
31#ifdef DIAG_DEVELOPER
32
33 int m_ModdedDiagID = DiagMenuIDs.MODDED_MENU;
34
35 // LEVEL 3 - Script > Misc > Hair Hiding
36 ref map<int,bool> m_HairHidingStateMap;
37 ref TStringArray m_HairSelectionArray;
38 int m_TotalHairLevelsAdjusted;
39
40 override void OnInit()
41 {
42 //----------------------
43 m_HairHidingStateMap = new map<int,bool>;
44 m_HairSelectionArray = new TStringArray;
45
46 g_Game.ConfigGetTextArray("cfgVehicles Head_Default simpleHiddenSelections", m_HairSelectionArray);
47 m_TotalHairLevelsAdjusted = m_HairSelectionArray.Count() - 1;
48 for (int i = 0; i < m_HairSelectionArray.Count(); ++i)
49 {
50 m_HairHidingStateMap.Insert(i, 1); //all considered "shown" on init
51 }
52
53 //----------------------
54
56
57 RegisterDiags();
58 }
59
60 override void OnDestroy()
61 {
63 }
64
65 protected void RegisterDiags()
66 {
67 RegisterDeveloperDiags();
68 RegisterModdedDiagsIDs();
69 RegisterModdedDiags();
70
71 if (m_ModdedDiagID == DiagMenuIDs.MODDED_MENU)
72 {
73 DiagMenu.Unregister(DiagMenuIDs.MODDED_MENU);
74 }
75 }
76
77 private void RegisterDeveloperDiags()
78 {
79 //---------------------------------------------------------------
80 // LEVEL 0
81 //---------------------------------------------------------------
82 DiagMenu.RegisterMenu(DiagMenuIDs.SCRIPTS_MENU, "Script", -1);
83 {
84 //---------------------------------------------------------------
85 // LEVEL 1 - Script
86 //---------------------------------------------------------------
87 DiagMenu.RegisterMenu(DiagMenuIDs.VEHICLES, "Vehicles", DiagMenuIDs.SCRIPTS_MENU);
88 {
89 //---------------------------------------------------------------
90 // LEVEL 2 - Script > Vehicles
91 //---------------------------------------------------------------
92 DiagMenu.RegisterItem(DiagMenuIDs.VEHICLE_DEBUG_OUTPUT, "", "Crash Log", DiagMenuIDs.VEHICLES, "None, Basic, Extended, Contact, Basic+Contact");
93 DiagMenu.RegisterBool(DiagMenuIDs.VEHICLE_DUMP_CRASH_DATA, "lalt+7", "Dump Crash Data", DiagMenuIDs.VEHICLES);
94 DiagMenu.RegisterBool(DiagMenuIDs.VEHICLE_DRAW_FLIP_CONTEXT, "", "Draw Flip Context", DiagMenuIDs.VEHICLES);
95 }
96
97 //---------------------------------------------------------------
98 // LEVEL 1 - Script
99 //---------------------------------------------------------------
100 DiagMenu.RegisterMenu(DiagMenuIDs.INVENTORY_MENU, "Inventory", DiagMenuIDs.SCRIPTS_MENU);
101 {
102 //---------------------------------------------------------------
103 // LEVEL 2 - Script > Inventory
104 //---------------------------------------------------------------
105 DiagMenu.RegisterBool(DiagMenuIDs.INVENTORY_ENTITY_PLACEMENT_CALLBACK_DEBUG, "", "Placement Debug", DiagMenuIDs.INVENTORY_MENU);
106 DiagMenu.RegisterBool(DiagMenuIDs.INVENTORY_USE_ACK_MOVE_HANDS, "", "Hands use ack for move", DiagMenuIDs.INVENTORY_MENU);
107 DiagMenu.RegisterBool(DiagMenuIDs.INVENTORY_ENABLE_DESYNC_REPAIR, "", "Enable desync repair", DiagMenuIDs.INVENTORY_MENU);
108 DiagMenu.SetValue(DiagMenuIDs.INVENTORY_ENABLE_DESYNC_REPAIR, true);
109
110 }
111
112 //---------------------------------------------------------------
113 // LEVEL 1 - Script
114 //---------------------------------------------------------------
115 DiagMenu.RegisterMenu(DiagMenuIDs.TRANSFER_VALUES_MENU, "TransferValues", DiagMenuIDs.SCRIPTS_MENU);
116 {
117 //---------------------------------------------------------------
118 // LEVEL 2 - Script > TransferValues
119 //---------------------------------------------------------------
120 DiagMenu.RegisterBool(DiagMenuIDs.TRANSFER_VALUES_SHOW, "", "ShowValues", DiagMenuIDs.TRANSFER_VALUES_MENU);
121 }
122
123 //---------------------------------------------------------------
124 // LEVEL 1 - Script
125 //---------------------------------------------------------------
126 DiagMenu.RegisterMenu(DiagMenuIDs.CRAFTING_MENU, "Crafting", DiagMenuIDs.SCRIPTS_MENU);
127 {
128 //---------------------------------------------------------------
129 // LEVEL 2 - Script > Crafting
130 //---------------------------------------------------------------
131 DiagMenu.RegisterBool(DiagMenuIDs.CRAFTING_GENERATE, "", "Generate Cache", DiagMenuIDs.CRAFTING_MENU);
132 DiagMenu.RegisterBool(DiagMenuIDs.CRAFTING_INSTANT, "", "Debug Insta Crafting", DiagMenuIDs.CRAFTING_MENU);
133 DiagMenu.RegisterBool(DiagMenuIDs.CRAFTING_DUMP, "", "Dump recipes to file", DiagMenuIDs.CRAFTING_MENU);
134 }
135
136 //---------------------------------------------------------------
137 // LEVEL 1 - Script
138 //---------------------------------------------------------------
139 DiagMenu.RegisterMenu(DiagMenuIDs.CHEATS_MENU, "Cheats", DiagMenuIDs.SCRIPTS_MENU);
140 {
141 //---------------------------------------------------------------
142 // LEVEL 2 - Script > Cheats
143 //---------------------------------------------------------------
144 DiagMenu.RegisterBool(DiagMenuIDs.CHEATS_MODIFIERS, "lalt+2", "Tick Modifiers", DiagMenuIDs.CHEATS_MENU);
145 DiagMenu.SetValue(DiagMenuIDs.CHEATS_MODIFIERS, true);
146 DiagMenu.RegisterBool(DiagMenuIDs.CHEATS_KILL_PLAYER, "", "Kill Player", DiagMenuIDs.CHEATS_MENU);
147 DiagMenu.RegisterItem(DiagMenuIDs.CHEATS_INVINCIBILITY, "lalt+1", "Invincibility (IDDQD)", DiagMenuIDs.CHEATS_MENU, "Disabled,Partial,Full");
148 DiagMenu.RegisterBool(DiagMenuIDs.CHEATS_DISABLE_STAMINA, "", "Disable stamina", DiagMenuIDs.CHEATS_MENU);
149 DiagMenu.RegisterBool(DiagMenuIDs.CHEATS_RESET_PLAYER, "", "Reset Player", DiagMenuIDs.CHEATS_MENU);
150 DiagMenu.RegisterBool(DiagMenuIDs.CHEATS_RESET_PLAYER_MAX, "lalt+3", "Reset Player Max", DiagMenuIDs.CHEATS_MENU);
151 DiagMenu.RegisterBool(DiagMenuIDs.CHEATS_INVENTORY_ACCESS, "", "Inventory Access", DiagMenuIDs.CHEATS_MENU);
152 DiagMenu.RegisterBool(DiagMenuIDs.CHEATS_FIX_ITEMS, "", "Fix Inventory Items", DiagMenuIDs.CHEATS_MENU);
153 DiagMenu.RegisterBool(DiagMenuIDs.CHEATS_CREATE_HIT, "lalt+5", "Create Hit Heavy", DiagMenuIDs.CHEATS_MENU);
154 DiagMenu.RegisterBool(DiagMenuIDs.CHEATS_CREATE_HIT_LIGHT, "lalt+6", "Create Hit Light", DiagMenuIDs.CHEATS_MENU);
155 DiagMenu.RegisterBool(DiagMenuIDs.CHEATS_CLIENT_DESYNC_INVENTORY, "", "Client desync inventory - local move", DiagMenuIDs.CHEATS_MENU);
156 }
157
158 //---------------------------------------------------------------
159 // LEVEL 1 - Script
160 //---------------------------------------------------------------
161 DiagMenu.RegisterMenu(DiagMenuIDs.PLAYER_AGENTS_MENU, "Player Agents", DiagMenuIDs.SCRIPTS_MENU);
162 {
163 //---------------------------------------------------------------
164 // LEVEL 2 - Script > Player Agents
165 //---------------------------------------------------------------
166 DiagMenu.RegisterBool(DiagMenuIDs.PLAYER_AGENTS_INJECTS_SHOW, "", "Allow Inject Actions", DiagMenuIDs.PLAYER_AGENTS_MENU);
167 }
168
169 //---------------------------------------------------------------
170 // LEVEL 1 - Script
171 //---------------------------------------------------------------
172 DiagMenu.RegisterMenu(DiagMenuIDs.SOFT_SKILLS_MENU, "Soft Skills", DiagMenuIDs.SCRIPTS_MENU);
173 {
174 //---------------------------------------------------------------
175 // LEVEL 2 - Script > Soft Skills
176 //---------------------------------------------------------------
177 DiagMenu.RegisterBool(DiagMenuIDs.SOFT_SKILLS_SHOW_DEBUG, "", "Show Debug", DiagMenuIDs.SOFT_SKILLS_MENU);
178 DiagMenu.RegisterBool(DiagMenuIDs.SOFT_SKILLS_TOGGLE_STATE, "", "Enable SoftSkills", DiagMenuIDs.SOFT_SKILLS_MENU);
179 DiagMenu.RegisterBool(DiagMenuIDs.SOFT_SKILLS_TOGGLE_MODEL, "", "Enable linear model", DiagMenuIDs.SOFT_SKILLS_MENU);
180 DiagMenu.RegisterRange(DiagMenuIDs.SOFT_SKILLS_SPECIALTY_VALUE, "", "Set specialty value", DiagMenuIDs.SOFT_SKILLS_MENU, "-1, 1, 0, 0.01");
181 }
182
183 //---------------------------------------------------------------
184 // LEVEL 1 - Script
185 //---------------------------------------------------------------
186 DiagMenu.RegisterMenu(DiagMenuIDs.LIFESPAN_MENU, "Lifespan", DiagMenuIDs.SCRIPTS_MENU);
187 {
188 //---------------------------------------------------------------
189 // LEVEL 2 - Script > Lifespan
190 //---------------------------------------------------------------
191 DiagMenu.RegisterBool(DiagMenuIDs.LIFESPAN_BLOODY_HANDS, "", "Bloody hands", DiagMenuIDs.LIFESPAN_MENU);
192 DiagMenu.RegisterRange(DiagMenuIDs.LIFESPAN_PLAYTIME_UPDATE, "", "Playtime in minutes", DiagMenuIDs.LIFESPAN_MENU, "0, 600, 0, 10");
193 }
194
195 //---------------------------------------------------------------
196 // LEVEL 1 - Script
197 //---------------------------------------------------------------
198 DiagMenu.RegisterMenu(DiagMenuIDs.MISC_MENU, "Misc", DiagMenuIDs.SCRIPTS_MENU);
199 {
200 //---------------------------------------------------------------
201 // LEVEL 2 - Script > Misc
202 //---------------------------------------------------------------
203 DiagMenu.RegisterBool(DiagMenuIDs.MISC_ACTION_ON_CURSOR, "", "Perform Diag On Cursor", DiagMenuIDs.MISC_MENU);
204#ifdef DIAG_MISC_ACTION_ON_CURSOR
205 DiagMenu.SetValue(DiagMenuIDs.MISC_ACTION_ON_CURSOR, true);
206#endif
207 DiagMenu.RegisterBool(DiagMenuIDs.MISC_DISABLE_PERSONAL_LIGHT, "", "Disable Personal Light", DiagMenuIDs.MISC_MENU);
208 DiagMenu.RegisterBool(DiagMenuIDs.MISC_ITEM_DEBUG_ACTIONS, "", "Item Debug Actions", DiagMenuIDs.MISC_MENU); // Is enabled by default now
209 DiagMenu.RegisterBool(DiagMenuIDs.MISC_LOG_PLAYER_STATS, "", "Log Player Stats", DiagMenuIDs.MISC_MENU);
210 DiagMenu.RegisterMenu(DiagMenuIDs.MISC_ACTION_TARGETS_MENU, "Action Targets", DiagMenuIDs.MISC_MENU);
211 {
212 //---------------------------------------------------------------
213 // LEVEL 3 - Script > Misc > Action Targets
214 //---------------------------------------------------------------
215 DiagMenu.RegisterBool(DiagMenuIDs.MISC_ACTION_TARGETS_NEW, "", "New AT Selection", DiagMenuIDs.MISC_ACTION_TARGETS_MENU, true);
216 DiagMenu.RegisterBool(DiagMenuIDs.MISC_ACTION_TARGETS_DEBUG, "", "Show Debug", DiagMenuIDs.MISC_ACTION_TARGETS_MENU);
217 DiagMenu.RegisterBool(DiagMenuIDs.MISC_ACTION_TARGETS_SELPOS_DEBUG, "", "Show selection pos debug", DiagMenuIDs.MISC_ACTION_TARGETS_MENU);
218 }
219 //---------------------------------------------------------------
220 // LEVEL 2 - Script > Misc
221 //---------------------------------------------------------------
222 DiagMenu.RegisterBool(DiagMenuIDs.MISC_PERMANENT_CROSSHAIR, "", "Enable permanent crosshair", DiagMenuIDs.MISC_MENU);
223 DiagMenu.RegisterBool(DiagMenuIDs.MISC_TELEPORT_BREAKS_SYNC, "", "Teleport Breaks Sync", DiagMenuIDs.MISC_MENU);
224 DiagMenu.RegisterBool(DiagMenuIDs.MISC_VEHICLE_GETOUT_BOX, "", "Debug transport freespace", DiagMenuIDs.MISC_MENU);
225 DiagMenu.RegisterBool(DiagMenuIDs.MISC_VEHICLE_GETOUT_RAYCAST, "", "Debug transport get out raycast", DiagMenuIDs.MISC_MENU);
226 DiagMenu.RegisterBool(DiagMenuIDs.MISC_TOGGLE_HUD, "", "Toggle HUD on/off", DiagMenuIDs.MISC_MENU);
227 DiagMenu.RegisterMenu(DiagMenuIDs.MISC_ENVIRONMENT_MENU, "Environment", DiagMenuIDs.MISC_MENU);
228 {
229 //---------------------------------------------------------------
230 // LEVEL 3 - Script > Misc > Environment
231 //---------------------------------------------------------------
232 DiagMenu.RegisterBool(DiagMenuIDs.MISC_ENVIRONMENT_DEBUG, "", "Show Environment stats", DiagMenuIDs.MISC_ENVIRONMENT_MENU);
233 DiagMenu.RegisterBool(DiagMenuIDs.MISC_ENVIRONMENT_LOGGING_DRYWET, "", "Log Player Dry/Wetness", DiagMenuIDs.MISC_ENVIRONMENT_MENU, false);
234 DiagMenu.RegisterBool(DiagMenuIDs.MISC_ENVIRONMENT_LOGGING_ITEMHEAT, "", "Log Player Item Heat", DiagMenuIDs.MISC_ENVIRONMENT_MENU, false);
235
236 }
237 DiagMenu.RegisterBool(DiagMenuIDs.MISC_FALLDAMAGE_DEBUG, "", "Show FallDamage stats", DiagMenuIDs.MISC_MENU);
238 DiagMenu.RegisterRange(DiagMenuIDs.MISC_DISPLAY_PLAYER_INFO, "", "Display Player Info", DiagMenuIDs.MISC_MENU, "0,2,0,1");
239 DiagMenu.RegisterBool(DiagMenuIDs.MISC_UNIVERSAL_TEMPERATURE_SOURCES, "lalt+u", "Universal Temp Sources", DiagMenuIDs.MISC_MENU);
240 DiagMenu.RegisterBool(DiagMenuIDs.MISC_TARGET_TEMPERATURE, "", "Target Temperature", DiagMenuIDs.MISC_MENU);
241 DiagMenu.RegisterBool(DiagMenuIDs.MISC_DRAW_CHECKERBOARD, "", "Draw Checkerboard on screen", DiagMenuIDs.MISC_MENU);
242 DiagMenu.RegisterBool(DiagMenuIDs.MISC_BULLET_IMPACT, "", "BulletImpact", DiagMenuIDs.MISC_MENU);
243 DiagMenu.RegisterBool(DiagMenuIDs.MISC_PRESENCE_NOTIFIER_DBG, "", "Show Presence to AI dbg", DiagMenuIDs.MISC_MENU);
244 DiagMenu.RegisterBool(DiagMenuIDs.MISC_GO_UNCONSCIOUS, "lctrl+m", "Go Unconscious", DiagMenuIDs.MISC_MENU);
245 DiagMenu.RegisterBool(DiagMenuIDs.MISC_GO_UNCONSCIOUS_DELAYED, "", "Uncons. in 10sec", DiagMenuIDs.MISC_MENU);
246 DiagMenu.RegisterBool(DiagMenuIDs.MISC_QUICK_RESTRAIN, "", "Quick Restrain", DiagMenuIDs.MISC_MENU);
247 DiagMenu.RegisterMenu(DiagMenuIDs.MISC_HAIR_MENU, "Hair Hiding", DiagMenuIDs.MISC_MENU);
248 {
249 //---------------------------------------------------------------
250 // LEVEL 3 - Script > Misc > Hair Hiding
251 //---------------------------------------------------------------
252 DiagMenu.RegisterBool(DiagMenuIDs.MISC_HAIR_DISPLAY_DEBUG, "", "Display Debug", DiagMenuIDs.MISC_HAIR_MENU);
253 DiagMenu.RegisterRange(DiagMenuIDs.MISC_HAIR_LEVEL, "", "Hair Level#", DiagMenuIDs.MISC_HAIR_MENU, string.Format("0,%1,0,1", m_TotalHairLevelsAdjusted));
254 DiagMenu.RegisterBool(DiagMenuIDs.MISC_HAIR_LEVEL_HIDE, "", "Toggle Hair Level", DiagMenuIDs.MISC_HAIR_MENU);
255 DiagMenu.RegisterBool(DiagMenuIDs.MISC_HAIR_HIDE_ALL, "", "Hide/Show All", DiagMenuIDs.MISC_HAIR_MENU);
256 }
257 //---------------------------------------------------------------
258 // LEVEL 2 - Script > Misc
259 //---------------------------------------------------------------
260 DiagMenu.RegisterBool(DiagMenuIDs.MISC_CAM_SHAKE, "", "Simulate Cam Shake", DiagMenuIDs.MISC_MENU);
261 DiagMenu.RegisterBool(DiagMenuIDs.MISC_QUICK_FISHING, "", "Quick Fishing", DiagMenuIDs.MISC_MENU);
262 DiagMenu.RegisterBool(DiagMenuIDs.MISC_HOLOGRAM, "lctrl+h", "Hologram placing debug", DiagMenuIDs.MISC_MENU);
263 DiagMenu.RegisterBool(DiagMenuIDs.MISC_SHOCK_IMPACT, "lalt+8", "ShockHitEffect", DiagMenuIDs.MISC_MENU);
264 DiagMenu.RegisterBool(DiagMenuIDs.MISC_SHOW_PLUG_ARROWS, "", "Show Energy Manager Plug Arrows", DiagMenuIDs.MISC_MENU);
265 DiagMenu.RegisterBool(DiagMenuIDs.MISC_BREATH_VAPOR_LVL, "", "Breath Vapor", DiagMenuIDs.MISC_MENU);
266 DiagMenu.SetValue(DiagMenuIDs.MISC_BREATH_VAPOR_LVL, true);
267 DiagMenu.RegisterBool(DiagMenuIDs.MISC_TARGETABLE_BY_AI, "lalt+t", "Toggle Targetable By AI", DiagMenuIDs.MISC_MENU);
268 DiagMenu.SetValue(DiagMenuIDs.MISC_TARGETABLE_BY_AI, true);
269 DiagMenu.RegisterMenu(DiagMenuIDs.MISC_HIT_INDICATION_MENU, "Hit Indication", DiagMenuIDs.MISC_MENU);
270 {
271 //---------------------------------------------------------------
272 // LEVEL 3 - Script > Misc > Hit Indication
273 //---------------------------------------------------------------
274 DiagMenu.RegisterBool(DiagMenuIDs.MISC_HIT_INDICATION_DEBUG, "", "Enable Debug", DiagMenuIDs.MISC_HIT_INDICATION_MENU);
275 DiagMenu.RegisterBool(DiagMenuIDs.MISC_HIT_INDICATION_SPAWN_HIT, "", "Spawn Hit", DiagMenuIDs.MISC_HIT_INDICATION_MENU);
276 DiagMenu.RegisterRange(DiagMenuIDs.MISC_HIT_INDICATION_SPAWN_HIT_DIRECTION, "", "Spawn Hit Direction", DiagMenuIDs.MISC_HIT_INDICATION_MENU, "0, 359, 0, 1");
277 DiagMenu.RegisterItem(DiagMenuIDs.MISC_HIT_INDICATION_MODE, "", "Mode", DiagMenuIDs.MISC_HIT_INDICATION_MENU, "Disabled,Static,Dynamic");
278 DiagMenu.SetValue(DiagMenuIDs.MISC_HIT_INDICATION_MODE, 1);
279 DiagMenu.RegisterItem(DiagMenuIDs.MISC_HIT_INDICATION_TYPE, "", "Type", DiagMenuIDs.MISC_HIT_INDICATION_MENU, "Splash,Spike,Arrow");
280 DiagMenu.RegisterRange(DiagMenuIDs.MISC_HIT_INDICATION_DURATION, "", "Hit Duration Max", DiagMenuIDs.MISC_HIT_INDICATION_MENU, "0.1, 5.0, 1.0, 0.1");
281 DiagMenu.RegisterRange(DiagMenuIDs.MISC_HIT_INDICATION_BREAKPOINT, "", "Hit Breakpoint", DiagMenuIDs.MISC_HIT_INDICATION_MENU, "0.0, 1.0, 0.8, 0.05");
282 DiagMenu.RegisterRange(DiagMenuIDs.MISC_HIT_INDICATION_DISTANCE, "", "Distance Adjust", DiagMenuIDs.MISC_HIT_INDICATION_MENU, "0.0, 1.0, 0.0, 0.01");
283 DiagMenu.RegisterRange(DiagMenuIDs.MISC_HIT_INDICATION_ROTATION, "", "Rotation Override", DiagMenuIDs.MISC_HIT_INDICATION_MENU, "0, 360, 0, 15");
284 DiagMenu.RegisterRange(DiagMenuIDs.MISC_HIT_INDICATION_SCATTER, "", "Direction Scatter", DiagMenuIDs.MISC_HIT_INDICATION_MENU, "0, 90, 0, 1");
285 DiagMenu.RegisterBool(DiagMenuIDs.MISC_HIT_INDICATION_DISABLE_PPE, "", "Disable Hit PPE", DiagMenuIDs.MISC_HIT_INDICATION_MENU);
286 }
287 //---------------------------------------------------------------
288 // LEVEL 2 - Script > Misc
289 //---------------------------------------------------------------
290 DiagMenu.RegisterBool(DiagMenuIDs.MISC_FREEZE_ENTITY, "lalt+x", "Freeze entity", DiagMenuIDs.MISC_MENU);
291 DiagMenu.RegisterBool(DiagMenuIDs.MISC_FREEZE_PLAYER, "lalt+e", "Freeze player", DiagMenuIDs.MISC_MENU);
292 DiagMenu.RegisterBool(DiagMenuIDs.MISC_CONNECTION_STATS, "lalt+4", "Show Connection Stats", DiagMenuIDs.MISC_MENU);
293 DiagMenu.RegisterBool(DiagMenuIDs.MISC_PLAYER_SYMPTOMS_SHOW, "", "Show States", DiagMenuIDs.MISC_MENU);
294 DiagMenu.RegisterRange(DiagMenuIDs.MISC_PLAYER_SYMPTOMS_TOGGLE_HMP, "", "Set HMP symptom", DiagMenuIDs.MISC_MENU, "-1, 1, -1, 1");
295 DiagMenu.RegisterBool(DiagMenuIDs.MISC_SHOW_PRA_ALL, "lalt+n", "Show PRA - ALL", DiagMenuIDs.MISC_MENU);
296 DiagMenu.RegisterBool(DiagMenuIDs.MISC_PRA_DETECT, "lalt+m", "PRA - detect", DiagMenuIDs.MISC_MENU);
297 DiagMenu.RegisterBool(DiagMenuIDs.MISC_INPUT_DEVICE_DISCONNECT_DBG, "", "InputDevice states", DiagMenuIDs.MISC_MENU);
298 DiagMenu.RegisterBool(DiagMenuIDs.MISC_DEBUG_MONITOR, "", "Debug Monitor", DiagMenuIDs.MISC_MENU);
299 DiagMenu.RegisterRange(DiagMenuIDs.MISC_FORCE_HINT_INDEX, "", "Force Hint Index", DiagMenuIDs.MISC_MENU, "-1, 512, -1, 1");
300 if (UiHintPanel.m_ForcedIndex != -1)
301 DiagMenu.SetRangeValue(DiagMenuIDs.MISC_FORCE_HINT_INDEX,UiHintPanel.m_ForcedIndex);
302 }
303
304 //---------------------------------------------------------------
305 // LEVEL 1 - Script
306 //---------------------------------------------------------------
307 DiagMenu.RegisterMenu(DiagMenuIDs.SIMULATE_MENU, "Simulate script", DiagMenuIDs.SCRIPTS_MENU);
308 {
309 //---------------------------------------------------------------
310 // LEVEL 2 - Script > Simulate script
311 //---------------------------------------------------------------
312 DiagMenu.RegisterRange(DiagMenuIDs.SIMULATE_MODE, "", "Server/Client/Both", DiagMenuIDs.SIMULATE_MENU,"0,2,0,1");
313 DiagMenu.RegisterBool(DiagMenuIDs.SIMULATE_INFINITE_LOOP, "", "Simulate infinite loop", DiagMenuIDs.SIMULATE_MENU);
314 DiagMenu.RegisterBool(DiagMenuIDs.SIMULATE_NULL_POINTER, "", "Simulate null pointer", DiagMenuIDs.SIMULATE_MENU);
315 DiagMenu.RegisterBool(DiagMenuIDs.SIMULATE_DIVISION_BY_ZERO, "", "Simulate division by 0", DiagMenuIDs.SIMULATE_MENU);
316 DiagMenu.RegisterBool(DiagMenuIDs.SIMULATE_ERROR_FUNCTION, "", "Simulate Error() function", DiagMenuIDs.SIMULATE_MENU);
317 }
318
319 //---------------------------------------------------------------
320 // LEVEL 1 - Script
321 //---------------------------------------------------------------
322 DiagMenu.RegisterMenu(DiagMenuIDs.MELEE_MENU, "Melee", DiagMenuIDs.SCRIPTS_MENU);
323 {
324 //---------------------------------------------------------------
325 // LEVEL 2 - Script > Melee
326 //---------------------------------------------------------------
327 DiagMenu.RegisterBool(DiagMenuIDs.MELEE_DEBUG, "", "Enable Melee Debug", DiagMenuIDs.MELEE_MENU);
328 DiagMenu.RegisterBool(DiagMenuIDs.MELEE_CONTINUOUS, "", "Continuous update", DiagMenuIDs.MELEE_MENU);
329 DiagMenu.RegisterBool(DiagMenuIDs.MELEE_SHOW_TARGETS, "", "Show targets", DiagMenuIDs.MELEE_MENU);
330 DiagMenu.RegisterBool(DiagMenuIDs.MELEE_DRAW_TARGETS, "", "Draw targets", DiagMenuIDs.MELEE_MENU);
331 DiagMenu.RegisterBool(DiagMenuIDs.MELEE_DRAW_RANGE, "", "Draw range", DiagMenuIDs.MELEE_MENU);
332 DiagMenu.RegisterBool(DiagMenuIDs.MELEE_DRAW_BLOCK_RANGE_AI, "", "Draw block range PVE", DiagMenuIDs.MELEE_MENU);
333 DiagMenu.RegisterBool(DiagMenuIDs.MELEE_DRAW_BLOCK_RANGE_PVP, "", "Draw block range PVP", DiagMenuIDs.MELEE_MENU);
334 }
335
336 //---------------------------------------------------------------
337 // LEVEL 1 - Script
338 //---------------------------------------------------------------
339 DiagMenu.RegisterMenu(DiagMenuIDs.WEAPON_MENU, "Weapon", DiagMenuIDs.SCRIPTS_MENU);
340 {
341 //---------------------------------------------------------------
342 // LEVEL 2 - Script > Weapon
343 //---------------------------------------------------------------
344 DiagMenu.RegisterBool(DiagMenuIDs.WEAPON_PARTICLES, "", "Enable gun particles", DiagMenuIDs.WEAPON_MENU);
345 DiagMenu.SetValue(DiagMenuIDs.WEAPON_PARTICLES, true);
346 DiagMenu.RegisterBool(DiagMenuIDs.WEAPON_DEBUG, "", "Show Debug", DiagMenuIDs.WEAPON_MENU); // Doesn't do anything anymore currently
347 DiagMenu.RegisterBool(DiagMenuIDs.WEAPON_AIM_NOISE, "", "Weapon Sway", DiagMenuIDs.WEAPON_MENU);
348 DiagMenu.SetValue(DiagMenuIDs.WEAPON_AIM_NOISE, true);
349 DiagMenu.RegisterBool(DiagMenuIDs.WEAPON_RECOIL, "", "Procedural Recoil", DiagMenuIDs.WEAPON_MENU);
350 DiagMenu.SetValue(DiagMenuIDs.WEAPON_RECOIL, true);
351 DiagMenu.RegisterBool(DiagMenuIDs.WEAPON_UNLIMITED_AMMO, "lalt+9", "Unlimited Ammo", DiagMenuIDs.WEAPON_MENU);
352 DiagMenu.RegisterItem(DiagMenuIDs.WEAPON_BURST_VERSION, "lctrl+0", "Burst Version", DiagMenuIDs.WEAPON_MENU, "Hold, Press");
353 DiagMenu.RegisterBool(DiagMenuIDs.WEAPON_CLAYMORE_DEBUG, "", "Claymore debugs", DiagMenuIDs.WEAPON_MENU);
354 DiagMenu.RegisterItem(DiagMenuIDs.WEAPON_LIFT_DEBUG, "", "Weapon Lift Debug", DiagMenuIDs.WEAPON_MENU, "false,true,extended");
355 DiagMenu.RegisterItem(DiagMenuIDs.WEAPON_FORCEALLOW_OBSTRUCTION, "", "Force Allow Obstruction", DiagMenuIDs.WEAPON_MENU, "off,conditional,always,alwaysDynamic,neverStatic,alwaysDynamicNeverStatic,neverEver");
356 DiagMenu.RegisterBool(DiagMenuIDs.WEAPON_DISABLE_OBSTRUCTION_INTERPOLATION, "", "Disable Obstruction Interpolation", DiagMenuIDs.WEAPON_MENU);
357 }
358
359 //---------------------------------------------------------------
360 // LEVEL 1 - Script
361 //---------------------------------------------------------------
362 DiagMenu.RegisterMenu(DiagMenuIDs.BLEEDING_MENU, "Bleeding", DiagMenuIDs.SCRIPTS_MENU);
363 {
364 //---------------------------------------------------------------
365 // LEVEL 2 - Script > Bleeding
366 //---------------------------------------------------------------
367 DiagMenu.RegisterBool(DiagMenuIDs.BLEEDING_SOURCES, "", "Show Bleeding Sources", DiagMenuIDs.BLEEDING_MENU);
368 DiagMenu.RegisterBool(DiagMenuIDs.BLEEDING_DISABLE_BLOOD_LOSS, "", "Disable Blood Loss", DiagMenuIDs.BLEEDING_MENU);
369 DiagMenu.RegisterRange(DiagMenuIDs.BLEEDING_ACTIVATE_SOURCE, "", "Activate Source #", DiagMenuIDs.BLEEDING_MENU, "1, 32, 0, 1");
370 DiagMenu.RegisterBool(DiagMenuIDs.BLEEDING_ACTIVATE_ALL_SOURCES, "", "Activate All Sources", DiagMenuIDs.BLEEDING_MENU);
371 DiagMenu.RegisterItem(DiagMenuIDs.BLEEDING_ACTIVATE_SOURCE_LEVEL, "", "Activate Blsource Level", DiagMenuIDs.BLEEDING_MENU, "None, Low, Medium, High");
372 DiagMenu.RegisterBool(DiagMenuIDs.BLEEDING_RELOAD, "", "Client Reload", DiagMenuIDs.BLEEDING_MENU);
373 DiagMenu.RegisterMenu(DiagMenuIDs.BLEEDINGINDICATORS_MENU, "Bleeding Indication", DiagMenuIDs.BLEEDING_MENU);
374 {
375 //---------------------------------------------------------------
376 // LEVEL 3 - Script > Bleeding > Bleeding Indication
377 //---------------------------------------------------------------
378 DiagMenu.RegisterBool(DiagMenuIDs.BLEEDINGINDICATORS, "", "Enable BleedingIndicators", DiagMenuIDs.BLEEDINGINDICATORS_MENU);
379 DiagMenu.SetValue(DiagMenuIDs.BLEEDINGINDICATORS, true);
380 DiagMenu.RegisterBool(DiagMenuIDs.BLEEDINGINDICATORS_USEVALUEOVERRIDES, "", "Enable Debug Overrides", DiagMenuIDs.BLEEDINGINDICATORS_MENU);
381 DiagMenu.SetValue(DiagMenuIDs.BLEEDINGINDICATORS_USEVALUEOVERRIDES, false);
382 DiagMenu.RegisterBool(DiagMenuIDs.BLEEDINGINDICATORS_DROP_RANDOMROTATION, "", "Enable Random Rotation", DiagMenuIDs.BLEEDINGINDICATORS_MENU);
383 DiagMenu.SetValue(DiagMenuIDs.BLEEDINGINDICATORS_DROP_RANDOMROTATION, true);
384 DiagMenu.RegisterRange(DiagMenuIDs.BLEEDINGINDICATORS_SEQUENCE_DURATION, "", "Sequence Duration", DiagMenuIDs.BLEEDINGINDICATORS_MENU, "0.2, 5.0, " + BleedingIndicationConstants.SEQUENCE_DURATION_DEFAULT.ToString() + ", 0.01");
385 DiagMenu.RegisterRange(DiagMenuIDs.BLEEDINGINDICATORS_DROP_BASEDURATION, "", "Drop Anim Duration", DiagMenuIDs.BLEEDINGINDICATORS_MENU, "0.1, 5.0, " + BleedingIndicationConstants.DROP_DURATION_LOW.ToString() + ", 0.05");
386 DiagMenu.RegisterRange(DiagMenuIDs.BLEEDINGINDICATORS_DROP_MINDELAY, "", "Drop Min Delay", DiagMenuIDs.BLEEDINGINDICATORS_MENU, "0.0, 5.0, " + BleedingIndicationConstants.SEQUENCE_DROP_DELAY_MIN_LOW.ToString() + ", 0.05");
387 DiagMenu.RegisterRange(DiagMenuIDs.BLEEDINGINDICATORS_DROP_MAXDELAY, "", "Drop Max Delay", DiagMenuIDs.BLEEDINGINDICATORS_MENU, "0.0, 5.0, " + BleedingIndicationConstants.SEQUENCE_DROP_DELAY_MAX_LOW.ToString() + ", 0.05");
388 DiagMenu.RegisterRange(DiagMenuIDs.BLEEDINGINDICATORS_DROP_PROGRESSTHRESHOLD, "", "Drop Progress Threshold", DiagMenuIDs.BLEEDINGINDICATORS_MENU, "0.1, 1.0, " + BleedingIndicationConstants.DROP_PROGRESS_THRESHOLD.ToString() + ", 0.05");
389 DiagMenu.RegisterRange(DiagMenuIDs.BLEEDINGINDICATORS_DROP_STARTSIZE, "", "Drop Start Size", DiagMenuIDs.BLEEDINGINDICATORS_MENU, "0.1, 1.0, " + BleedingIndicationConstants.DROP_SIZE_START_LOW.ToString() + ", 0.01");
390 DiagMenu.RegisterRange(DiagMenuIDs.BLEEDINGINDICATORS_DROP_ENDSIZE, "", "Drop End Size", DiagMenuIDs.BLEEDINGINDICATORS_MENU, "0.1, 1.0, " + BleedingIndicationConstants.DROP_SIZE_END_LOW.ToString() + ", 0.01");
391 DiagMenu.RegisterRange(DiagMenuIDs.BLEEDINGINDICATORS_DROP_RNDSCALEMIN, "", "Drop Size Random Min", DiagMenuIDs.BLEEDINGINDICATORS_MENU, "0.0, 2.0, " + BleedingIndicationConstants.DROP_SIZE_VARIATION_MIN_LOW.ToString() + ", 0.01");
392 DiagMenu.RegisterRange(DiagMenuIDs.BLEEDINGINDICATORS_DROP_RNDSCALEMAX, "", "Drop Size Random Max", DiagMenuIDs.BLEEDINGINDICATORS_MENU, "0.0, 2.0, " + BleedingIndicationConstants.DROP_SIZE_VARIATION_MAX_LOW.ToString() + ", 0.01");
393 DiagMenu.RegisterRange(DiagMenuIDs.BLEEDINGINDICATORS_DROP_SCATTER, "", "Drop Scatter px", DiagMenuIDs.BLEEDINGINDICATORS_MENU, "0.0, 500.0, " + BleedingIndicationConstants.DROP_SCATTER_LOW.ToString() + ", 1.0");
394 DiagMenu.RegisterRange(DiagMenuIDs.BLEEDINGINDICATORS_DROP_SLIDEDISTANCE, "", "Drop Slide Distance", DiagMenuIDs.BLEEDINGINDICATORS_MENU, "0.0, 500.0, 0, 0.1");
395 DiagMenu.RegisterMenu(DiagMenuIDs.BLEEDINGINDICATORS_DROP_COLOR_MENU, "Color Debug", DiagMenuIDs.BLEEDINGINDICATORS_MENU);
396 {
397 //---------------------------------------------------------------
398 // LEVEL 4 - Script > Bleeding > Bleeding Indication > Color Debug
399 //---------------------------------------------------------------
400 DiagMenu.RegisterBool(DiagMenuIDs.BLEEDINGINDICATORS_DROP_COLOR_ENABLEDESATURATION, "", "Desaturate", DiagMenuIDs.BLEEDINGINDICATORS_DROP_COLOR_MENU);
401 DiagMenu.SetValue(DiagMenuIDs.BLEEDINGINDICATORS_DROP_COLOR_ENABLEDESATURATION, true);
402 DiagMenu.RegisterRange(DiagMenuIDs.BLEEDINGINDICATORS_DROP_COLOR_DESATURATIONEND, "", "Saturation End Value", DiagMenuIDs.BLEEDINGINDICATORS_DROP_COLOR_MENU, "0.0, 1.0, " + BleedingIndicationConstants.DROP_COLOR_DESATURATIONEND.ToString() + ", 0.05");
403 DiagMenu.RegisterRange(DiagMenuIDs.BLEEDINGINDICATORS_DROP_COLOR_R, "", "Red", DiagMenuIDs.BLEEDINGINDICATORS_DROP_COLOR_MENU, "0.0, 255.0, " + BleedingIndicationConstants.DROP_COLOR_RED.ToString() + ", 1.0");
404 DiagMenu.RegisterRange(DiagMenuIDs.BLEEDINGINDICATORS_DROP_COLOR_G, "", "Green", DiagMenuIDs.BLEEDINGINDICATORS_DROP_COLOR_MENU, "0.0, 255.0, " + BleedingIndicationConstants.DROP_COLOR_GREEN.ToString() + ", 1.0");
405 DiagMenu.RegisterRange(DiagMenuIDs.BLEEDINGINDICATORS_DROP_COLOR_B, "", "Blue", DiagMenuIDs.BLEEDINGINDICATORS_DROP_COLOR_MENU, "0.0, 255.0, " + BleedingIndicationConstants.DROP_COLOR_BLUE.ToString() + ", 1.0");
406 DiagMenu.RegisterRange(DiagMenuIDs.BLEEDINGINDICATORS_DROP_COLOR_A_START, "", "Alpha - Start", DiagMenuIDs.BLEEDINGINDICATORS_DROP_COLOR_MENU, "0.0, 255.0, " + BleedingIndicationConstants.DROP_COLOR_ALPHA_START.ToString() + ", 1.0");
407 DiagMenu.RegisterRange(DiagMenuIDs.BLEEDINGINDICATORS_DROP_COLOR_A_END, "", "Alpha - End", DiagMenuIDs.BLEEDINGINDICATORS_DROP_COLOR_MENU, "0.0, 255.0, " + BleedingIndicationConstants.DROP_COLOR_ALPHA_END.ToString() + ", 1.0");
408 }
409 }
410 }
411
412 //---------------------------------------------------------------
413 // LEVEL 1 - Script
414 //---------------------------------------------------------------
415 DiagMenu.RegisterMenu(DiagMenuIDs.LOGS_MENU, "Logs", DiagMenuIDs.SCRIPTS_MENU);
416 {
417 //---------------------------------------------------------------
418 // LEVEL 2 - Script > Logs
419 //---------------------------------------------------------------
420 DiagMenu.RegisterBool(DiagMenuIDs.LOGS_ACTIONS, "", "Log Actions", DiagMenuIDs.LOGS_MENU);
421 DiagMenu.RegisterBool(DiagMenuIDs.LOGS_WEAPONS, "", "Log Weapons", DiagMenuIDs.LOGS_MENU);
422 DiagMenu.RegisterBool(DiagMenuIDs.LOGS_SYNC, "", "Log Sync", DiagMenuIDs.LOGS_MENU);
423 DiagMenu.RegisterBool(DiagMenuIDs.LOGS_BASEBUILDING, "", "Log Base building", DiagMenuIDs.LOGS_MENU);
424 DiagMenu.RegisterBool(DiagMenuIDs.LOGS_QUICKBAR, "", "Log Quickbar", DiagMenuIDs.LOGS_MENU);
425 DiagMenu.RegisterBool(DiagMenuIDs.LOGS_SYMPTOMS, "", "Log Symptoms", DiagMenuIDs.LOGS_MENU);
426 DiagMenu.RegisterMenu(DiagMenuIDs.LOGS_INVENTORY_MENU, "Inventory Logs", DiagMenuIDs.LOGS_MENU);
427 {
428 //---------------------------------------------------------------
429 // LEVEL 3 - Script > Logs > InventoryLogs
430 //---------------------------------------------------------------
431 DiagMenu.RegisterBool(DiagMenuIDs.LOGS_INVENTORY_MOVE, "", "Log Items move", DiagMenuIDs.LOGS_INVENTORY_MENU);
432 DiagMenu.RegisterBool(DiagMenuIDs.LOGS_INVENTORY_RESERVATION, "", "Log Reservations", DiagMenuIDs.LOGS_INVENTORY_MENU);
433 DiagMenu.RegisterBool(DiagMenuIDs.LOGS_INVENTORY_HFSM, "", "Log HandFSM", DiagMenuIDs.LOGS_INVENTORY_MENU);
434 }
435 DiagMenu.RegisterBool(DiagMenuIDs.LOGS_BLEEDING_CHANCES, "", "Bleeding Chances Logs", DiagMenuIDs.LOGS_MENU);
436 }
437
438 //---------------------------------------------------------------
439 // LEVEL 1 - Script
440 //---------------------------------------------------------------
441 DiagMenu.RegisterMenu(DiagMenuIDs.TRIGGER_MENU, "Triggers", DiagMenuIDs.SCRIPTS_MENU);
442 {
443 //---------------------------------------------------------------
444 // LEVEL 2 - Script > Triggers
445 //---------------------------------------------------------------
446 DiagMenu.RegisterBool(DiagMenuIDs.TRIGGER_DEBUG, "", "Show Triggers", DiagMenuIDs.TRIGGER_MENU);
447 DiagMenu.RegisterBool(DiagMenuIDs.TRIGGER_PLAYER_DEBUG, "", "Show Player Touch", DiagMenuIDs.TRIGGER_MENU);
448 #ifdef TRIGGER_DEBUG_BASIC
449 DiagMenu.SetValue(DiagMenuIDs.TRIGGER_DEBUG, true);
450 DiagMenu.SetValue(DiagMenuIDs.TRIGGER_PLAYER_DEBUG, true);
451 #endif
452 }
453
454 //---------------------------------------------------------------
455 // LEVEL 1 - Script
456 //---------------------------------------------------------------
457 DiagMenu.RegisterMenu(DiagMenuIDs.BASEBUILDING_MENU, "Base Building", DiagMenuIDs.SCRIPTS_MENU);
458 {
459 //---------------------------------------------------------------
460 // LEVEL 2 - Script > Base Building
461 //---------------------------------------------------------------
462 DiagMenu.RegisterBool(DiagMenuIDs.BASEBUILDING_WOOD, "", "Spawn uses wood/metal", DiagMenuIDs.BASEBUILDING_MENU);
463 DiagMenu.RegisterBool(DiagMenuIDs.BASEBUILDING_GATE, "", "Spawn Fence makes gate", DiagMenuIDs.BASEBUILDING_MENU);
464 }
465
466 //---------------------------------------------------------------
467 // LEVEL 1 - Script
468 //---------------------------------------------------------------
469 DiagMenu.RegisterMenu(DiagMenuIDs.UNDERGROUND_MENU, "Underground Areas", DiagMenuIDs.SCRIPTS_MENU);
470 {
471 //---------------------------------------------------------------
472 // LEVEL 2 - Script > Underground Areas
473 //---------------------------------------------------------------
474 #ifdef DEVELOPER
475 DiagMenu.RegisterBool(DiagMenuIDs.UNDERGROUND_DEBUG, "", "Enable debug", DiagMenuIDs.UNDERGROUND_MENU);
476 #endif
477 DiagMenu.RegisterBool(DiagMenuIDs.UNDERGROUND_SHOW_BREADCRUMB, "", "Show Breadcrumbs", DiagMenuIDs.UNDERGROUND_MENU);
478 DiagMenu.RegisterBool(DiagMenuIDs.UNDERGROUND_DISABLE_DARKENING, "lctrl+f", "Disable Darkening", DiagMenuIDs.UNDERGROUND_MENU);
479 }
480
481 //---------------------------------------------------------------
482 // LEVEL 1 - Script
483 //---------------------------------------------------------------
484 DiagMenu.RegisterMenu(DiagMenuIDs.FINISHERS_MENU, "Finishers", DiagMenuIDs.SCRIPTS_MENU);
485 {
486 //---------------------------------------------------------------
487 // LEVEL 2 - Script > Finishers
488 //---------------------------------------------------------------
489 DiagMenu.RegisterItem(DiagMenuIDs.FINISHERS_FINISHER_FORCED, "", "Forced Finisher: ", DiagMenuIDs.FINISHERS_MENU, "None,Liver,Neck");
490 }
491
492 //---------------------------------------------------------------
493 // LEVEL 1 - Script
494 //---------------------------------------------------------------
495 DiagMenu.RegisterMenu(DiagMenuIDs.SOUNDS_MENU, "Script Sounds", DiagMenuIDs.SCRIPTS_MENU);
496 {
497 //---------------------------------------------------------------
498 // LEVEL 2 - Script > Script Sounds
499 //---------------------------------------------------------------
500 DiagMenu.RegisterBool(DiagMenuIDs.SOUNDS_ITEM_IMPACT_SOUNDS, "", "Item impact sounds", DiagMenuIDs.SOUNDS_MENU);
501 DiagMenu.RegisterBool(DiagMenuIDs.SOUNDS_DYNAMIC_MUSIC_PLAYER_STATS, "", "Dynamic Music Player stats", DiagMenuIDs.SOUNDS_MENU);
502 }
503
504 //---------------------------------------------------------------
505 // LEVEL 1 - Script
506 //---------------------------------------------------------------
507 DiagMenu.RegisterMenu(DiagMenuIDs.CAMERATOOLS_MENU, "Cinematic Camera Tools", DiagMenuIDs.SCRIPTS_MENU);
508 {
509 //---------------------------------------------------------------
510 // LEVEL 2 - Script > Cinematic Camera Tools
511 //---------------------------------------------------------------
512 DiagMenu.RegisterBool(DiagMenuIDs.CAMERATOOLS_ENABLE_REMOTE_CAMERA, "", "Show remote camera", DiagMenuIDs.CAMERATOOLS_MENU);
513 DiagMenu.RegisterBool(DiagMenuIDs.CAMERATOOLS_ENABLE_REMOTE_CAMERA_BROADCAST, "", "Broadcast camera", DiagMenuIDs.CAMERATOOLS_MENU);
514 }
515 //---------------------------------------------------------------
516 // LEVEL 1 - Script
517 //---------------------------------------------------------------
518 DiagMenu.RegisterMenu(DiagMenuIDs.FEATURE_TIME_ACCEL_MENU, "Time Accel", DiagMenuIDs.SCRIPTS_MENU);
519 {
520 //---------------------------------------------------------------
521 // LEVEL 2 - Script > Time Accel
522 //---------------------------------------------------------------
523 DiagMenu.RegisterBool(DiagMenuIDs.FEATURE_TIME_ACCEL, "lalt+0", "Apply Time Accel", DiagMenuIDs.FEATURE_TIME_ACCEL_MENU);
524 DiagMenu.RegisterRange(DiagMenuIDs.FEATURE_TIME_ACCEL_VALUE1, "", "Accel Factor Big", DiagMenuIDs.FEATURE_TIME_ACCEL_MENU,"0,100,1,1");
525 DiagMenu.RegisterRange(DiagMenuIDs.FEATURE_TIME_ACCEL_VALUE2, "", "Accel Factor Small", DiagMenuIDs.FEATURE_TIME_ACCEL_MENU,"0,0.95 ,0,0.05");
526 DiagMenu.RegisterBool(DiagMenuIDs.FEATURE_TIME_ACCEL_UG_ENTRANCES, "", "Underground Entrances", DiagMenuIDs.FEATURE_TIME_ACCEL_MENU);
527 DiagMenu.RegisterBool(DiagMenuIDs.FEATURE_TIME_ACCEL_UG_RESERVOIR, "", "Underground Reservoir", DiagMenuIDs.FEATURE_TIME_ACCEL_MENU);
528 DiagMenu.RegisterBool(DiagMenuIDs.FEATURE_TIME_ACCEL_ENERGY_CONSUME, "", "Energy Consumption", DiagMenuIDs.FEATURE_TIME_ACCEL_MENU);
529 DiagMenu.RegisterBool(DiagMenuIDs.FEATURE_TIME_ACCEL_ENERGY_RECHARGE, "", "Energy Recharge", DiagMenuIDs.FEATURE_TIME_ACCEL_MENU);
530 DiagMenu.RegisterBool(DiagMenuIDs.FEATURE_TIME_ACCEL_FOOD_DECAY, "", "Decay", DiagMenuIDs.FEATURE_TIME_ACCEL_MENU);
531 DiagMenu.RegisterBool(DiagMenuIDs.FEATURE_TIME_ACCEL_DYNAMIC_MUSIC_PLAYER, "", "Dynamic Music Player", DiagMenuIDs.FEATURE_TIME_ACCEL_MENU);
532 }
533
534 //---------------------------------------------------------------
535 // LEVEL 1 - Script
536 //---------------------------------------------------------------
537 DiagMenu.RegisterMenu(DiagMenuIDs.MATERIALDIAG_MENU, "Materials Diag", DiagMenuIDs.SCRIPTS_MENU);
538 {
539 //---------------------------------------------------------------
540 // LEVEL 2 - Script > Material Diag
541 //---------------------------------------------------------------
542 DiagMenu.RegisterBool(DiagMenuIDs.MATERIALDIAG_GHOSTPP, "", "Ghost PP", DiagMenuIDs.MATERIALDIAG_MENU);
543 }
544
545 //---------------------------------------------------------------
546 // LEVEL 1 - Script
547 //---------------------------------------------------------------
548 DiagMenu.RegisterMenu(DiagMenuIDs.SERVER_BROWSER_MENU, "Server Browser", DiagMenuIDs.SCRIPTS_MENU);
549 {
550 //---------------------------------------------------------------
551 // LEVEL 2 - Script > Server Browser
552 //---------------------------------------------------------------
553 DiagMenu.RegisterBool(DiagMenuIDs.SERVER_BROWSER_DUMMY_SERVERS, "", "Enable Dummy Servers", DiagMenuIDs.SERVER_BROWSER_MENU);
554 }
555 }
556 }
557
558 //---------------------------------------------
559 protected int GetModdedDiagID()
560 {
561 return ++m_ModdedDiagID;
562 }
563
564 //---------------------------------------------
565 protected int GetModdedRootMenu()
566 {
567 return DiagMenuIDs.MODDED_MENU;
568 }
569
570 //---------------------------------------------
571 protected void RegisterModdedDiagsIDs();
572
573 //---------------------------------------------
574 protected void RegisterModdedDiags()
575 {
576 DiagMenu.RegisterMenu(DiagMenuIDs.MODDED_MENU, "Script - Modded", -1);
577 }
578
579 //---------------------------------------------
580 void OnRPC(PlayerBase player, int rpc_type, ParamsReadContext ctx)
581 {
582 EntityAI parent;
583 PluginInventoryDebug pluginInventoryDebug;
584 Class.CastTo(parent, player.GetParent());
585
586 switch (rpc_type)
587 {
588 //---------------------------------------------------------------
589 // Misc, multipurpose
590 //---------------------------------------------------------------
591 case ERPCs.DIAG_ITEM_DEBUG_ACTIONS:
592 {
594 ItemBase.SetDebugActionsMask(CachedObjectsParams.PARAM1_INT.param1);
595 break;
596 }
597
598 //---------------------------------------------------------------
599 // LEVEL 2 - Script > Inventory
600 //---------------------------------------------------------------
601 case ERPCs.DIAG_INVENTORY_ACK_HANDS:
602 {
604 {
605 pluginInventoryDebug = PluginInventoryDebug.Cast(GetPlugin(PluginInventoryDebug));
606 pluginInventoryDebug.SetHandAckEnable(CachedObjectsParams.PARAM1_BOOL.param1);
607 }
608 break;
609 }
610
611 case ERPCs.DIAG_INVENTORY_REPAIR_DESYNC:
612 {
614 {
615 pluginInventoryDebug = PluginInventoryDebug.Cast(GetPlugin(PluginInventoryDebug));
616 pluginInventoryDebug.SetDesyncRepairEnable(CachedObjectsParams.PARAM1_BOOL.param1);
617 }
618 break;
619 }
620
621 //---------------------------------------------------------------
622 // LEVEL 2 - Script > Player States
623 //---------------------------------------------------------------
624 case ERPCs.DIAG_PLAYER_SYMPTOMS_DEBUG_ON:
625 case ERPCs.DIAG_PLAYER_SYMPTOMS_DEBUG_OFF:
626 case ERPCs.DIAG_PLAYER_SYMPTOMS_DEBUG:
627 {
628 if (player.GetSymptomManager())
629 {
630 player.GetSymptomManager().OnRPCDebug(rpc_type, ctx);
631 }
632 break;
633 }
634
635
636
637 //---------------------------------------------------------------
638 // LEVEL 2 - Script > Crafting
639 //---------------------------------------------------------------
640 case ERPCs.DIAG_CRAFTING_INSTANT:
641 {
643 {
644 PluginRecipesManager pluginRecipesManager = PluginRecipesManager.Cast(GetPlugin(PluginRecipesManager));
645 pluginRecipesManager.SetEnableDebugCrafting(CachedObjectsParams.PARAM1_INT.param1);
646 }
647 break;
648 }
649
650
651 //---------------------------------------------------------------
652 // LEVEL 2 - Script > Cheats
653 //---------------------------------------------------------------
654 case ERPCs.DIAG_CHEATS_MODIFIERS:
655 {
657 player.SetModifiers(CachedObjectsParams.PARAM1_INT.param1);
658 break;
659 }
660
661 //---------------------------------------------------------------
662 case ERPCs.DIAG_CHEATS_KILL_PLAYER:
663 {
664 player.SetHealth("","", -1);
665 break;
666 }
667
668 //---------------------------------------------------------------
669 case ERPCs.DIAG_CHEATS_INVINCIBILITY:
670 {
672 {
673 switch (CachedObjectsParams.PARAM1_INT.param1)
674 {
675 case 0:
676 {
677 if (parent)
678 {
679 parent.SetAllowDamage(true);
680 parent.SetCanBeDestroyed(true);
681 }
682
683 player.SetAllowDamage(true);
684 player.SetCanBeDestroyed(true);
685 break;
686 }
687 case 1:
688 {
689 if (parent)
690 {
691 parent.SetAllowDamage(true);
692 parent.SetCanBeDestroyed(false);
693 }
694
695 player.SetAllowDamage(true);
696 player.SetCanBeDestroyed(false);
697 break;
698 }
699 case 2:
700 {
701 if (parent)
702 {
703 parent.SetAllowDamage(false);
704 }
705
706 player.SetAllowDamage(false);
707 break;
708 }
709 }
710 break;
711 }
712 }
713
714 //---------------------------------------------------------------
715 case ERPCs.DIAG_CHEATS_DISABLE_STAMINA:
716 {
718 player.SetStaminaDisabled(CachedObjectsParams.PARAM1_BOOL.param1);
719 break;
720 }
721
722 //---------------------------------------------------------------
723 case ERPCs.DIAG_CHEATS_RESET_PLAYER:
724 {
725 player.ResetPlayer(false);
726 break;
727 }
728
729 //---------------------------------------------------------------
730 case ERPCs.DIAG_CHEATS_RESET_PLAYER_MAX:
731 {
732 player.ResetPlayer(true);
733 break;
734 }
735
736 //---------------------------------------------------------------
737 case ERPCs.DIAG_CHEATS_INVENTORY_ACCESS:
738 {
740 player.DEBUG_INVENTORY_ACCESS = CachedObjectsParams.PARAM1_INT.param1;
741 break;
742 }
743
744 //---------------------------------------------------------------
745 case ERPCs.DIAG_CHEATS_ITEMS_FIX:
746 {
747 player.FixAllInventoryItems();
748 break;
749 }
750 //---------------------------------------------------------------
751 //---------------------------DAMAGE DEBUG------------------------
752 // hardcoded for Heavy and Light, but Light can be converted to some sort of setup if we need to have even more times with more settings, ie. we could first set-up the hit params and then perform it
753 case ERPCs.DIAG_CHEATS_CREATE_HIT:
754 {
755 player.ProcessDirectDamage(DamageType.CUSTOM, player, "", "Dummy_Heavy", "0 0 0");
756 break;
757 }
758
759 case ERPCs.DIAG_CHEATS_CREATE_HIT_LIGHT:
760 {
761 player.ProcessDirectDamage(DamageType.CUSTOM, player, "", "MeleeFist", "0 0 0");
762 break;
763 }
764
765 //---------------------------------------------------------------
766 // LEVEL 2 - Script > Soft Skills
767 //---------------------------------------------------------------
768 case ERPCs.DIAG_SOFT_SKILLS_SHOW_DEBUG:
769 {
771 {
773 {
774 player.GetSoftSkillsManager().StartSynchTimer();
775 }
776 else
777 {
778 player.GetSoftSkillsManager().StopSynchTimer();
779 player.GetSoftSkillsManager().ResetDebugWindow();
780 }
781 }
782 break;
783 }
784
785 //---------------------------------------------------------------
786 case ERPCs.DIAG_SOFT_SKILLS_TOGGLE_STATE:
787 {
789 player.GetSoftSkillsManager().SetSoftSkillsState(CachedObjectsParams.PARAM1_BOOL.param1);
790 break;
791 }
792
793 //---------------------------------------------------------------
794 case ERPCs.DIAG_SOFT_SKILLS_TOGGLE_MODEL:
795 {
797 player.GetSoftSkillsManager().SetLinearState(CachedObjectsParams.PARAM1_BOOL.param1) ;
798 break;
799 }
800
801 //---------------------------------------------------------------
802 case ERPCs.DIAG_SOFT_SKILLS_SPECIALTY_VALUE:
803 {
805 {
806 SoftSkillsManager softSkillsMngr = player.GetSoftSkillsManager();
808 softSkillsMngr.SynchSpecialtyLevel();
809 player.GetStatSpecialty().Set(CachedObjectsParams.PARAM1_FLOAT.param1);
810 }
811 break;
812 }
813
814 //---------------------------------------------------------------
815 // LEVEL 2 - Script > Lifespan
816 //---------------------------------------------------------------
817 case ERPCs.DIAG_LIFESPAN_BLOODY_HANDS:
818 {
820 {
822 pluginLifespan.UpdateBloodyHandsVisibility(player, CachedObjectsParams.PARAM1_BOOL.param1);
823 player.SetBloodyHandsPenaltyChancePerAgent(eAgents.SALMONELLA, 0.75);
824 }
825 else
826 player.ClearBloodyHandsPenaltyChancePerAgent(eAgents.SALMONELLA);
827
828 break;
829 }
830
831 //---------------------------------------------------------------
832 case ERPCs.DIAG_LIFESPAN_PLAYTIME_UPDATE:
833 {
835 {
836 //reset playtime
837 player.StatUpdate(AnalyticsManagerServer.STAT_PLAYTIME, player.StatGet(AnalyticsManagerServer.STAT_PLAYTIME) * -1);
838 //set new playtime
840 player.SetLastShavedSeconds(0);
841 //update lifespan
842 PluginLifespan pluginLifespann = PluginLifespan.Cast(GetPlugin(PluginLifespan));
843 pluginLifespann.ChangeFakePlaytime( player, CachedObjectsParams.PARAM1_FLOAT.param1 );
844 pluginLifespann.UpdateLifespan(player, true);
845 }
846 break;
847 }
848
849
850 //---------------------------------------------------------------
851 // LEVEL 2 - Script > Misc
852 //---------------------------------------------------------------
853 case ERPCs.DIAG_MISC_LOG_PLAYER_STATS:
854 {
856 player.GetPlayerStats().SetAllowLogs(CachedObjectsParams.PARAM1_BOOL.param1);
857 break;
858 }
859
860 //---------------------------------------------------------------
861
862 //---------------------------------------------------------------
863 // LEVEL 2 - Script > Misc -> Environment
864 //---------------------------------------------------------------
865 case ERPCs.DIAG_MISC_ENVIRONMENT_DEBUG:
866 {
868 {
869 if (player.m_Environment)
870 player.m_Environment.m_Debug = CachedObjectsParams.PARAM1_BOOL.param1;
871 }
872 break;
873 }
874
875 #ifdef ENABLE_LOGGING
876 case ERPCs.DIAG_MISC_ENVIRONMENT_LOGGING_DRYWET:
877 {
879 {
880 if (player.m_Environment)
881 player.m_Environment.m_DebugLogDryWet = CachedObjectsParams.PARAM1_BOOL.param1;
882 }
883 break;
884 }
885
886 case ERPCs.DIAG_MISC_ENVIRONMENT_LOGGING_ITEMHEAT:
887 {
889 {
890 if (player.m_Environment)
891 player.m_Environment.m_DebugLogItemHeat = CachedObjectsParams.PARAM1_BOOL.param1;
892 }
893 break;
894 }
895 #endif
896
897 //---------------------------------------------------------------
898 // LEVEL 2 - Script > Misc
899 //---------------------------------------------------------------
900 case ERPCs.DIAG_MISC_FALLDAMAGE_DEBUG:
901 {
903 {
904 if (player.GetFallDamage())
905 player.GetFallDamage().m_Debug = CachedObjectsParams.PARAM1_BOOL.param1;
906 }
907 break;
908 }
909
910 //---------------------------------------------------------------
911 case ERPCs.DIAG_MISC_GO_UNCONSCIOUS:
912 {
913 GoUnconscious(player);
914 break;
915 }
916
917 //---------------------------------------------------------------
918 case ERPCs.DIAG_MISC_GO_UNCONSCIOUS_DELAYED:
919 {
920 g_Game.GetCallQueue(CALL_CATEGORY_SYSTEM).CallLater(GoUnconscious, 10000, false, player);
921 break;
922 }
923
924 //---------------------------------------------------------------
925 case ERPCs.DIAG_MISC_QUICK_RESTRAIN:
926 {
928 player.SetQuickRestrain(CachedObjectsParams.PARAM1_BOOL.param1);
929 break;
930 }
931
932 //---------------------------------------------------------------
933 // LEVEL 3 - Script > Misc > Hair Hiding
934 //---------------------------------------------------------------
935 case ERPCs.DIAG_MISC_HAIR_LEVEL_HIDE:
936 {
938 {
939 player.SetHairLevelToHide(CachedObjectsParams.PARAM2_INT_INT.param1, CachedObjectsParams.PARAM2_INT_INT.param2, true);
940 player.UpdateHairSelectionVisibility(true);
941 }
942 break;
943 }
944
945 //---------------------------------------------------------------
946 // LEVEL 2 - Script > Misc
947 //---------------------------------------------------------------
948 case ERPCs.DIAG_MISC_QUICK_FISHING:
949 {
951 player.SetQuickFishing(CachedObjectsParams.PARAM1_BOOL.param1);
952 break;
953 }
954
955 //---------------------------------------------------------------
956 case ERPCs.DIAG_MISC_TARGETABLE_BY_AI:
957 {
959 player.m_CanBeTargetedDebug = CachedObjectsParams.PARAM1_BOOL.param1;
960 break;
961 }
962
963 //---------------------------------------------------------------
964 case ERPCs.DIAG_MISC_DEBUG_MONITOR:
965 {
967 g_Game.SetDebugMonitorEnabled(CachedObjectsParams.PARAM1_BOOL.param1);
968 break;
969 }
970
971 //---------------------------------------------------------------
972 // LEVEL 2 - Script > Simulate script
973 //---------------------------------------------------------------
974 case ERPCs.DIAG_SIMULATE_INFINITE_LOOP:
975 {
976 while ( true )
977 {
978 Print("simulating infinite loop");
979 }
980 break;
981 }
982
983 //---------------------------------------------------------------
984 case ERPCs.DIAG_SIMULATE_NULL_POINTER:
985 {
986 PlayerBase NULL_player = null;
987 NULL_player.SetHealth("","", -1);
988 break;
989 }
990
991 //---------------------------------------------------------------
992 case ERPCs.DIAG_SIMULATE_DIVISION_BY_ZERO:
993 {
994 int zero = 0;
995 int division_by_zero = 1/zero;
996 break;
997 }
998
999 //---------------------------------------------------------------
1000 case ERPCs.DIAG_SIMULATE_ERROR_FUNCTION:
1001 {
1002 ErrorEx("Simulated error");
1003 break;
1004 }
1005
1006
1007 //---------------------------------------------------------------
1008 // LEVEL 2 - Script > Weapon
1009 //---------------------------------------------------------------
1010 case ERPCs.DIAG_WEAPON_PARTICLES:
1011 {
1014 break;
1015 }
1016
1017 //---------------------------------------------------------------
1018 case ERPCs.DIAG_WEAPON_RECOIL:
1019 {
1021 player.GetAimingModel().SetProceduralRecoilEnabled(CachedObjectsParams.PARAM1_BOOL.param1);
1022 break;
1023 }
1024
1025 //---------------------------------------------------------------
1026 case ERPCs.DIAG_WEAPON_BURST_VERSION:
1027 {
1029 player.GetWeaponManager().SetBurstOption(CachedObjectsParams.PARAM1_INT.param1);
1030 break;
1031 }
1032
1033
1034 //---------------------------------------------------------------
1035 // LEVEL 2 - Script > Bleeding
1036 //---------------------------------------------------------------
1037 case ERPCs.DIAG_BLEEDING_DISABLE_BLOOD_LOSS:
1038 {
1040 player.GetBleedingManagerServer().SetBloodLoss(CachedObjectsParams.PARAM1_BOOL.param1);
1041 break;
1042 }
1043
1044 //---------------------------------------------------------------
1045 case ERPCs.DIAG_BLEEDING_ACTIVATE_SOURCE:
1046 {
1048 player.GetBleedingManagerServer().DebugActivateBleedingSource(CachedObjectsParams.PARAM1_INT.param1);
1049 break;
1050 }
1051
1052 //---------------------------------------------------------------
1053 case ERPCs.DIAG_BLEEDING_ACTIVATE_ALL_SOURCES:
1054 {
1055 player.GetBleedingManagerServer().ActivateAllBS();
1056 break;
1057 }
1058
1059
1060 //---------------------------------------------------------------
1061 // LEVEL 2 - Script > Logs
1062 //---------------------------------------------------------------
1063 case ERPCs.DIAG_LOGS_ACTIONS:
1064 {
1067 break;
1068 }
1069
1070 //---------------------------------------------------------------
1071 case ERPCs.DIAG_LOGS_WEAPONS:
1072 {
1075 break;
1076 }
1077
1078 //---------------------------------------------------------------
1079 case ERPCs.DIAG_LOGS_SYNC:
1080 {
1083 break;
1084 }
1085
1086 //---------------------------------------------------------------
1087 case ERPCs.DIAG_LOGS_BASEBUILDING:
1088 {
1091 break;
1092 }
1093
1094 //---------------------------------------------------------------
1095 case ERPCs.DIAG_LOGS_SYMPTOMS:
1096 {
1099 break;
1100 }
1101
1102 //---------------------------------------------------------------
1103 case ERPCs.DIAG_LOGS_INVENTORY_MOVE:
1104 {
1107 break;
1108 }
1109
1110 //---------------------------------------------------------------
1111 case ERPCs.DIAG_LOGS_INVENTORY_RESERVATION:
1112 {
1115 break;
1116 }
1117
1118 //---------------------------------------------------------------
1119 case ERPCs.DIAG_LOGS_INVENTORY_HFSM:
1120 {
1123 break;
1124 }
1125
1126 //---------------------------------------------------------------
1127 case ERPCs.DIAG_LOGS_QUICKBAR:
1128 {
1131 break;
1132 }
1133
1134 //---------------------------------------------------------------
1135 case ERPCs.DIAG_LOGS_BLEEDING_CHANCES:
1136 {
1139 break;
1140 }
1141
1142 //---------------------------------------------------------------
1143 // LEVEL 2 - Script > Base Building
1144 //---------------------------------------------------------------
1145 case ERPCs.DIAG_BASEBUILDING_WOOD:
1146 {
1148 DiagMenu.SetValue(DiagMenuIDs.BASEBUILDING_WOOD, CachedObjectsParams.PARAM1_BOOL.param1);
1149 break;
1150 }
1151
1152 //---------------------------------------------------------------
1153 case ERPCs.DIAG_BASEBUILDING_GATE:
1154 {
1156 DiagMenu.SetValue(DiagMenuIDs.BASEBUILDING_GATE, CachedObjectsParams.PARAM1_BOOL.param1);
1157 break;
1158 }
1159
1160
1161 //---------------------------------------------------------------
1162 // LEVEL 2 - Script > Finishers
1163 //---------------------------------------------------------------
1164 case ERPCs.DIAG_FINISHERS_FORCE_FINISHER:
1165 {
1167 player.GetMeleeCombat().DebugSetForcedFinisherType(CachedObjectsParams.PARAM1_INT.param1);
1168 break;
1169 }
1170
1171
1172 //---------------------------------------------------------------
1173 // LEVEL 2 - Script > Cinematic Camera Tools
1174 //---------------------------------------------------------------
1175 case ERPCs.DIAG_CAMERATOOLS_CAM_DATA:
1176 {
1177 if (!player.m_CameraToolsMenuClient)
1178 {
1179 player.m_CameraToolsMenuClient = new CameraToolsMenuClient();
1180 }
1181
1182 player.m_CameraToolsMenuClient.OnRPC(ctx);
1183 break;
1184 }
1185
1186
1187 //---------------------------------------------------------------
1188 // LEVEL 2 - Script > Time Accel
1189 //---------------------------------------------------------------
1190 case ERPCs.DIAG_TIMEACCEL:
1191 {
1192 TimeAccelParam tap = new TimeAccelParam(false, 0, 0);
1193
1194 if (ctx.Read(tap))
1195 {
1196 FeatureTimeAccel.m_CurrentTimeAccel = tap;
1197 //Print("received from " + player);
1198 array<Man> players = new array<Man>();
1199 g_Game.GetPlayers(players);
1200 foreach (Man p : players)
1201 {
1202 if (p != player)// send to everyone except the one we receieved from
1203 {
1204 //Print("sending to " + p);
1205 g_Game.RPCSingleParam( p, ERPCs.DIAG_TIMEACCEL_CLIENT_SYNC, tap, true, p.GetIdentity());
1206 }
1207 }
1208
1209 /*
1210 Print(" -------- TimeAccelParam -------");
1211 Print(tap.param1);
1212 Print(tap.param2);
1213 Print(tap.param3);
1214 Print(" -------------------------------");
1215 Print(FeatureTimeAccel.GetFeatureTimeAccelEnabled(ETimeAccelCategories.UNDERGROUND_ENTRANCE));
1216 Print(FeatureTimeAccel.GetFeatureTimeAccelValue());
1217 Print(" ===============================");
1218 */
1219 }
1220 break;
1221 }
1222
1223 //---------------------------------------------------------------
1224 case ERPCs.DIAG_TIMEACCEL_CLIENT_SYNC:
1225 {
1226 TimeAccelParam tap2 = new TimeAccelParam(false, 0, 0);
1227
1228 if (ctx.Read(tap2))
1229 {
1230 int bigFactor = tap2.param2;
1231 float smallFactor = tap2.param2 - bigFactor;
1232 SetTimeAccelMenuState(tap2.param1, bigFactor, smallFactor, tap2.param3);
1233 FeatureTimeAccel.m_CurrentTimeAccel = tap2;
1234 }
1235 break;
1236 }
1237
1238 //---------------------------------------------------------------
1239 // LEVEL 2 - Script > Vehicles
1240 //---------------------------------------------------------------
1241 case ERPCs.DIAG_VEHICLE_DEBUG_OUTPUT:
1242 {
1244 CarScript.DEBUG_OUTPUT_TYPE = CachedObjectsParams.PARAM1_INT.param1;
1245 break;
1246 }
1247 //---------------------------------------------------------------
1248 case ERPCs.DIAG_VEHICLES_DUMP_CRASH_DATA_REQUEST:
1249 {
1251 CrashDebugData.SendData(player);
1252 break;
1253 }
1254 }
1255 }
1256
1257 //---------------------------------------------
1258 void GoUnconscious(PlayerBase player)
1259 {
1260 if (player.IsUnconscious())
1261 {
1262 player.SetHealth("", "Shock", 100);
1263 }
1264 else
1265 {
1266 player.m_UnconsciousEndTime = -60;
1267 player.SetHealth("", "Shock", 0);
1268 }
1269 }
1270
1271 //---------------------------------------------
1272 void InitTimeAccel()
1273 {
1274 FeatureTimeAccel.m_CurrentTimeAccel = GetTimeAccelMenuState();
1275
1276 string value;
1277
1278 if ( g_Game.CommandlineGetParam("timeAccel", value))
1279 {
1280 TStringArray params = new TStringArray();
1281
1282 value.Replace(" ","");
1283 value.Split(",", params);
1284
1285 bool enable = params[0].ToInt();
1286 int timeAccelBig = params[1].ToInt();
1287 float timeAccelSmall = params[2].ToFloat();
1288 int bitMask = params[3].ToInt();
1289
1290 SetTimeAccelMenuState(enable, timeAccelBig, timeAccelSmall, bitMask);
1291 }
1292 }
1293
1294 TimeAccelParam GetTimeAccelMenuState()
1295 {
1296 bool enable = DiagMenu.GetBool(DiagMenuIDs.FEATURE_TIME_ACCEL);
1297 float timeAccelBig = DiagMenu.GetRangeValue(DiagMenuIDs.FEATURE_TIME_ACCEL_VALUE1);
1298 float timeAccelSmall = DiagMenu.GetRangeValue(DiagMenuIDs.FEATURE_TIME_ACCEL_VALUE2);
1299 float timeAccel = timeAccelBig + timeAccelSmall;
1300 int bitMask = FeatureTimeAccel.GetTimeAccelBitmask();
1301
1302 TimeAccelParam param = new TimeAccelParam(enable, timeAccel, bitMask);
1303 return param;
1304 }
1305
1306 void SetTimeAccelMenuState(bool enable, int bigFactor, float smallFactor, int bitmask)
1307 {
1308 DiagMenu.SetValue(DiagMenuIDs.FEATURE_TIME_ACCEL, enable);
1309 DiagMenu.SetRangeValue(DiagMenuIDs.FEATURE_TIME_ACCEL_VALUE1, bigFactor);
1310 DiagMenu.SetRangeValue(DiagMenuIDs.FEATURE_TIME_ACCEL_VALUE2, smallFactor);
1311
1312 for (int i = 0; i < EnumTools.GetEnumSize(ETimeAccelCategories); ++i)
1313 {
1314 int bit = 1 << i;
1315 bool on = (bit & bitmask);
1316 DiagMenu.SetValue(FeatureTimeAccel.GetDiagIDByCategory(bit), on);
1317 }
1318 }
1319#endif
1320}
void UiHintPanel(Widget parent_widget)
static const float SEQUENCE_DURATION_DEFAULT
Used to pre-gen poisson probabilities, I REALLY wouldn't go over 10 here. Values above 12 cause overf...
static ref Param2< int, int > PARAM2_INT_INT
static ref Param1< bool > PARAM1_BOOL
static ref Param1< float > PARAM1_FLOAT
static ref Param1< int > PARAM1_INT
Super root of all classes in Enforce script.
Definition enscript.c:11
static int GetEnumSize(typename e)
Return amount of values in enum.
Definition enconvert.c:636
static void QuickbarLogEnable(bool enable)
Definition debug.c:791
static void BaseBuildingLogEnable(bool enable)
Definition debug.c:801
static void SymptomLogEnable(bool enable)
Definition debug.c:811
static void InventoryMoveLogEnable(bool enable)
Definition debug.c:751
static void InventoryHFSMLogEnable(bool enable)
Definition debug.c:771
static void ActionLogEnable(bool enable)
Definition debug.c:741
static void SyncLogEnable(bool enable)
Definition debug.c:781
static void BleedingChancesLogEnable(bool enable)
Definition debug.c:836
static void WeaponLogEnable(bool enable)
Definition debug.c:821
static void InventoryReservationLogEnable(bool enable)
Definition debug.c:761
void OnInit()
void PluginBase()
void OnRPC(PlayerBase player, int rpc_type, ParamsReadContext ctx)
void OnDestroy()
static bool m_GunParticlesState
Definition gameplay.c:1538
proto bool Read(void value_in)
void SetSpecialtyLevel(float specialty_level)
Result for an object found in CGame.IsBoxCollidingGeometryProxy.
proto string ToString(bool simple=true)
DamageType
exposed from C++ (do not change)
DayZGame g_Game
Definition dayzgame.c:3942
eAgents
Definition eagents.c:3
DiagMenuIDs
Definition ediagmenuids.c:2
ERPCs
Definition erpcs.c:2
Serializer ParamsReadContext
Definition gameplay.c:15
proto void Print(void var)
Prints content of variable to console/log.
enum ShapeType ErrorEx
static proto void InitScriptDiags()
To be used before registering scripted diags.
static proto bool GetBool(int id, bool reverse=false)
Get value as bool from the given script id.
static proto void RegisterRange(int id, string shortcut, string name, int parent, string valuenames, func callback=null)
Register a new range item.
static proto void SetValue(int id, int value)
Set value at the given script id.
static proto void RegisterMenu(int id, string name, int parent)
Register a new menu.
static proto void RegisterBool(int id, string shortcut, string name, int parent, bool reverse=false, func callback=null)
Register a new bool item.
static proto void SetRangeValue(int id, float value)
Set range value at the given script id.
static proto void RegisterItem(int id, string shortcut, string name, int parent, string values, func callback=null)
Register a new item.
static proto void ClearScriptDiags()
To be used when scripted diags should not be present.
static proto float GetRangeValue(int id)
Get range value at the given script id.
static proto void Unregister(int id)
Unregister the item at given id.
static proto bool CastTo(out Class to, Class from)
Try to safely down-cast base class to child class.
array< string > TStringArray
Definition enscript.c:712
void Split(string sample, out array< string > output)
Splits string into array of strings separated by 'sample'.
Definition enstring.c:396
proto int Replace(string sample, string replace)
Replace all occurrances of 'sample' in 'str' by 'replace'.
const int CALL_CATEGORY_SYSTEM
Definition tools.c:8
DebugActionType
@ UNLIMITED_AMMO
@ GENERIC_ACTIONS
@ PLAYER_AGENTS
void PluginLifespan()
PluginBase GetPlugin(typename plugin_type)