From ec4011898285176691192b1bc05dc98170111c8b Mon Sep 17 00:00:00 2001 From: Lorenzo Rizzotti Date: Fri, 12 Mar 2021 13:54:36 +0100 Subject: [PATCH] Noclip no longer bug invisibility; Created config for the invisibility tick --- SharedClasses/ConfigManager.cs | 1 + vMenu/FunctionsController.cs | 3 ++- vMenu/Noclip.cs | 11 ++++++++--- vMenuServer/config/permissions.cfg | 4 ++++ 4 files changed, 15 insertions(+), 4 deletions(-) diff --git a/SharedClasses/ConfigManager.cs b/SharedClasses/ConfigManager.cs index 2ec97def..c9610657 100644 --- a/SharedClasses/ConfigManager.cs +++ b/SharedClasses/ConfigManager.cs @@ -20,6 +20,7 @@ public enum Setting vmenu_noclip_toggle_key, vmenu_keep_spawned_vehicles_persistent, vmenu_use_els_compatibility_mode, + vmenu_should_invisibility_tick, vmenu_quit_session_in_rockstar_editor, vmenu_server_info_message, vmenu_server_info_website_url, diff --git a/vMenu/FunctionsController.cs b/vMenu/FunctionsController.cs index 77caf764..cc15ac23 100644 --- a/vMenu/FunctionsController.cs +++ b/vMenu/FunctionsController.cs @@ -7,6 +7,7 @@ using Newtonsoft.Json; using CitizenFX.Core; using CitizenFX.Core.UI; +using vMenuShared; using static CitizenFX.Core.UI.Screen; using static CitizenFX.Core.Native.API; using static vMenuClient.CommonFunctions; @@ -184,7 +185,7 @@ bool IsMpPedCreatorOpen() } // Manage PlayerInvisible - if (MainMenu.PlayerOptionsMenu.PlayerInvisible && IsAllowed(Permission.POInvisible)) + if (GetSettingsBool(Setting.vmenu_should_invisibility_tick) && MainMenu.PlayerOptionsMenu.PlayerInvisible && IsAllowed(Permission.POInvisible)) { SetEntityVisible(Game.PlayerPed.Handle, false, false); } diff --git a/vMenu/Noclip.cs b/vMenu/Noclip.cs index deff8ebc..8034786e 100644 --- a/vMenu/Noclip.cs +++ b/vMenu/Noclip.cs @@ -207,9 +207,14 @@ private async Task NoClipHandler() SetEntityInvincible(noclipEntity, false); SetEntityCollision(noclipEntity, true, true); - SetEntityVisible(noclipEntity, true, false); - SetLocalPlayerVisibleLocally(true); - ResetEntityAlpha(noclipEntity); + // If the player is set as invisible by PlayerOptions do not remove the invisibility + if (!MainMenu.PlayerOptionsMenu.PlayerInvisible) { + SetEntityVisible(noclipEntity, true, false); + SetLocalPlayerVisibleLocally(true); + ResetEntityAlpha(noclipEntity); + } + + SetEveryoneIgnorePlayer(Game.PlayerPed.Handle, false); SetPoliceIgnorePlayer(Game.PlayerPed.Handle, false); diff --git a/vMenuServer/config/permissions.cfg b/vMenuServer/config/permissions.cfg index 8b168b67..ad90d861 100644 --- a/vMenuServer/config/permissions.cfg +++ b/vMenuServer/config/permissions.cfg @@ -34,6 +34,10 @@ setr vmenu_log_kick_actions true # disabling vMenu's control over vehicle sirens completely. setr vmenu_use_els_compatibility_mode false +# This option will make the player invisible on tick if the option in player options is active making +#impossible for other scripts to alter invisible state +setr vmenu_should_invisibility_tick true + # When you set this to true, it will leave the current game session if a player uses the # rockstar editor button in the recording options menu. (false by default). setr vmenu_quit_session_in_rockstar_editor false