From 4b6034361cc7db9ae778f89d3351b526389c633a Mon Sep 17 00:00:00 2001 From: Casian <73272097+blu133721@users.noreply.github.com> Date: Wed, 20 Aug 2025 14:39:41 +0300 Subject: [PATCH 1/2] partial-fix(managed): fix IsFakeClient check --- src/managed/API/Scripting/Generic.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/managed/API/Scripting/Generic.cs b/src/managed/API/Scripting/Generic.cs index d45d3974..cafde22a 100644 --- a/src/managed/API/Scripting/Generic.cs +++ b/src/managed/API/Scripting/Generic.cs @@ -189,7 +189,7 @@ public static Player[] FindPlayersByTarget(string target, bool matchbots) Player? player = GetPlayer(i); if (player == null) continue; - if (player.IsFakeClient() && !matchbots) continue; + if (!matchbots && player.IsFakeClient()) continue; if(target == "@all") { From 4d2052989962c4f6e27980ad0a511dd5e4c9aaf1 Mon Sep 17 00:00:00 2001 From: Casian <73272097+blu133721@users.noreply.github.com> Date: Wed, 20 Aug 2025 14:49:32 +0300 Subject: [PATCH 2/2] fix(managed): Invalid instance creation on ClassData --- src/managed/API/Scripting/Generic.cs | 2 +- src/managed/Internal_API/CallContext.cs | 12 +++++++++++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/src/managed/API/Scripting/Generic.cs b/src/managed/API/Scripting/Generic.cs index cafde22a..96e1a2a2 100644 --- a/src/managed/API/Scripting/Generic.cs +++ b/src/managed/API/Scripting/Generic.cs @@ -273,7 +273,7 @@ public static Player[] FindPlayersByTarget(string target, bool matchbots) } public static Player? GetPlayer(int playerid) { - return Internal_API.Invoker.CallNative("_G", "GetPlayer", Internal_API.CallKind.Function, playerid); + return Internal_API.Invoker.CallNative("_G", "GetPlayer", Internal_API.CallKind.Function, playerid); } public static ulong GetTime() { diff --git a/src/managed/Internal_API/CallContext.cs b/src/managed/Internal_API/CallContext.cs index 5255bbb5..d21f8a07 100644 --- a/src/managed/Internal_API/CallContext.cs +++ b/src/managed/Internal_API/CallContext.cs @@ -641,7 +641,17 @@ internal unsafe object GetArgument(Type type, int index) { fixed (CallData* data = &m_cdata) { - if (data->has_return == 0) return Activator.CreateInstance(type); + if (data->has_return == 0) + { + if (type == typeof(ClassData) || typeof(ClassData).IsAssignableFrom(type)) + { + return null; + } + else + { + return Activator.CreateInstance(type); + } + } byte* p = data->return_value; return ReadValue(ref type, ref p); }