diff --git a/project/SPT.Custom/Patches/DisablePvEPatch.cs b/project/SPT.Custom/Patches/DisablePvEPatch.cs index 6526fd8..540190e 100644 --- a/project/SPT.Custom/Patches/DisablePvEPatch.cs +++ b/project/SPT.Custom/Patches/DisablePvEPatch.cs @@ -17,8 +17,7 @@ namespace SPT.Custom.Patches [PatchPrefix] private static bool PatchPrefix(ESessionMode sessionMode, Profile profile, ref GameObject ____notAvailableState) { - ____notAvailableState.SetActive(true); - ____notAvailableState.GetComponent().SetMessageText("SPT is already PvE."); + ____notAvailableState.SetActive(false); return false; } } diff --git a/project/SPT.Custom/Patches/FileCachePatch.cs b/project/SPT.Custom/Patches/FileCachePatch.cs index c4a36e7..3d1cfc0 100644 --- a/project/SPT.Custom/Patches/FileCachePatch.cs +++ b/project/SPT.Custom/Patches/FileCachePatch.cs @@ -8,7 +8,7 @@ using System.Threading.Tasks; namespace SPT.Custom.Patches { - /// + /// /// Redirects Trader and quest images to the SPT folder, not the app data /// /// diff --git a/project/SPT.Custom/Patches/PMCSpawnParamPatch.cs b/project/SPT.Custom/Patches/PMCSpawnParamPatch.cs index 318635d..15368f1 100644 --- a/project/SPT.Custom/Patches/PMCSpawnParamPatch.cs +++ b/project/SPT.Custom/Patches/PMCSpawnParamPatch.cs @@ -19,12 +19,14 @@ namespace SPT.Custom.Patches if (!bot.Profile.Info.Settings.IsBoss() && !CustomAI.AiHelpers.BotIsSptPmc(bot.Profile.Info.Settings.Role, bot)) { return; - } + } + // is a boss and follower and a pmc if (bot.SpawnProfileData.SpawnParams == null) { bot.SpawnProfileData.SpawnParams = new BotSpawnParams(); } + if (bot.SpawnProfileData.SpawnParams.ShallBeGroup == null) { bot.SpawnProfileData.SpawnParams.ShallBeGroup = new ShallBeGroupParams(false, false); diff --git a/project/SPT.Custom/SPTCustomPlugin.cs b/project/SPT.Custom/SPTCustomPlugin.cs index d60766d..dca70ec 100644 --- a/project/SPT.Custom/SPTCustomPlugin.cs +++ b/project/SPT.Custom/SPTCustomPlugin.cs @@ -18,41 +18,45 @@ namespace SPT.Custom try { - // Bundle patches should always load first + // Bundle patches should always load first - DO NOT REMOVE new EasyAssetsPatch().Enable(); new EasyBundlePatch().Enable(); - new BossSpawnChancePatch().Enable(); - new BotDifficultyPatch().Enable(); - new CoreDifficultyPatch().Enable(); - new OfflineRaidMenuPatch().Enable(); - new VersionLabelPatch().Enable(); + + // TODO: check if these patches are needed + new QTEPatch().Enable(); new IsEnemyPatch().Enable(); new BotCalledDataTryCallPatch().Enable(); new BotCallForHelpCallBotPatch().Enable(); new BotOwnerDisposePatch().Enable(); - new LocationLootCacheBustingPatch().Enable(); new CheckAndAddEnemyPatch().Enable(); - new BotSelfEnemyPatch().Enable(); // needed new AddEnemyToAllGroupsInBotZonePatch().Enable(); new CustomAiPatch().Enable(); new AddTraitorScavsPatch().Enable(); new ExitWhileLootingPatch().Enable(); - new QTEPatch().Enable(); new PmcFirstAidPatch().Enable(); new SettingsLocationPatch().Enable(); new SetLocationIdOnRaidStartPatch().Enable(); new RagfairFeePatch().Enable(); new ScavQuestPatch().Enable(); new FixBrokenSpawnOnSandboxPatch().Enable(); - new ScavItemCheckmarkPatch().Enable(); new ResetTraderServicesPatch().Enable(); + new ScavItemCheckmarkPatch().Enable(); new CultistAmuletRemovalPatch().Enable(); new HalloweenExtractPatch().Enable(); - new ClampRagdollPatch().Enable(); - new DisablePvEPatch().Enable(); - new InsurancePlaceItem().Enable(); + + // Still need new FileCachePatch().Enable(); + new BotSelfEnemyPatch().Enable(); + new DisablePvEPatch().Enable(); + new ClampRagdollPatch().Enable(); new PMCSpawnParamPatch().Enable(); + new InsurancePlaceItem().Enable(); + new OfflineRaidMenuPatch().Enable(); + new CoreDifficultyPatch().Enable(); + new BotDifficultyPatch().Enable(); + new BossSpawnChancePatch().Enable(); + new LocationLootCacheBustingPatch().Enable(); + new VersionLabelPatch().Enable(); HookObject.AddOrGetComponent(); } diff --git a/project/SPT.SinglePlayer/SPTSingleplayerPlugin.cs b/project/SPT.SinglePlayer/SPTSingleplayerPlugin.cs index b4a74fb..ec24aed 100644 --- a/project/SPT.SinglePlayer/SPTSingleplayerPlugin.cs +++ b/project/SPT.SinglePlayer/SPTSingleplayerPlugin.cs @@ -23,53 +23,57 @@ namespace SPT.SinglePlayer // TODO: check if these patches are needed new MidRaidQuestChangePatch().Enable(); new MidRaidAchievementChangePatch().Enable(); + new TinnitusFixPatch().Enable(); + new SmokeGrenadeFuseSoundFixPatch().Enable(); + new EmptyInfilFixPatch().Enable(); + new VoIPTogglerPatch().Enable(); + new ScavExperienceGainPatch().Enable(); + new DogtagPatch().Enable(); + new MainMenuControllerPatch().Enable(); + new HealthControllerPatch().Enable(); + new PlayerPatch().Enable(); + new MaxBotPatch().Enable(); + new PostRaidHealingPricePatch().Enable(); + new InRaidQuestAvailablePatch().Enable(); + new ExfilPointManagerPatch().Enable(); + new ScavEncyclopediaPatch().Enable(); + new HideoutQuestIgnorePatch().Enable(); + new PlayerToggleSoundFixPatch().Enable(); + new SpawnProcessNegativeValuePatch().Enable(); + new SpawnPmcPatch().Enable(); + new ScavProfileLoadPatch().Enable(); + new ScavPrefabLoadPatch().Enable(); + new ScavExfilPatch().Enable(); + new LighthouseBridgePatch().Enable(); + new LighthouseTransmitterPatch().Enable(); + new InsuredItemManagerStartPatch().Enable(); + new GetTraderServicesPatch().Enable(); + new PurchaseTraderServicePatch().Enable(); + new LightKeeperServicesPatch().Enable(); + + // Still need + new DisableReadyLocationReadyPatch().Enable(); + new BotTemplateLimitPatch().Enable(); + new LoadOfflineRaidScreenPatch().Enable(); + new AmmoUsedCounterPatch().Enable(); + new ArmorDamageCounterPatch().Enable(); + new ScavRepAdjustmentPatch().Enable(); + new PluginErrorNotifierPatch().Enable(); + new GetNewBotTemplatesPatch().Enable(); + new ScavLateStartPatch().Enable(); + new LabsKeycardRemovalPatch().Enable(); + new MapReadyButtonPatch().Enable(); + new RemoveUsedBotProfilePatch().Enable(); new ScavSellAllPriceStorePatch().Enable(); new ScavSellAllRequestPatch().Enable(); - new ScavExperienceGainPatch().Enable(); - new MainMenuControllerPatch().Enable(); - new PlayerPatch().Enable(); - new DisableReadyLocationReadyPatch().Enable(); - new BotTemplateLimitPatch().Enable(); - new GetNewBotTemplatesPatch().Enable(); - new RemoveUsedBotProfilePatch().Enable(); - new DogtagPatch().Enable(); - new LoadOfflineRaidScreenPatch().Enable(); - new ScavPrefabLoadPatch().Enable(); - new ScavProfileLoadPatch().Enable(); - new ScavExfilPatch().Enable(); - new ExfilPointManagerPatch().Enable(); - new TinnitusFixPatch().Enable(); - new MaxBotPatch().Enable(); - new SpawnPmcPatch().Enable(); - new PostRaidHealingPricePatch().Enable(); - new InRaidQuestAvailablePatch().Enable(); - new VoIPTogglerPatch().Enable(); - new HealthControllerPatch().Enable(); - new LighthouseBridgePatch().Enable(); - new LighthouseTransmitterPatch().Enable(); - new EmptyInfilFixPatch().Enable(); - new SmokeGrenadeFuseSoundFixPatch().Enable(); - new PlayerToggleSoundFixPatch().Enable(); - new PluginErrorNotifierPatch().Enable(); - new SpawnProcessNegativeValuePatch().Enable(); - new InsuredItemManagerStartPatch().Enable(); - new MapReadyButtonPatch().Enable(); - new LabsKeycardRemovalPatch().Enable(); - new ScavLateStartPatch().Enable(); - new GetTraderServicesPatch().Enable(); - new PurchaseTraderServicePatch().Enable(); - new HideoutQuestIgnorePatch().Enable(); - new LightKeeperServicesPatch().Enable(); - new ScavEncyclopediaPatch().Enable(); - new ScavRepAdjustmentPatch().Enable(); - new AmmoUsedCounterPatch().Enable(); - new ArmorDamageCounterPatch().Enable(); + // 3.10.0 new PVEModeWelcomeMessagePatch().Enable(); new DisableMatchmakerPlayerPreviewButtonsPatch().Enable(); new EnableRefForPVEPatch().Enable(); new EnableRefIntermScreenPatch().Enable(); new EnablePlayerScavPatch().Enable(); + } catch (Exception ex) {