DayZ 1.29
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено
PluginDiagMenu.c
См. документацию.
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
547 //---------------------------------------------
548 protected int GetModdedDiagID()
549 {
550 return ++m_ModdedDiagID;
551 }
552
553 //---------------------------------------------
554 protected int GetModdedRootMenu()
555 {
556 return DiagMenuIDs.MODDED_MENU;
557 }
558
559 //---------------------------------------------
560 protected void RegisterModdedDiagsIDs();
561
562 //---------------------------------------------
563 protected void RegisterModdedDiags()
564 {
565 DiagMenu.RegisterMenu(DiagMenuIDs.MODDED_MENU, "Script - Modded", -1);
566 }
567
568 //---------------------------------------------
569 void OnRPC(PlayerBase player, int rpc_type, ParamsReadContext ctx)
570 {
571 EntityAI parent;
572 PluginInventoryDebug pluginInventoryDebug;
573 Class.CastTo(parent, player.GetParent());
574
575 switch (rpc_type)
576 {
577 //---------------------------------------------------------------
578 // Misc, multipurpose
579 //---------------------------------------------------------------
580 case ERPCs.DIAG_ITEM_DEBUG_ACTIONS:
581 {
583 ItemBase.SetDebugActionsMask(CachedObjectsParams.PARAM1_INT.param1);
584 break;
585 }
586
587 //---------------------------------------------------------------
588 // LEVEL 2 - Script > Inventory
589 //---------------------------------------------------------------
590 case ERPCs.DIAG_INVENTORY_ACK_HANDS:
591 {
593 {
594 pluginInventoryDebug = PluginInventoryDebug.Cast(GetPlugin(PluginInventoryDebug));
595 pluginInventoryDebug.SetHandAckEnable(CachedObjectsParams.PARAM1_BOOL.param1);
596 }
597 break;
598 }
599
600 case ERPCs.DIAG_INVENTORY_REPAIR_DESYNC:
601 {
603 {
604 pluginInventoryDebug = PluginInventoryDebug.Cast(GetPlugin(PluginInventoryDebug));
605 pluginInventoryDebug.SetDesyncRepairEnable(CachedObjectsParams.PARAM1_BOOL.param1);
606 }
607 break;
608 }
609
610 //---------------------------------------------------------------
611 // LEVEL 2 - Script > Player States
612 //---------------------------------------------------------------
613 case ERPCs.DIAG_PLAYER_SYMPTOMS_DEBUG_ON:
614 case ERPCs.DIAG_PLAYER_SYMPTOMS_DEBUG_OFF:
615 case ERPCs.DIAG_PLAYER_SYMPTOMS_DEBUG:
616 {
617 if (player.GetSymptomManager())
618 {
619 player.GetSymptomManager().OnRPCDebug(rpc_type, ctx);
620 }
621 break;
622 }
623
624
625
626 //---------------------------------------------------------------
627 // LEVEL 2 - Script > Crafting
628 //---------------------------------------------------------------
629 case ERPCs.DIAG_CRAFTING_INSTANT:
630 {
632 {
633 PluginRecipesManager pluginRecipesManager = PluginRecipesManager.Cast(GetPlugin(PluginRecipesManager));
634 pluginRecipesManager.SetEnableDebugCrafting(CachedObjectsParams.PARAM1_INT.param1);
635 }
636 break;
637 }
638
639
640 //---------------------------------------------------------------
641 // LEVEL 2 - Script > Cheats
642 //---------------------------------------------------------------
643 case ERPCs.DIAG_CHEATS_MODIFIERS:
644 {
646 player.SetModifiers(CachedObjectsParams.PARAM1_INT.param1);
647 break;
648 }
649
650 //---------------------------------------------------------------
651 case ERPCs.DIAG_CHEATS_KILL_PLAYER:
652 {
653 player.SetHealth("","", -1);
654 break;
655 }
656
657 //---------------------------------------------------------------
658 case ERPCs.DIAG_CHEATS_INVINCIBILITY:
659 {
661 {
662 switch (CachedObjectsParams.PARAM1_INT.param1)
663 {
664 case 0:
665 {
666 if (parent)
667 {
668 parent.SetAllowDamage(true);
669 parent.SetCanBeDestroyed(true);
670 }
671
672 player.SetAllowDamage(true);
673 player.SetCanBeDestroyed(true);
674 break;
675 }
676 case 1:
677 {
678 if (parent)
679 {
680 parent.SetAllowDamage(true);
681 parent.SetCanBeDestroyed(false);
682 }
683
684 player.SetAllowDamage(true);
685 player.SetCanBeDestroyed(false);
686 break;
687 }
688 case 2:
689 {
690 if (parent)
691 {
692 parent.SetAllowDamage(false);
693 }
694
695 player.SetAllowDamage(false);
696 break;
697 }
698 }
699 break;
700 }
701 }
702
703 //---------------------------------------------------------------
704 case ERPCs.DIAG_CHEATS_DISABLE_STAMINA:
705 {
707 player.SetStaminaDisabled(CachedObjectsParams.PARAM1_BOOL.param1);
708 break;
709 }
710
711 //---------------------------------------------------------------
712 case ERPCs.DIAG_CHEATS_RESET_PLAYER:
713 {
714 player.ResetPlayer(false);
715 break;
716 }
717
718 //---------------------------------------------------------------
719 case ERPCs.DIAG_CHEATS_RESET_PLAYER_MAX:
720 {
721 player.ResetPlayer(true);
722 break;
723 }
724
725 //---------------------------------------------------------------
726 case ERPCs.DIAG_CHEATS_INVENTORY_ACCESS:
727 {
729 player.DEBUG_INVENTORY_ACCESS = CachedObjectsParams.PARAM1_INT.param1;
730 break;
731 }
732
733 //---------------------------------------------------------------
734 case ERPCs.DIAG_CHEATS_ITEMS_FIX:
735 {
736 player.FixAllInventoryItems();
737 break;
738 }
739 //---------------------------------------------------------------
740 //---------------------------DAMAGE DEBUG------------------------
741 // 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
742 case ERPCs.DIAG_CHEATS_CREATE_HIT:
743 {
744 player.ProcessDirectDamage(DamageType.CUSTOM, player, "", "Dummy_Heavy", "0 0 0");
745 break;
746 }
747
748 case ERPCs.DIAG_CHEATS_CREATE_HIT_LIGHT:
749 {
750 player.ProcessDirectDamage(DamageType.CUSTOM, player, "", "MeleeFist", "0 0 0");
751 break;
752 }
753
754 //---------------------------------------------------------------
755 // LEVEL 2 - Script > Soft Skills
756 //---------------------------------------------------------------
757 case ERPCs.DIAG_SOFT_SKILLS_SHOW_DEBUG:
758 {
760 {
762 {
763 player.GetSoftSkillsManager().StartSynchTimer();
764 }
765 else
766 {
767 player.GetSoftSkillsManager().StopSynchTimer();
768 player.GetSoftSkillsManager().ResetDebugWindow();
769 }
770 }
771 break;
772 }
773
774 //---------------------------------------------------------------
775 case ERPCs.DIAG_SOFT_SKILLS_TOGGLE_STATE:
776 {
778 player.GetSoftSkillsManager().SetSoftSkillsState(CachedObjectsParams.PARAM1_BOOL.param1);
779 break;
780 }
781
782 //---------------------------------------------------------------
783 case ERPCs.DIAG_SOFT_SKILLS_TOGGLE_MODEL:
784 {
786 player.GetSoftSkillsManager().SetLinearState(CachedObjectsParams.PARAM1_BOOL.param1) ;
787 break;
788 }
789
790 //---------------------------------------------------------------
791 case ERPCs.DIAG_SOFT_SKILLS_SPECIALTY_VALUE:
792 {
794 {
795 SoftSkillsManager softSkillsMngr = player.GetSoftSkillsManager();
797 softSkillsMngr.SynchSpecialtyLevel();
798 player.GetStatSpecialty().Set(CachedObjectsParams.PARAM1_FLOAT.param1);
799 }
800 break;
801 }
802
803 //---------------------------------------------------------------
804 // LEVEL 2 - Script > Lifespan
805 //---------------------------------------------------------------
806 case ERPCs.DIAG_LIFESPAN_BLOODY_HANDS:
807 {
809 {
811 pluginLifespan.UpdateBloodyHandsVisibility(player, CachedObjectsParams.PARAM1_BOOL.param1);
812 player.SetBloodyHandsPenaltyChancePerAgent(eAgents.SALMONELLA, 0.75);
813 }
814 else
815 player.ClearBloodyHandsPenaltyChancePerAgent(eAgents.SALMONELLA);
816
817 break;
818 }
819
820 //---------------------------------------------------------------
821 case ERPCs.DIAG_LIFESPAN_PLAYTIME_UPDATE:
822 {
824 {
825 //reset playtime
826 player.StatUpdate(AnalyticsManagerServer.STAT_PLAYTIME, player.StatGet(AnalyticsManagerServer.STAT_PLAYTIME) * -1);
827 //set new playtime
829 player.SetLastShavedSeconds(0);
830 //update lifespan
831 PluginLifespan pluginLifespann = PluginLifespan.Cast(GetPlugin(PluginLifespan));
832 pluginLifespann.ChangeFakePlaytime( player, CachedObjectsParams.PARAM1_FLOAT.param1 );
833 pluginLifespann.UpdateLifespan(player, true);
834 }
835 break;
836 }
837
838
839 //---------------------------------------------------------------
840 // LEVEL 2 - Script > Misc
841 //---------------------------------------------------------------
842 case ERPCs.DIAG_MISC_LOG_PLAYER_STATS:
843 {
845 player.GetPlayerStats().SetAllowLogs(CachedObjectsParams.PARAM1_BOOL.param1);
846 break;
847 }
848
849 //---------------------------------------------------------------
850
851 //---------------------------------------------------------------
852 // LEVEL 2 - Script > Misc -> Environment
853 //---------------------------------------------------------------
854 case ERPCs.DIAG_MISC_ENVIRONMENT_DEBUG:
855 {
857 {
858 if (player.m_Environment)
859 player.m_Environment.m_Debug = CachedObjectsParams.PARAM1_BOOL.param1;
860 }
861 break;
862 }
863
864 #ifdef ENABLE_LOGGING
865 case ERPCs.DIAG_MISC_ENVIRONMENT_LOGGING_DRYWET:
866 {
868 {
869 if (player.m_Environment)
870 player.m_Environment.m_DebugLogDryWet = CachedObjectsParams.PARAM1_BOOL.param1;
871 }
872 break;
873 }
874
875 case ERPCs.DIAG_MISC_ENVIRONMENT_LOGGING_ITEMHEAT:
876 {
878 {
879 if (player.m_Environment)
880 player.m_Environment.m_DebugLogItemHeat = CachedObjectsParams.PARAM1_BOOL.param1;
881 }
882 break;
883 }
884 #endif
885
886 //---------------------------------------------------------------
887 // LEVEL 2 - Script > Misc
888 //---------------------------------------------------------------
889 case ERPCs.DIAG_MISC_FALLDAMAGE_DEBUG:
890 {
892 {
893 if (player.GetFallDamage())
894 player.GetFallDamage().m_Debug = CachedObjectsParams.PARAM1_BOOL.param1;
895 }
896 break;
897 }
898
899 //---------------------------------------------------------------
900 case ERPCs.DIAG_MISC_GO_UNCONSCIOUS:
901 {
902 GoUnconscious(player);
903 break;
904 }
905
906 //---------------------------------------------------------------
907 case ERPCs.DIAG_MISC_GO_UNCONSCIOUS_DELAYED:
908 {
909 g_Game.GetCallQueue(CALL_CATEGORY_SYSTEM).CallLater(GoUnconscious, 10000, false, player);
910 break;
911 }
912
913 //---------------------------------------------------------------
914 case ERPCs.DIAG_MISC_QUICK_RESTRAIN:
915 {
917 player.SetQuickRestrain(CachedObjectsParams.PARAM1_BOOL.param1);
918 break;
919 }
920
921 //---------------------------------------------------------------
922 // LEVEL 3 - Script > Misc > Hair Hiding
923 //---------------------------------------------------------------
924 case ERPCs.DIAG_MISC_HAIR_LEVEL_HIDE:
925 {
927 {
928 player.SetHairLevelToHide(CachedObjectsParams.PARAM2_INT_INT.param1, CachedObjectsParams.PARAM2_INT_INT.param2, true);
929 player.UpdateHairSelectionVisibility(true);
930 }
931 break;
932 }
933
934 //---------------------------------------------------------------
935 // LEVEL 2 - Script > Misc
936 //---------------------------------------------------------------
937 case ERPCs.DIAG_MISC_QUICK_FISHING:
938 {
940 player.SetQuickFishing(CachedObjectsParams.PARAM1_BOOL.param1);
941 break;
942 }
943
944 //---------------------------------------------------------------
945 case ERPCs.DIAG_MISC_TARGETABLE_BY_AI:
946 {
948 player.m_CanBeTargetedDebug = CachedObjectsParams.PARAM1_BOOL.param1;
949 break;
950 }
951
952 //---------------------------------------------------------------
953 case ERPCs.DIAG_MISC_DEBUG_MONITOR:
954 {
956 g_Game.SetDebugMonitorEnabled(CachedObjectsParams.PARAM1_BOOL.param1);
957 break;
958 }
959
960 //---------------------------------------------------------------
961 // LEVEL 2 - Script > Simulate script
962 //---------------------------------------------------------------
963 case ERPCs.DIAG_SIMULATE_INFINITE_LOOP:
964 {
965 while ( true )
966 {
967 Print("simulating infinite loop");
968 }
969 break;
970 }
971
972 //---------------------------------------------------------------
973 case ERPCs.DIAG_SIMULATE_NULL_POINTER:
974 {
975 PlayerBase NULL_player = null;
976 NULL_player.SetHealth("","", -1);
977 break;
978 }
979
980 //---------------------------------------------------------------
981 case ERPCs.DIAG_SIMULATE_DIVISION_BY_ZERO:
982 {
983 int zero = 0;
984 int division_by_zero = 1/zero;
985 break;
986 }
987
988 //---------------------------------------------------------------
989 case ERPCs.DIAG_SIMULATE_ERROR_FUNCTION:
990 {
991 ErrorEx("Simulated error");
992 break;
993 }
994
995
996 //---------------------------------------------------------------
997 // LEVEL 2 - Script > Weapon
998 //---------------------------------------------------------------
999 case ERPCs.DIAG_WEAPON_PARTICLES:
1000 {
1003 break;
1004 }
1005
1006 //---------------------------------------------------------------
1007 case ERPCs.DIAG_WEAPON_RECOIL:
1008 {
1010 player.GetAimingModel().SetProceduralRecoilEnabled(CachedObjectsParams.PARAM1_BOOL.param1);
1011 break;
1012 }
1013
1014 //---------------------------------------------------------------
1015 case ERPCs.DIAG_WEAPON_BURST_VERSION:
1016 {
1018 player.GetWeaponManager().SetBurstOption(CachedObjectsParams.PARAM1_INT.param1);
1019 break;
1020 }
1021
1022
1023 //---------------------------------------------------------------
1024 // LEVEL 2 - Script > Bleeding
1025 //---------------------------------------------------------------
1026 case ERPCs.DIAG_BLEEDING_DISABLE_BLOOD_LOSS:
1027 {
1029 player.GetBleedingManagerServer().SetBloodLoss(CachedObjectsParams.PARAM1_BOOL.param1);
1030 break;
1031 }
1032
1033 //---------------------------------------------------------------
1034 case ERPCs.DIAG_BLEEDING_ACTIVATE_SOURCE:
1035 {
1037 player.GetBleedingManagerServer().DebugActivateBleedingSource(CachedObjectsParams.PARAM1_INT.param1);
1038 break;
1039 }
1040
1041 //---------------------------------------------------------------
1042 case ERPCs.DIAG_BLEEDING_ACTIVATE_ALL_SOURCES:
1043 {
1044 player.GetBleedingManagerServer().ActivateAllBS();
1045 break;
1046 }
1047
1048
1049 //---------------------------------------------------------------
1050 // LEVEL 2 - Script > Logs
1051 //---------------------------------------------------------------
1052 case ERPCs.DIAG_LOGS_ACTIONS:
1053 {
1056 break;
1057 }
1058
1059 //---------------------------------------------------------------
1060 case ERPCs.DIAG_LOGS_WEAPONS:
1061 {
1064 break;
1065 }
1066
1067 //---------------------------------------------------------------
1068 case ERPCs.DIAG_LOGS_SYNC:
1069 {
1072 break;
1073 }
1074
1075 //---------------------------------------------------------------
1076 case ERPCs.DIAG_LOGS_BASEBUILDING:
1077 {
1080 break;
1081 }
1082
1083 //---------------------------------------------------------------
1084 case ERPCs.DIAG_LOGS_SYMPTOMS:
1085 {
1088 break;
1089 }
1090
1091 //---------------------------------------------------------------
1092 case ERPCs.DIAG_LOGS_INVENTORY_MOVE:
1093 {
1096 break;
1097 }
1098
1099 //---------------------------------------------------------------
1100 case ERPCs.DIAG_LOGS_INVENTORY_RESERVATION:
1101 {
1104 break;
1105 }
1106
1107 //---------------------------------------------------------------
1108 case ERPCs.DIAG_LOGS_INVENTORY_HFSM:
1109 {
1112 break;
1113 }
1114
1115 //---------------------------------------------------------------
1116 case ERPCs.DIAG_LOGS_QUICKBAR:
1117 {
1120 break;
1121 }
1122
1123 //---------------------------------------------------------------
1124 case ERPCs.DIAG_LOGS_BLEEDING_CHANCES:
1125 {
1128 break;
1129 }
1130
1131 //---------------------------------------------------------------
1132 // LEVEL 2 - Script > Base Building
1133 //---------------------------------------------------------------
1134 case ERPCs.DIAG_BASEBUILDING_WOOD:
1135 {
1137 DiagMenu.SetValue(DiagMenuIDs.BASEBUILDING_WOOD, CachedObjectsParams.PARAM1_BOOL.param1);
1138 break;
1139 }
1140
1141 //---------------------------------------------------------------
1142 case ERPCs.DIAG_BASEBUILDING_GATE:
1143 {
1145 DiagMenu.SetValue(DiagMenuIDs.BASEBUILDING_GATE, CachedObjectsParams.PARAM1_BOOL.param1);
1146 break;
1147 }
1148
1149
1150 //---------------------------------------------------------------
1151 // LEVEL 2 - Script > Finishers
1152 //---------------------------------------------------------------
1153 case ERPCs.DIAG_FINISHERS_FORCE_FINISHER:
1154 {
1156 player.GetMeleeCombat().DebugSetForcedFinisherType(CachedObjectsParams.PARAM1_INT.param1);
1157 break;
1158 }
1159
1160
1161 //---------------------------------------------------------------
1162 // LEVEL 2 - Script > Cinematic Camera Tools
1163 //---------------------------------------------------------------
1164 case ERPCs.DIAG_CAMERATOOLS_CAM_DATA:
1165 {
1166 if (!player.m_CameraToolsMenuClient)
1167 {
1168 player.m_CameraToolsMenuClient = new CameraToolsMenuClient();
1169 }
1170
1171 player.m_CameraToolsMenuClient.OnRPC(ctx);
1172 break;
1173 }
1174
1175
1176 //---------------------------------------------------------------
1177 // LEVEL 2 - Script > Time Accel
1178 //---------------------------------------------------------------
1179 case ERPCs.DIAG_TIMEACCEL:
1180 {
1181 TimeAccelParam tap = new TimeAccelParam(false, 0, 0);
1182
1183 if (ctx.Read(tap))
1184 {
1185 FeatureTimeAccel.m_CurrentTimeAccel = tap;
1186 //Print("received from " + player);
1187 array<Man> players = new array<Man>();
1188 g_Game.GetPlayers(players);
1189 foreach (Man p : players)
1190 {
1191 if (p != player)// send to everyone except the one we receieved from
1192 {
1193 //Print("sending to " + p);
1194 g_Game.RPCSingleParam( p, ERPCs.DIAG_TIMEACCEL_CLIENT_SYNC, tap, true, p.GetIdentity());
1195 }
1196 }
1197
1198 /*
1199 Print(" -------- TimeAccelParam -------");
1200 Print(tap.param1);
1201 Print(tap.param2);
1202 Print(tap.param3);
1203 Print(" -------------------------------");
1204 Print(FeatureTimeAccel.GetFeatureTimeAccelEnabled(ETimeAccelCategories.UNDERGROUND_ENTRANCE));
1205 Print(FeatureTimeAccel.GetFeatureTimeAccelValue());
1206 Print(" ===============================");
1207 */
1208 }
1209 break;
1210 }
1211
1212 //---------------------------------------------------------------
1213 case ERPCs.DIAG_TIMEACCEL_CLIENT_SYNC:
1214 {
1215 TimeAccelParam tap2 = new TimeAccelParam(false, 0, 0);
1216
1217 if (ctx.Read(tap2))
1218 {
1219 int bigFactor = tap2.param2;
1220 float smallFactor = tap2.param2 - bigFactor;
1221 SetTimeAccelMenuState(tap2.param1, bigFactor, smallFactor, tap2.param3);
1222 FeatureTimeAccel.m_CurrentTimeAccel = tap2;
1223 }
1224 break;
1225 }
1226
1227 //---------------------------------------------------------------
1228 // LEVEL 2 - Script > Vehicles
1229 //---------------------------------------------------------------
1230 case ERPCs.DIAG_VEHICLE_DEBUG_OUTPUT:
1231 {
1233 CarScript.DEBUG_OUTPUT_TYPE = CachedObjectsParams.PARAM1_INT.param1;
1234 break;
1235 }
1236 //---------------------------------------------------------------
1237 case ERPCs.DIAG_VEHICLES_DUMP_CRASH_DATA_REQUEST:
1238 {
1240 CrashDebugData.SendData(player);
1241 break;
1242 }
1243 }
1244 }
1245
1246 //---------------------------------------------
1247 void GoUnconscious(PlayerBase player)
1248 {
1249 if (player.IsUnconscious())
1250 {
1251 player.SetHealth("", "Shock", 100);
1252 }
1253 else
1254 {
1255 player.m_UnconsciousEndTime = -60;
1256 player.SetHealth("", "Shock", 0);
1257 }
1258 }
1259
1260 //---------------------------------------------
1261 void InitTimeAccel()
1262 {
1263 FeatureTimeAccel.m_CurrentTimeAccel = GetTimeAccelMenuState();
1264
1265 string value;
1266
1267 if ( g_Game.CommandlineGetParam("timeAccel", value))
1268 {
1269 TStringArray params = new TStringArray();
1270
1271 value.Replace(" ","");
1272 value.Split(",", params);
1273
1274 bool enable = params[0].ToInt();
1275 int timeAccelBig = params[1].ToInt();
1276 float timeAccelSmall = params[2].ToFloat();
1277 int bitMask = params[3].ToInt();
1278
1279 SetTimeAccelMenuState(enable, timeAccelBig, timeAccelSmall, bitMask);
1280 }
1281 }
1282
1283 TimeAccelParam GetTimeAccelMenuState()
1284 {
1285 bool enable = DiagMenu.GetBool(DiagMenuIDs.FEATURE_TIME_ACCEL);
1286 float timeAccelBig = DiagMenu.GetRangeValue(DiagMenuIDs.FEATURE_TIME_ACCEL_VALUE1);
1287 float timeAccelSmall = DiagMenu.GetRangeValue(DiagMenuIDs.FEATURE_TIME_ACCEL_VALUE2);
1288 float timeAccel = timeAccelBig + timeAccelSmall;
1289 int bitMask = FeatureTimeAccel.GetTimeAccelBitmask();
1290
1291 TimeAccelParam param = new TimeAccelParam(enable, timeAccel, bitMask);
1292 return param;
1293 }
1294
1295 void SetTimeAccelMenuState(bool enable, int bigFactor, float smallFactor, int bitmask)
1296 {
1297 DiagMenu.SetValue(DiagMenuIDs.FEATURE_TIME_ACCEL, enable);
1298 DiagMenu.SetRangeValue(DiagMenuIDs.FEATURE_TIME_ACCEL_VALUE1, bigFactor);
1299 DiagMenu.SetRangeValue(DiagMenuIDs.FEATURE_TIME_ACCEL_VALUE2, smallFactor);
1300
1301 for (int i = 0; i < EnumTools.GetEnumSize(ETimeAccelCategories); ++i)
1302 {
1303 int bit = 1 << i;
1304 bool on = (bit & bitmask);
1305 DiagMenu.SetValue(FeatureTimeAccel.GetDiagIDByCategory(bit), on);
1306 }
1307 }
1308#endif
1309}
DamageType
exposed from C++ (do not change)
Определения DamageSystem.c:11
DayZGame g_Game
Определения DayZGame.c:3942
eAgents
Определения EAgents.c:3
DiagMenuIDs
Определения EDiagMenuIDs.c:2
ERPCs
Определения ERPCs.c:2
DebugActionType
Определения PluginDiagMenu.c:7
@ UNLIMITED_AMMO
Определения PluginDiagMenu.c:10
@ GENERIC_ACTIONS
Определения PluginDiagMenu.c:8
@ PLAYER_AGENTS
Определения PluginDiagMenu.c:9
void PluginLifespan()
Определения PluginLifespan.c:45
PluginBase GetPlugin(typename plugin_type)
Определения PluginManager.c:325
void UiHintPanel(Widget parent_widget)
Определения UiHintPanel.c:324
const string STAT_PLAYTIME
Определения AnalyticsManagerServer.c:4
static const int DROP_COLOR_RED
Определения BleedingIndicationConstants.c:15
static const float DROP_SIZE_VARIATION_MIN_LOW
Определения BleedingIndicationConstants.c:31
static const float DROP_SIZE_START_LOW
Определения BleedingIndicationConstants.c:29
static const int DROP_SCATTER_LOW
Определения BleedingIndicationConstants.c:33
static const int DROP_COLOR_ALPHA_END
Определения BleedingIndicationConstants.c:19
static const int DROP_COLOR_ALPHA_START
Определения BleedingIndicationConstants.c:18
static const int DROP_COLOR_BLUE
Определения BleedingIndicationConstants.c:17
static const float DROP_PROGRESS_THRESHOLD
Определения BleedingIndicationConstants.c:13
static const float SEQUENCE_DROP_DELAY_MAX_LOW
Определения BleedingIndicationConstants.c:28
static const float DROP_SIZE_VARIATION_MAX_LOW
Определения BleedingIndicationConstants.c:32
static const int DROP_COLOR_GREEN
Определения BleedingIndicationConstants.c:16
static const float DROP_COLOR_DESATURATIONEND
Определения BleedingIndicationConstants.c:14
static const float DROP_SIZE_END_LOW
Определения BleedingIndicationConstants.c:30
static const float DROP_DURATION_LOW
Определения BleedingIndicationConstants.c:26
static const float SEQUENCE_DROP_DELAY_MIN_LOW
Определения BleedingIndicationConstants.c:27
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...
Определения BleedingIndicationConstants.c:9
static ref Param1< bool > PARAM1_BOOL
Определения UtilityClasses.c:12
static ref Param1< int > PARAM1_INT
Определения UtilityClasses.c:11
static ref Param2< int, int > PARAM2_INT_INT
Определения UtilityClasses.c:16
static ref Param1< float > PARAM1_FLOAT
Определения UtilityClasses.c:13
Определения CivilianSedan.c:2
Super root of all classes in Enforce script.
Определения EnScript.c:11
Определения EnDebug.c:241
static int GetEnumSize(typename e)
Return amount of values in enum.
Определения EnConvert.c:636
Определения EnConvert.c:603
static void InventoryHFSMLogEnable(bool enable)
Определения 3_Game/DayZ/tools/Debug.c:771
static void InventoryReservationLogEnable(bool enable)
Определения 3_Game/DayZ/tools/Debug.c:761
static void SymptomLogEnable(bool enable)
Определения 3_Game/DayZ/tools/Debug.c:811
static void SyncLogEnable(bool enable)
Определения 3_Game/DayZ/tools/Debug.c:781
static void BleedingChancesLogEnable(bool enable)
Определения 3_Game/DayZ/tools/Debug.c:836
static void WeaponLogEnable(bool enable)
Определения 3_Game/DayZ/tools/Debug.c:821
static void QuickbarLogEnable(bool enable)
Определения 3_Game/DayZ/tools/Debug.c:791
static void ActionLogEnable(bool enable)
Определения 3_Game/DayZ/tools/Debug.c:741
static void InventoryMoveLogEnable(bool enable)
Определения 3_Game/DayZ/tools/Debug.c:751
static void BaseBuildingLogEnable(bool enable)
Определения 3_Game/DayZ/tools/Debug.c:801
Определения PPEConstants.c:68
Определения PlayerBaseClient.c:2
void PluginBase()
void OnDestroy()
void OnInit()
void OnRPC(PlayerBase player, int rpc_type, ParamsReadContext ctx)
Определения PluginDeveloper.c:61
Определения PluginDiagMenu.c:30
static bool m_GunParticlesState
Определения gameplay.c:1538
Определения gameplay.c:1537
proto bool Read(void value_in)
void SynchSpecialtyLevel()
Определения SoftSkillsManager.c:302
void SetSpecialtyLevel(float specialty_level)
Определения SoftSkillsManager.c:290
Result for an object found in CGame.IsBoxCollidingGeometryProxy.
proto string ToString(bool simple=true)
Определения CachedEquipmentStorage.c:4
Serializer ParamsReadContext
Определения gameplay.c:15
proto void Print(void var)
Prints content of variable to console/log.
enum ShapeType ErrorEx
static proto void ClearScriptDiags()
To be used when scripted diags should not be present.
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 InitScriptDiags()
To be used before registering scripted diags.
static proto void SetValue(int id, int value)
Set value at the given script id.
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 RegisterItem(int id, string shortcut, string name, int parent, string values, func callback=null)
Register a new item.
static proto void RegisterMenu(int id, string name, int parent)
Register a new menu.
static proto void Unregister(int id)
Unregister the item at given id.
static proto float GetRangeValue(int id)
Get range value at the given script id.
static proto bool CastTo(out Class to, Class from)
Try to safely down-cast base class to child class.
array< string > TStringArray
Определения EnScript.c:712
proto int Replace(string sample, string replace)
Replace all occurrances of 'sample' in 'str' by 'replace'.
void Split(string sample, out array< string > output)
Splits string into array of strings separated by 'sample'.
Определения EnString.c:396
const int CALL_CATEGORY_SYSTEM
Определения 3_Game/DayZ/tools/tools.c:8