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()
204#ifdef DIAG_MISC_ACTION_ON_CURSOR
355 DiagMenu.
RegisterItem(
DiagMenuIDs.WEAPON_FORCEALLOW_OBSTRUCTION,
"",
"Force Allow Obstruction",
DiagMenuIDs.WEAPON_MENU,
"off,conditional,always,alwaysDynamic,neverStatic,alwaysDynamicNeverStatic,neverEver");
448 #ifdef TRIGGER_DEBUG_BASIC
548 protected int GetModdedDiagID()
550 return ++m_ModdedDiagID;
554 protected int GetModdedRootMenu()
560 protected void RegisterModdedDiagsIDs();
563 protected void RegisterModdedDiags()
572 PluginInventoryDebug pluginInventoryDebug;
580 case ERPCs.DIAG_ITEM_DEBUG_ACTIONS:
590 case ERPCs.DIAG_INVENTORY_ACK_HANDS:
594 pluginInventoryDebug = PluginInventoryDebug.Cast(
GetPlugin(PluginInventoryDebug));
600 case ERPCs.DIAG_INVENTORY_REPAIR_DESYNC:
604 pluginInventoryDebug = PluginInventoryDebug.Cast(
GetPlugin(PluginInventoryDebug));
613 case ERPCs.DIAG_PLAYER_SYMPTOMS_DEBUG_ON:
614 case ERPCs.DIAG_PLAYER_SYMPTOMS_DEBUG_OFF:
615 case ERPCs.DIAG_PLAYER_SYMPTOMS_DEBUG:
617 if (player.GetSymptomManager())
619 player.GetSymptomManager().OnRPCDebug(rpc_type, ctx);
629 case ERPCs.DIAG_CRAFTING_INSTANT:
633 PluginRecipesManager pluginRecipesManager = PluginRecipesManager.Cast(
GetPlugin(PluginRecipesManager));
643 case ERPCs.DIAG_CHEATS_MODIFIERS:
651 case ERPCs.DIAG_CHEATS_KILL_PLAYER:
653 player.SetHealth(
"",
"", -1);
658 case ERPCs.DIAG_CHEATS_INVINCIBILITY:
668 parent.SetAllowDamage(
true);
669 parent.SetCanBeDestroyed(
true);
672 player.SetAllowDamage(
true);
673 player.SetCanBeDestroyed(
true);
680 parent.SetAllowDamage(
true);
681 parent.SetCanBeDestroyed(
false);
684 player.SetAllowDamage(
true);
685 player.SetCanBeDestroyed(
false);
692 parent.SetAllowDamage(
false);
695 player.SetAllowDamage(
false);
704 case ERPCs.DIAG_CHEATS_DISABLE_STAMINA:
712 case ERPCs.DIAG_CHEATS_RESET_PLAYER:
714 player.ResetPlayer(
false);
719 case ERPCs.DIAG_CHEATS_RESET_PLAYER_MAX:
721 player.ResetPlayer(
true);
726 case ERPCs.DIAG_CHEATS_INVENTORY_ACCESS:
734 case ERPCs.DIAG_CHEATS_ITEMS_FIX:
736 player.FixAllInventoryItems();
742 case ERPCs.DIAG_CHEATS_CREATE_HIT:
744 player.ProcessDirectDamage(
DamageType.CUSTOM, player,
"",
"Dummy_Heavy",
"0 0 0");
748 case ERPCs.DIAG_CHEATS_CREATE_HIT_LIGHT:
750 player.ProcessDirectDamage(
DamageType.CUSTOM, player,
"",
"MeleeFist",
"0 0 0");
757 case ERPCs.DIAG_SOFT_SKILLS_SHOW_DEBUG:
763 player.GetSoftSkillsManager().StartSynchTimer();
767 player.GetSoftSkillsManager().StopSynchTimer();
768 player.GetSoftSkillsManager().ResetDebugWindow();
775 case ERPCs.DIAG_SOFT_SKILLS_TOGGLE_STATE:
783 case ERPCs.DIAG_SOFT_SKILLS_TOGGLE_MODEL:
791 case ERPCs.DIAG_SOFT_SKILLS_SPECIALTY_VALUE:
806 case ERPCs.DIAG_LIFESPAN_BLOODY_HANDS:
812 player.SetBloodyHandsPenaltyChancePerAgent(
eAgents.SALMONELLA, 0.75);
815 player.ClearBloodyHandsPenaltyChancePerAgent(
eAgents.SALMONELLA);
821 case ERPCs.DIAG_LIFESPAN_PLAYTIME_UPDATE:
829 player.SetLastShavedSeconds(0);
833 pluginLifespann.UpdateLifespan(player,
true);
842 case ERPCs.DIAG_MISC_LOG_PLAYER_STATS:
854 case ERPCs.DIAG_MISC_ENVIRONMENT_DEBUG:
858 if (player.m_Environment)
864 #ifdef ENABLE_LOGGING
865 case ERPCs.DIAG_MISC_ENVIRONMENT_LOGGING_DRYWET:
869 if (player.m_Environment)
875 case ERPCs.DIAG_MISC_ENVIRONMENT_LOGGING_ITEMHEAT:
879 if (player.m_Environment)
889 case ERPCs.DIAG_MISC_FALLDAMAGE_DEBUG:
893 if (player.GetFallDamage())
900 case ERPCs.DIAG_MISC_GO_UNCONSCIOUS:
902 GoUnconscious(player);
907 case ERPCs.DIAG_MISC_GO_UNCONSCIOUS_DELAYED:
914 case ERPCs.DIAG_MISC_QUICK_RESTRAIN:
924 case ERPCs.DIAG_MISC_HAIR_LEVEL_HIDE:
929 player.UpdateHairSelectionVisibility(
true);
937 case ERPCs.DIAG_MISC_QUICK_FISHING:
945 case ERPCs.DIAG_MISC_TARGETABLE_BY_AI:
953 case ERPCs.DIAG_MISC_DEBUG_MONITOR:
963 case ERPCs.DIAG_SIMULATE_INFINITE_LOOP:
967 Print(
"simulating infinite loop");
973 case ERPCs.DIAG_SIMULATE_NULL_POINTER:
976 NULL_player.SetHealth(
"",
"", -1);
981 case ERPCs.DIAG_SIMULATE_DIVISION_BY_ZERO:
984 int division_by_zero = 1/zero;
989 case ERPCs.DIAG_SIMULATE_ERROR_FUNCTION:
999 case ERPCs.DIAG_WEAPON_PARTICLES:
1007 case ERPCs.DIAG_WEAPON_RECOIL:
1015 case ERPCs.DIAG_WEAPON_BURST_VERSION:
1026 case ERPCs.DIAG_BLEEDING_DISABLE_BLOOD_LOSS:
1034 case ERPCs.DIAG_BLEEDING_ACTIVATE_SOURCE:
1042 case ERPCs.DIAG_BLEEDING_ACTIVATE_ALL_SOURCES:
1044 player.GetBleedingManagerServer().ActivateAllBS();
1052 case ERPCs.DIAG_LOGS_ACTIONS:
1060 case ERPCs.DIAG_LOGS_WEAPONS:
1068 case ERPCs.DIAG_LOGS_SYNC:
1076 case ERPCs.DIAG_LOGS_BASEBUILDING:
1084 case ERPCs.DIAG_LOGS_SYMPTOMS:
1092 case ERPCs.DIAG_LOGS_INVENTORY_MOVE:
1100 case ERPCs.DIAG_LOGS_INVENTORY_RESERVATION:
1108 case ERPCs.DIAG_LOGS_INVENTORY_HFSM:
1116 case ERPCs.DIAG_LOGS_QUICKBAR:
1124 case ERPCs.DIAG_LOGS_BLEEDING_CHANCES:
1134 case ERPCs.DIAG_BASEBUILDING_WOOD:
1142 case ERPCs.DIAG_BASEBUILDING_GATE:
1153 case ERPCs.DIAG_FINISHERS_FORCE_FINISHER:
1164 case ERPCs.DIAG_CAMERATOOLS_CAM_DATA:
1166 if (!player.m_CameraToolsMenuClient)
1168 player.m_CameraToolsMenuClient =
new CameraToolsMenuClient();
1171 player.m_CameraToolsMenuClient.OnRPC(ctx);
1179 case ERPCs.DIAG_TIMEACCEL:
1181 TimeAccelParam tap =
new TimeAccelParam(
false, 0, 0);
1185 FeatureTimeAccel.m_CurrentTimeAccel = tap;
1188 g_Game.GetPlayers(players);
1189 foreach (Man p : players)
1194 g_Game.RPCSingleParam( p,
ERPCs.DIAG_TIMEACCEL_CLIENT_SYNC, tap,
true, p.GetIdentity());
1213 case ERPCs.DIAG_TIMEACCEL_CLIENT_SYNC:
1215 TimeAccelParam tap2 =
new TimeAccelParam(
false, 0, 0);
1219 int bigFactor = tap2.param2;
1220 float smallFactor = tap2.param2 - bigFactor;
1221 SetTimeAccelMenuState(tap2.param1, bigFactor, smallFactor, tap2.param3);
1222 FeatureTimeAccel.m_CurrentTimeAccel = tap2;
1230 case ERPCs.DIAG_VEHICLE_DEBUG_OUTPUT:
1237 case ERPCs.DIAG_VEHICLES_DUMP_CRASH_DATA_REQUEST:
1240 CrashDebugData.SendData(player);
1249 if (player.IsUnconscious())
1251 player.SetHealth(
"",
"Shock", 100);
1255 player.m_UnconsciousEndTime = -60;
1256 player.SetHealth(
"",
"Shock", 0);
1261 void InitTimeAccel()
1263 FeatureTimeAccel.m_CurrentTimeAccel = GetTimeAccelMenuState();
1267 if (
g_Game.CommandlineGetParam(
"timeAccel", value))
1272 value.
Split(
",", params);
1274 bool enable = params[0].ToInt();
1275 int timeAccelBig = params[1].ToInt();
1276 float timeAccelSmall = params[2].ToFloat();
1277 int bitMask = params[3].ToInt();
1279 SetTimeAccelMenuState(enable, timeAccelBig, timeAccelSmall, bitMask);
1283 TimeAccelParam GetTimeAccelMenuState()
1288 float timeAccel = timeAccelBig + timeAccelSmall;
1289 int bitMask = FeatureTimeAccel.GetTimeAccelBitmask();
1291 TimeAccelParam param =
new TimeAccelParam(enable, timeAccel, bitMask);
1295 void SetTimeAccelMenuState(
bool enable,
int bigFactor,
float smallFactor,
int bitmask)
1304 bool on = (bit & bitmask);