ianlucas/cs2-inventory-simulator-plugin

Gamedata update for CS2 v1.40.0.5

walia6 opened this issue · 6 comments

In latest CS2 update, GiveNamedItem Linux signature has changed. While CS# doesn't update it, you can do it by updating counterstrikesharp/gamedata/gamedata.json:

  "GiveNamedItem": {
    "signatures": {
      "library": "server",
      "windows": "\\x48\\x89\\x5C\\x24\\x2A\\x48\\x89\\x74\\x24\\x2A\\x55\\x57\\x41\\x2A\\x41\\x2A\\x41\\x2A\\x48\\x2A\\x2A\\x2A\\x2A\\x48\\x2A\\x2A\\x2A\\x2A\\x2A\\x2A\\x4D\\x2A\\x2A\\x48",
      "linux": "\\x55\\x48\\x89\\xE5\\x41\\x57\\x41\\x56\\x49\\x89\\xD6\\x41\\x55\\x49\\x89\\xFD\\x41\\x54\\x48"
    }
  },

I am running the following:

Ubuntu 22.04.4
mmsource-2.0.0-git1289-linux
counterstrikesharp-with-runtime-build-215-linux-7cae4be
InventorySimulator-v1.0.0-beta.22

The server boots, throwing a "Failed to load plugin error"

When running css_plugins list, it shows InventorySimulator as LOADING.
I have a separate plugin, CS2Rcon, which shows as LOADED.

The gloves I set are working, while weapon skins and knife skins are not.

Here is the excerpt from the log I believe is relevant:

02:22:55 [INFO] (cssharp:PluginContext) Loading plugin InventorySimulator
02:22:55 [EROR] (cssharp:PluginManager) Failed to load plugin from /home/ubuntu/cs2/game/csgo/addons/counterstrikesharp/plugins/InventorySimulator/InventorySimulator.dll
CounterStrikeSharp.API.Core.NativeException: Invalid function pointer
   at CounterStrikeSharp.API.Core.ScriptContext.CheckErrors() in /home/runner/work/CounterStrikeSharp/CounterStrikeSharp/managed/CounterStrikeSharp.API/Core/ScriptContext.cs:line 176
   at CounterStrikeSharp.API.Core.NativeAPI.HookFunction(IntPtr function, InputArgument hook, Boolean post) in /home/runner/work/CounterStrikeSharp/CounterStrikeSharp/managed/CounterStrikeSharp.API/Core/API.cs:line 1033
   at CounterStrikeSharp.API.Modules.Memory.DynamicFunctions.BaseMemoryFunction.Hook(Func`2 handler, HookMode mode) in /home/runner/work/CounterStrikeSharp/CounterStrikeSharp/managed/CounterStrikeSharp.API/Modules/Memory/DynamicFunctions/BaseMemoryFunction.cs:line 62
   at InventorySimulator.InventorySimulator.Load(Boolean hotReload) in C:\Users\ianlu\Projects\cs2-inventory-simulator-plugin\source\InventorySimulator\InventorySimulator.cs:line 50
   at CounterStrikeSharp.API.Core.Plugin.PluginContext.Load(Boolean hotReload) in /home/runner/work/CounterStrikeSharp/CounterStrikeSharp/managed/CounterStrikeSharp.API/Core/Plugin/PluginContext.cs:line 218
   at CounterStrikeSharp.API.Core.Plugin.Host.PluginManager.LoadPlugin(String path) in /home/runner/work/CounterStrikeSharp/CounterStrikeSharp/managed/CounterStrikeSharp.API/Core/Plugin/Host/PluginManager.cs:line 125
   at CounterStrikeSharp.API.Core.Plugin.Host.PluginManager.Load() in /home/runner/work/CounterStrikeSharp/CounterStrikeSharp/managed/CounterStrikeSharp.API/Core/Plugin/Host/PluginManager.cs:line 93```

I'd recommend you to reinstall everything. The error points to line 50 which is the hook for giving a named item to a player - so it appears to be an issue with CS#. I've personally tested in latest Windows and Linux, so I'm pretty sure it's some misconfiguration on your end.

Make sure gamedata is correct and FollowCS2ServerGuidelines is false.

Btw looks like CS# had a new update specifically for this issue. You may try that as well.

Okay looks like it's broken. I wasn't aware Valve released another update. I'll look into it.

Currently CounterStrikeSharp's GiveNamedItem is outdated. Until it is updated, update your server gamedata.

Worked for me 👍

Thanks