diff --git a/src/managed/API/Scripting/Generic.cs b/src/managed/API/Scripting/Generic.cs index d45d3974..96e1a2a2 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") { @@ -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); }