JoinedSenses / SM-SuperSprayHandler

Maintained version of Super Spray Handler sourcemod plugin by TheWreckingCrew6.
GNU General Public License v3.0
14 stars 7 forks source link

Spraying next to a spray crashes both parties game entirely #13

Open NooctisUGC opened 5 months ago

NooctisUGC commented 5 months ago

We have been getting some complaints about members crashing when spraying sprays. This has only started after fixing a previous issue with sprays not spray banning perm. It was only session. We had that fixed and implemented. I have provided the cfg we are using and a video.

I would however like to request if its possible to find your plugin previous version so we can test and use that as we have a big community server to maintain. I'm not entirely sure how long this might take to be fixed or if there is any temp fixes

https://github.com/JoinedSenses/SM-SuperSprayHandler/assets/165837017/d8fb21ce-1207-430b-92a6-d7650c401a4f

`// Which authentication identifiers should be seen in the HUD? // - This is a "math" cvar, add the proper numbers for your likings. (Example: 1 + 4 = 5/Name + IP address) // 1 - Name // 2 - SteamID // 4 - IP address // - // Default: "3" // Minimum: "1.000000" sm_ssh_auth "3"

// Enables automatically removing sprays when a punishment is dealt. // - // Default: "1" sm_ssh_autoremove "1"

// How long the burn punishment is for. // - // Default: "0" sm_ssh_burntime "0"

// Should you have to confirm spray banning and un-spraybanning? // - // Default: "1" sm_ssh_confirmactions "1"

// How far away (FROM YOUR MOUSE, NOT YOUR POSITION) the spray will be traced to. // - // Default: "50.0" sm_ssh_dista "50.0"

// set the time a sprayer is drugged as a punishment. 0 to disable. // - // Default: "0" sm_ssh_drugtime "0"

// Whether or not banning is enabled. 0 to disable temporary banning. // - // Default: "1" sm_ssh_enableban "1"

// Enables putting a beacon on the sprayer as a punishment. // - // Default: "0" sm_ssh_enablebeacon "0"

// Enables the use of Burn as a punishment. // - // Default: "0" sm_ssh_enableburn "0"

// Enable "Super Spray Handler"? // - // Default: "1" // Minimum: "0.000000" // Maximum: "1.000000" sm_ssh_enabled "1"

// Enables the use of Fire Bomb as a punishment. // - // Default: "0" sm_ssh_enablefirebomb "0"

// Enables the use of Freeze as a punishment. // - // Default: "0" sm_ssh_enablefreeze "0"

// Enables the use of Freeze Bomb as a punishment. // - // Default: "0" sm_ssh_enablefreezebomb "0"

// Enables the use of Kick as a punishment. // - // Default: "0" sm_ssh_enablekick "0"

// Enables the use of a Permanent Ban as a punishment. // - // Default: "1" sm_ssh_enablepban "1"

// Enables the use of Slay as a punishment. // - // Default: "0" sm_ssh_enableslay "0"

// Enables Spray Ban in the Punishment Menu. // - // Default: "1" sm_ssh_enablespraybaninmenu "1"

// Enables the use of Time Bomb as a punishment. // - // Default: "0" sm_ssh_enabletimebomb "0"

// Enables or disables global spray tracking. If this is on, sprays can still be tracked when a player leaves the server. // - // Default: "1" sm_ssh_global "0"

// How long the HUD messages are displayed. // - // Default: "1.0" sm_ssh_hudtime "1.0"

// Where players will see the owner of the spray that they're aiming at? 0 - Disabled 1 - Hud hint 2 - Hint text (like sm_hsay) 3 - Center text (like sm_csay) 4 - HUD // - // Default: "1" sm_ssh_location "1"

// Prevent spray-on-spray overlapping? // If enabled, specify an amount of units that another player spray's distance from the new spray needs to be it or more, recommended value is 75. // - // Default: "0" // Minimum: "0.000000" sm_ssh_overlap "75"

// How often the program will trace to see player's spray to the HUD. 0 to disable. // - // Default: "0.1" sm_ssh_refresh "0.1"

// Enables or disables restricting admins to punishments they are given access to. (1 = commands they have access to, 0 = all) // - // Default: "1" sm_ssh_restrict "1"

// How much damage the slap punishment is for. 0 to disable. // - // Default: "0" sm_ssh_slapdamage "0"

// Enables or disables using admin immunity to determine if one admin can punish another. // - // Default: "0" sm_ssh_useimmunity "0"`

sapphonie commented 5 months ago

PRs are welcome, however, this is probably related to this:

https://discord.com/channels/952337811032387584/1134138337280667708/1164979132321505370

link in shounic's 100 player discord

@\ person , thanks for giving me that crash dump. Here's what I've found:

GetMaterial( (RenderMode_t)rendermode, frame ) !
Draw_SetSpriteTexture( spritemodel, frame, rendermode ); !
DrawSegs !
CViewRenderBeams::DrawBeamWithHalo ???
CViewRenderBeams::DrawBeam !!!

We're crashing... because of beam temp ents

image

I'm unsure how to fix this, pretty sure it's an issue Valve side. It might be caused by drawing too many beam entities too quickly, in which case sm_ssh_refresh to a higher value (it's in seconds) could help.

The more info you can provide the better, a la

status; version; plugin_print; meta version; meta list; sm version; sm exts list; sm plugins list; maxplayers

in server console, as well as client .dmp files

sapphonie commented 5 months ago

wait i'm fcking going insane, this isn't even related to my fork, this is probably just a malformed spray, in which case you should use
https://forums.alliedmods.net/showthread.php?p=2694721

Wheretf2 commented 5 months ago

Hi,

Maybe I'm misunderstanding, but I find it unlikely the sprays are the issue, as this is a widespread issue across many clients with sprays that have no issue without this plugin installed, nor have had any issues with a previous spray trace plugin

I was able to reproduce the crash a few times, although with hit and miss reliability Here's one of those dmp files crash_hl2.exe_20240406150502_1.dmp

status; version; plugin_print; meta version; meta list; sm version; sm exts list; sm plugins list; maxplayers

Build Label:           8622567   # Uniquely identifies each build
Network PatchVersion:  8622567   # Determines client and server compatibility
Protocol version:           24   # High level network protocol version
Server version:        8622567
Server AppID:           232250
Loaded plugins:
---------------------
0:      "Metamod:Source 1.11.0-dev+1148"
---------------------
 Metamod:Source Version Information
    Metamod:Source version 1.11.0-dev+1148
    Plugin interface version: 16:14
    SourceHook version: 5:5
    Loaded As: Valve Server Plugin
    Compiled on: Jun 26 2022 08:01:32
    Built from: https://github.com/alliedmodders/metamod-source/commit/4bdc218
    Build ID: 1148:4bdc218
    http://www.metamodsource.net/
 SourceMod Version Information:
    SourceMod Version: 1.11.0.6923
    SourcePawn Engine: 1.11.0.6923, jit-x86 (build 1.11.0.6923)
    SourcePawn API: v1 = 5, v2 = 16
    Compiled on: Dec  2 2022 00:52:46
    Built from: https://github.com/alliedmodders/sourcemod/commit/16da1f43
    Build ID: 6923:16da1f43
    http://www.sourcemod.net/
"maxplayers" is "32"

Waiting on approval to post other info if needed

Thank you!