From 4e85b5a21f6c143feb8cb6851b631a3cfeecb7e9 Mon Sep 17 00:00:00 2001 From: kmyuhkyuk <2451614940@qq.com> Date: Sat, 15 Oct 2022 13:05:00 +0800 Subject: [PATCH] Update --- SkinHide/SkinHidePlugin.cs | 47 ++++++++++++++++++++++++++++++++++---- 1 file changed, 42 insertions(+), 5 deletions(-) diff --git a/SkinHide/SkinHidePlugin.cs b/SkinHide/SkinHidePlugin.cs index 698b05f..ecfcc20 100644 --- a/SkinHide/SkinHidePlugin.cs +++ b/SkinHide/SkinHidePlugin.cs @@ -7,6 +7,7 @@ using EFT; using EFT.Visual; using SkinHide.Patches; using SkinHide.Utils; +using System; namespace SkinHide { @@ -23,6 +24,12 @@ namespace SkinHide private readonly ReflectionData reflectiondata = new ReflectionData(); + private bool PMVHideCache; + + private bool PlayerHideCache; + + private bool BotHideCache; + public enum Part { All, @@ -67,15 +74,34 @@ namespace SkinHide } //PlayerModelView Skin Hide - if (PlayerModelView != null) + if (PlayerModelView != null && settingsdata.KeyPlayerSkinHide.Value) { - Hide(PlayerModelView, settingsdata.KeyPlayerSkinHidePart.Value, settingsdata.KeyPlayerSkinHide.Value); + Hide(PlayerModelView, settingsdata.KeyPlayerSkinHidePart.Value, true); + + PMVHideCache = true; + } + else if (PlayerModelView != null && !settingsdata.KeyPlayerSkinHide.Value && PMVHideCache) + { + Hide(PlayerModelView, Part.All, false); + + PMVHideCache = false; } //Player Skin Hide if (Player != null) { - Hide(Player, settingsdata.KeyPlayerSkinHidePart.Value, settingsdata.KeyPlayerSkinHide.Value); + if (settingsdata.KeyPlayerSkinHide.Value) + { + Hide(Player, settingsdata.KeyPlayerSkinHidePart.Value, true); + + PlayerHideCache = true; + } + else if (!settingsdata.KeyPlayerSkinHide.Value && PlayerHideCache) + { + Hide(Player, Part.All, false); + + PlayerHideCache = false; + } } else { @@ -83,12 +109,23 @@ namespace SkinHide } //Bot Skin Hide - if (Bot.Count > 0) + if (Bot.Count > 0 && settingsdata.KeyBotSkinHide.Value) { foreach (PlayerBody bot in Bot) { - Hide(bot, settingsdata.KeyBotSkinHidePart.Value, settingsdata.KeyBotSkinHide.Value); + Hide(bot, settingsdata.KeyBotSkinHidePart.Value, true); } + + BotHideCache = true; + } + else if (Bot.Count > 0 && !settingsdata.KeyBotSkinHide.Value && BotHideCache) + { + foreach (PlayerBody bot in Bot) + { + Hide(bot, Part.All, false); + } + + BotHideCache = false; } }