38 int m_TotalHairLevelsAdjusted;
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)
50 m_HairHidingStateMap.Insert(i, 1);
65 protected void RegisterDiags()
67 RegisterDeveloperDiags();
68 RegisterModdedDiagsIDs();
69 RegisterModdedDiags();
77 private void RegisterDeveloperDiags()
217#ifdef DIAG_MISC_ACTION_ON_CURSOR
409 DiagMenu.
RegisterItem(
DiagMenuIDs.WEAPON_FORCEALLOW_OBSTRUCTION,
"",
"Force Allow Obstruction",
DiagMenuIDs.WEAPON_MENU,
"off,conditional,always,alwaysDynamic,neverStatic,alwaysDynamicNeverStatic,neverEver");
502 #ifdef TRIGGER_DEBUG_BASIC
664 protected int GetModdedDiagID()
666 return ++m_ModdedDiagID;
670 protected int GetModdedRootMenu()
676 protected void RegisterModdedDiagsIDs();
679 protected void RegisterModdedDiags()
688 PluginInventoryDebug pluginInventoryDebug;
696 case ERPCs.DIAG_ITEM_DEBUG_ACTIONS:
706 case ERPCs.DIAG_INVENTORY_ACK_HANDS:
710 pluginInventoryDebug = PluginInventoryDebug.Cast(
GetPlugin(PluginInventoryDebug));
716 case ERPCs.DIAG_INVENTORY_REPAIR_DESYNC:
720 pluginInventoryDebug = PluginInventoryDebug.Cast(
GetPlugin(PluginInventoryDebug));
729 case ERPCs.DIAG_PLAYER_SYMPTOMS_DEBUG_ON:
730 case ERPCs.DIAG_PLAYER_SYMPTOMS_DEBUG_OFF:
731 case ERPCs.DIAG_PLAYER_SYMPTOMS_DEBUG:
733 if (player.GetSymptomManager())
735 player.GetSymptomManager().OnRPCDebug(rpc_type, ctx);
745 case ERPCs.DIAG_CRAFTING_INSTANT:
749 PluginRecipesManager pluginRecipesManager = PluginRecipesManager.Cast(
GetPlugin(PluginRecipesManager));
759 case ERPCs.DIAG_CHEATS_MODIFIERS:
767 case ERPCs.DIAG_CHEATS_KILL_PLAYER:
769 player.SetHealth(
"",
"", -1);
774 case ERPCs.DIAG_CHEATS_INVINCIBILITY:
784 parent.SetAllowDamage(
true);
785 parent.SetCanBeDestroyed(
true);
788 player.SetAllowDamage(
true);
789 player.SetCanBeDestroyed(
true);
796 parent.SetAllowDamage(
true);
797 parent.SetCanBeDestroyed(
false);
800 player.SetAllowDamage(
true);
801 player.SetCanBeDestroyed(
false);
808 parent.SetAllowDamage(
false);
811 player.SetAllowDamage(
false);
820 case ERPCs.DIAG_CHEATS_DISABLE_STAMINA:
828 case ERPCs.DIAG_CHEATS_RESET_PLAYER:
830 player.ResetPlayer(
false);
835 case ERPCs.DIAG_CHEATS_RESET_PLAYER_MAX:
837 player.ResetPlayer(
true);
842 case ERPCs.DIAG_CHEATS_INVENTORY_ACCESS:
850 case ERPCs.DIAG_CHEATS_ITEMS_FIX:
852 player.FixAllInventoryItems();
858 case ERPCs.DIAG_CHEATS_CREATE_HIT:
860 player.ProcessDirectDamage(
DamageType.CUSTOM, player,
"",
"Dummy_Heavy",
"0 0 0");
864 case ERPCs.DIAG_CHEATS_CREATE_HIT_LIGHT:
866 player.ProcessDirectDamage(
DamageType.CUSTOM, player,
"",
"MeleeFist",
"0 0 0");
873 case ERPCs.DIAG_SOFT_SKILLS_SHOW_DEBUG:
879 player.GetSoftSkillsManager().StartSynchTimer();
883 player.GetSoftSkillsManager().StopSynchTimer();
884 player.GetSoftSkillsManager().ResetDebugWindow();
891 case ERPCs.DIAG_SOFT_SKILLS_TOGGLE_STATE:
899 case ERPCs.DIAG_SOFT_SKILLS_TOGGLE_MODEL:
907 case ERPCs.DIAG_SOFT_SKILLS_SPECIALTY_VALUE:
922 case ERPCs.DIAG_LIFESPAN_BLOODY_HANDS:
928 player.SetBloodyHandsPenaltyChancePerAgent(
eAgents.SALMONELLA, 0.75);
931 player.ClearBloodyHandsPenaltyChancePerAgent(
eAgents.SALMONELLA);
937 case ERPCs.DIAG_LIFESPAN_PLAYTIME_UPDATE:
945 player.SetLastShavedSeconds(0);
949 pluginLifespann.UpdateLifespan(player,
true);
958 case ERPCs.DIAG_MISC_LOG_PLAYER_STATS:
970 case ERPCs.DIAG_MISC_ENVIRONMENT_DEBUG:
974 if (player.m_Environment)
980 #ifdef ENABLE_LOGGING
981 case ERPCs.DIAG_MISC_ENVIRONMENT_LOGGING_DRYWET:
985 if (player.m_Environment)
991 case ERPCs.DIAG_MISC_ENVIRONMENT_LOGGING_ITEMHEAT:
995 if (player.m_Environment)
1001 case ERPCs.DIAG_RADIO_GAMEPLAY_LOGGING:
1016 case ERPCs.DIAG_MISC_FALLDAMAGE_DEBUG:
1020 if (player.GetFallDamage())
1027 case ERPCs.DIAG_MISC_GO_UNCONSCIOUS:
1029 GoUnconscious(player);
1034 case ERPCs.DIAG_MISC_GO_UNCONSCIOUS_DELAYED:
1041 case ERPCs.DIAG_MISC_QUICK_RESTRAIN:
1051 case ERPCs.DIAG_MISC_HAIR_LEVEL_HIDE:
1056 player.UpdateHairSelectionVisibility(
true);
1064 case ERPCs.DIAG_MISC_QUICK_FISHING:
1072 case ERPCs.DIAG_MISC_TARGETABLE_BY_AI:
1080 case ERPCs.DIAG_MISC_DEBUG_MONITOR:
1090 case ERPCs.DIAG_SIMULATE_INFINITE_LOOP:
1094 Print(
"simulating infinite loop");
1100 case ERPCs.DIAG_SIMULATE_NULL_POINTER:
1103 NULL_player.SetHealth(
"",
"", -1);
1108 case ERPCs.DIAG_SIMULATE_DIVISION_BY_ZERO:
1111 int division_by_zero = 1/zero;
1116 case ERPCs.DIAG_SIMULATE_ERROR_FUNCTION:
1126 case ERPCs.DIAG_WEAPON_PARTICLES:
1134 case ERPCs.DIAG_WEAPON_RECOIL:
1142 case ERPCs.DIAG_WEAPON_BURST_VERSION:
1153 case ERPCs.DIAG_BLEEDING_DISABLE_BLOOD_LOSS:
1161 case ERPCs.DIAG_BLEEDING_ACTIVATE_SOURCE:
1169 case ERPCs.DIAG_BLEEDING_ACTIVATE_ALL_SOURCES:
1171 player.GetBleedingManagerServer().ActivateAllBS();
1179 case ERPCs.DIAG_LOGS_ACTIONS:
1187 case ERPCs.DIAG_LOGS_WEAPONS:
1195 case ERPCs.DIAG_LOGS_SYNC:
1203 case ERPCs.DIAG_LOGS_BASEBUILDING:
1211 case ERPCs.DIAG_LOGS_SYMPTOMS:
1219 case ERPCs.DIAG_LOGS_INVENTORY_MOVE:
1227 case ERPCs.DIAG_LOGS_INVENTORY_RESERVATION:
1235 case ERPCs.DIAG_LOGS_INVENTORY_HFSM:
1243 case ERPCs.DIAG_LOGS_QUICKBAR:
1251 case ERPCs.DIAG_LOGS_BLEEDING_CHANCES:
1261 case ERPCs.DIAG_BASEBUILDING_WOOD:
1269 case ERPCs.DIAG_BASEBUILDING_GATE:
1276 case ERPCs.DIAG_BASEBUILDING_FASTBUILD:
1286 case ERPCs.DIAG_FINISHERS_FORCE_FINISHER:
1297 case ERPCs.DIAG_CAMERATOOLS_CAM_DATA:
1299 if (!player.m_CameraToolsMenuClient)
1301 player.m_CameraToolsMenuClient =
new CameraToolsMenuClient();
1304 player.m_CameraToolsMenuClient.OnRPC(ctx);
1312 case ERPCs.DIAG_TIMEACCEL:
1314 TimeAccelParam tap =
new TimeAccelParam(
false, 0, 0);
1318 FeatureTimeAccel.m_CurrentTimeAccel = tap;
1321 g_Game.GetPlayers(players);
1322 foreach (Man p : players)
1327 g_Game.RPCSingleParam( p,
ERPCs.DIAG_TIMEACCEL_CLIENT_SYNC, tap,
true, p.GetIdentity());
1346 case ERPCs.DIAG_TIMEACCEL_CLIENT_SYNC:
1348 TimeAccelParam tap2 =
new TimeAccelParam(
false, 0, 0);
1352 int bigFactor = tap2.param2;
1353 float smallFactor = tap2.param2 - bigFactor;
1354 SetTimeAccelMenuState(tap2.param1, bigFactor, smallFactor, tap2.param3);
1355 FeatureTimeAccel.m_CurrentTimeAccel = tap2;
1363 case ERPCs.DIAG_VEHICLE_DEBUG_OUTPUT:
1370 case ERPCs.DIAG_VEHICLES_DUMP_CRASH_DATA_REQUEST:
1373 CrashDebugData.SendData(player);
1382 if (player.IsUnconscious())
1384 player.SetHealth(
"",
"Shock", 100);
1388 player.m_UnconsciousEndTime = -60;
1389 player.SetHealth(
"",
"Shock", 0);
1394 void InitTimeAccel()
1396 FeatureTimeAccel.m_CurrentTimeAccel = GetTimeAccelMenuState();
1400 if (
g_Game.CommandlineGetParam(
"timeAccel", value))
1405 value.
Split(
",", params);
1407 bool enable = params[0].ToInt();
1408 int timeAccelBig = params[1].ToInt();
1409 float timeAccelSmall = params[2].ToFloat();
1410 int bitMask = params[3].ToInt();
1412 SetTimeAccelMenuState(enable, timeAccelBig, timeAccelSmall, bitMask);
1416 TimeAccelParam GetTimeAccelMenuState()
1421 float timeAccel = timeAccelBig + timeAccelSmall;
1422 int bitMask = FeatureTimeAccel.GetTimeAccelBitmask();
1424 TimeAccelParam param =
new TimeAccelParam(enable, timeAccel, bitMask);
1428 void SetTimeAccelMenuState(
bool enable,
int bigFactor,
float smallFactor,
int bitmask)
1437 bool on = (bit & bitmask);