ianlucas / cs2-inventory-simulator-plugin

A CounterStrikeSharp plugin for integrating with CS2 Inventory Simulator
MIT License
20 stars 6 forks source link

[CS# BUG?] Server crash after team change #5

Closed Kroytz closed 2 months ago

Kroytz commented 2 months ago

Seems CS#'s StrVOPrefix schema field is incorrent, tested with almost 3hrs modification, always crash after player's second spawn. but if I comment player.PlayerPawn.Value!.StrVOPrefix it stopped crash. so to make the plugin stable should we disable vo related functions until it got fix?

Env: CS# API Version: v213 (1.0.213+dfc9859) Windows Server 2022 Datacenter 21H2

  List of all plugins currently loaded by CounterStrikeSharp: 8 plugins loaded.
  [#1:LOADED]: "[CashPay]" (0.0.2) by 7ychu5
    Pay your game cash to the other player
  [#2:LOADED]: "Connect Info" (v1.0.5) by gleb_khlebov
    Information about the player's location when connecting to chat and console
  [#3:LOADING]: "Admin" (0.0.6) by schwarper
  [#4:LOADED]: "CS2-Tags" (1.0.4c) by daffyy
    Add player tags easily in cs2 game
  [#5:LOADED]: "InventorySimulator" (1.0.0-beta.20) by Ian Lucas
    Inventory Simulator (inventory.cstrike.app)
  [#6:LOADED]: "MatchZy" (0.7.0) by WD- (https://github.com/shobhit-pathak/)
    A plugin for running and managing CS2 practice/pugs/scrims/matches!
  [#7:LOADED]: "Minigames" (1.0.0) by Kroytz
    Minigames misc plugin
  [#8:LOADED]: "[Custom] No Block" (V. 1.0.1 [Beta]) by Manifest @Road To Glory & WD-
    Allows for players to walk through each other without being stopped due to colliding.

Also tested with single InventorySimulator load into my server. Crash still happen.

ianlucas commented 2 months ago

May be a Windows specific issue. So basically just switching teams crashes it? Can you provide the agents you're using? I'll give it a try when I have time later today.

Thanks.

ianlucas commented 2 months ago

Also any logs or stdout will be helpful. Now I'm going to sleep.

Kroytz commented 2 months ago

May be a Windows specific issue. So basically just switching teams crashes it? Can you provide the agents you're using? I'll give it a try when I have time later today.

Thanks.

Sorry for continous issue flooding and thank you for the works <3

This happens to any agent that modified VO by InventorySimulator. Join server -> To TR/CT -> M -> Switch to opposite team -> Crash Log in pastebin: https://pastebin.com/wKC7dLf5 Inside log there's only one type of crash, another type of crash tells me sth like Memory in protection, but no logs saved to cs# log dir. And I can't reproduce this Memory... like crash again in 5 times test.

ianlucas commented 2 months ago

I replicated the issue, and yeah it seems the issue is with the "StrVOPrefix" property. I'm really not sure what it could be, its schema type is CUtlString, maybe it have issues on Windows (wild guess with nothing backing it).

For now I have added the condition for checking if it's Windows so that it won't set that. It appears to work ok on Linux, so I'll keep it there. BTW this isn't the ideal solution, the ideal solution requires hooking a function as we did in CSGO in modelch, but since DynamicHooks are broken in both Linux and Windows we have to resort to workarounds.

I published the latest version, let me know if you find any other issue. Thank you!