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()
199#ifdef DIAG_MISC_ACTION_ON_CURSOR
441 #ifdef TRIGGER_DEBUG_BASIC
538 protected int GetModdedDiagID()
540 return ++m_ModdedDiagID;
544 protected int GetModdedRootMenu()
550 protected void RegisterModdedDiagsIDs();
553 protected void RegisterModdedDiags()
569 case ERPCs.DIAG_ITEM_DEBUG_ACTIONS:
580 case ERPCs.DIAG_PLAYER_SYMPTOMS_DEBUG_ON:
581 case ERPCs.DIAG_PLAYER_SYMPTOMS_DEBUG_OFF:
582 case ERPCs.DIAG_PLAYER_SYMPTOMS_DEBUG:
584 if (player.GetSymptomManager())
586 player.GetSymptomManager().OnRPCDebug(rpc_type, ctx);
596 case ERPCs.DIAG_CRAFTING_INSTANT:
600 PluginRecipesManager pluginRecipesManager = PluginRecipesManager.Cast(
GetPlugin(PluginRecipesManager));
610 case ERPCs.DIAG_CHEATS_MODIFIERS:
618 case ERPCs.DIAG_CHEATS_KILL_PLAYER:
620 player.SetHealth(
"",
"", -1);
625 case ERPCs.DIAG_CHEATS_INVINCIBILITY:
635 parent.SetAllowDamage(
true);
636 parent.SetCanBeDestroyed(
true);
639 player.SetAllowDamage(
true);
640 player.SetCanBeDestroyed(
true);
647 parent.SetAllowDamage(
true);
648 parent.SetCanBeDestroyed(
false);
651 player.SetAllowDamage(
true);
652 player.SetCanBeDestroyed(
false);
659 parent.SetAllowDamage(
false);
662 player.SetAllowDamage(
false);
671 case ERPCs.DIAG_CHEATS_DISABLE_STAMINA:
679 case ERPCs.DIAG_CHEATS_RESET_PLAYER:
681 player.ResetPlayer(
false);
686 case ERPCs.DIAG_CHEATS_RESET_PLAYER_MAX:
688 player.ResetPlayer(
true);
693 case ERPCs.DIAG_CHEATS_INVENTORY_ACCESS:
701 case ERPCs.DIAG_CHEATS_ITEMS_FIX:
703 player.FixAllInventoryItems();
709 case ERPCs.DIAG_CHEATS_CREATE_HIT:
711 player.ProcessDirectDamage(
DamageType.CUSTOM, player,
"",
"Dummy_Heavy",
"0 0 0");
715 case ERPCs.DIAG_CHEATS_CREATE_HIT_LIGHT:
717 player.ProcessDirectDamage(
DamageType.CUSTOM, player,
"",
"MeleeFist",
"0 0 0");
724 case ERPCs.DIAG_SOFT_SKILLS_SHOW_DEBUG:
730 player.GetSoftSkillsManager().StartSynchTimer();
734 player.GetSoftSkillsManager().StopSynchTimer();
735 player.GetSoftSkillsManager().ResetDebugWindow();
742 case ERPCs.DIAG_SOFT_SKILLS_TOGGLE_STATE:
750 case ERPCs.DIAG_SOFT_SKILLS_TOGGLE_MODEL:
758 case ERPCs.DIAG_SOFT_SKILLS_SPECIALTY_VALUE:
773 case ERPCs.DIAG_LIFESPAN_BLOODY_HANDS:
779 player.SetBloodyHandsPenaltyChancePerAgent(
eAgents.SALMONELLA, 0.75);
782 player.ClearBloodyHandsPenaltyChancePerAgent(
eAgents.SALMONELLA);
788 case ERPCs.DIAG_LIFESPAN_PLAYTIME_UPDATE:
796 player.SetLastShavedSeconds(0);
800 pluginLifespann.UpdateLifespan(player,
true);
809 case ERPCs.DIAG_MISC_LOG_PLAYER_STATS:
821 case ERPCs.DIAG_MISC_ENVIRONMENT_DEBUG:
825 if (player.m_Environment)
831 case ERPCs.DIAG_MISC_ENVIRONMENT_LOGGING_DRYWET:
835 if (player.m_Environment)
841 case ERPCs.DIAG_MISC_ENVIRONMENT_LOGGING_ITEMHEAT:
845 if (player.m_Environment)
854 case ERPCs.DIAG_MISC_FALLDAMAGE_DEBUG:
858 if (player.GetFallDamage())
865 case ERPCs.DIAG_MISC_GO_UNCONSCIOUS:
867 GoUnconscious(player);
872 case ERPCs.DIAG_MISC_GO_UNCONSCIOUS_DELAYED:
879 case ERPCs.DIAG_MISC_QUICK_RESTRAIN:
889 case ERPCs.DIAG_MISC_HAIR_LEVEL_HIDE:
894 player.UpdateHairSelectionVisibility(
true);
902 case ERPCs.DIAG_MISC_QUICK_FISHING:
910 case ERPCs.DIAG_MISC_TARGETABLE_BY_AI:
918 case ERPCs.DIAG_MISC_DEBUG_MONITOR:
928 case ERPCs.DIAG_SIMULATE_INFINITE_LOOP:
932 Print(
"simulating infinite loop");
938 case ERPCs.DIAG_SIMULATE_NULL_POINTER:
941 NULL_player.SetHealth(
"",
"", -1);
946 case ERPCs.DIAG_SIMULATE_DIVISION_BY_ZERO:
949 int division_by_zero = 1/zero;
954 case ERPCs.DIAG_SIMULATE_ERROR_FUNCTION:
964 case ERPCs.DIAG_WEAPON_PARTICLES:
972 case ERPCs.DIAG_WEAPON_RECOIL:
980 case ERPCs.DIAG_WEAPON_BURST_VERSION:
991 case ERPCs.DIAG_BLEEDING_DISABLE_BLOOD_LOSS:
999 case ERPCs.DIAG_BLEEDING_ACTIVATE_SOURCE:
1007 case ERPCs.DIAG_BLEEDING_ACTIVATE_ALL_SOURCES:
1009 player.GetBleedingManagerServer().ActivateAllBS();
1017 case ERPCs.DIAG_LOGS_ACTIONS:
1025 case ERPCs.DIAG_LOGS_WEAPONS:
1033 case ERPCs.DIAG_LOGS_SYNC:
1041 case ERPCs.DIAG_LOGS_BASEBUILDING:
1049 case ERPCs.DIAG_LOGS_SYMPTOMS:
1057 case ERPCs.DIAG_LOGS_INVENTORY_MOVE:
1065 case ERPCs.DIAG_LOGS_INVENTORY_RESERVATION:
1073 case ERPCs.DIAG_LOGS_INVENTORY_HFSM:
1081 case ERPCs.DIAG_LOGS_QUICKBAR:
1089 case ERPCs.DIAG_LOGS_BLEEDING_CHANCES:
1099 case ERPCs.DIAG_BASEBUILDING_WOOD:
1107 case ERPCs.DIAG_BASEBUILDING_GATE:
1118 case ERPCs.DIAG_FINISHERS_FORCE_FINISHER:
1129 case ERPCs.DIAG_CAMERATOOLS_CAM_DATA:
1131 if (!player.m_CameraToolsMenuClient)
1133 player.m_CameraToolsMenuClient =
new CameraToolsMenuClient();
1136 player.m_CameraToolsMenuClient.OnRPC(ctx);
1144 case ERPCs.DIAG_TIMEACCEL:
1146 TimeAccelParam tap =
new TimeAccelParam(
false, 0, 0);
1150 FeatureTimeAccel.m_CurrentTimeAccel = tap;
1154 foreach (Man p : players)
1178 case ERPCs.DIAG_TIMEACCEL_CLIENT_SYNC:
1180 TimeAccelParam tap2 =
new TimeAccelParam(
false, 0, 0);
1184 int bigFactor = tap2.param2;
1185 float smallFactor = tap2.param2 - bigFactor;
1186 SetTimeAccelMenuState(tap2.param1, bigFactor, smallFactor, tap2.param3);
1187 FeatureTimeAccel.m_CurrentTimeAccel = tap2;
1195 case ERPCs.DIAG_VEHICLE_DEBUG_OUTPUT:
1202 case ERPCs.DIAG_VEHICLES_DUMP_CRASH_DATA_REQUEST:
1205 CrashDebugData.SendData(player);
1214 if (player.IsUnconscious())
1216 player.SetHealth(
"",
"Shock", 100);
1220 player.m_UnconsciousEndTime = -60;
1221 player.SetHealth(
"",
"Shock", 0);
1226 void InitTimeAccel()
1228 FeatureTimeAccel.m_CurrentTimeAccel = GetTimeAccelMenuState();
1232 if (
GetGame().CommandlineGetParam(
"timeAccel", value))
1237 value.
Split(
",", params);
1239 bool enable = params[0].ToInt();
1240 int timeAccelBig = params[1].ToInt();
1241 float timeAccelSmall = params[2].ToFloat();
1242 int bitMask = params[3].ToInt();
1244 SetTimeAccelMenuState(enable, timeAccelBig, timeAccelSmall, bitMask);
1248 TimeAccelParam GetTimeAccelMenuState()
1253 float timeAccel = timeAccelBig + timeAccelSmall;
1254 int bitMask = FeatureTimeAccel.GetTimeAccelBitmask();
1256 TimeAccelParam param =
new TimeAccelParam(enable, timeAccel, bitMask);
1260 void SetTimeAccelMenuState(
bool enable,
int bigFactor,
float smallFactor,
int bitmask)
1269 bool on = (bit & bitmask);