Players should bleed when shot by other players#1605
Players should bleed when shot by other players#1605AdamTadeusz wants to merge 5 commits intoNeotokyoRebuild:masterfrom
Conversation
|
Friendly fire blood decals still aren't being rendered on my test setup, though maybe this is a quirk of the multiple clients connecting to a server on the same machine test setup: client-bleed-teammates-0.mp4 |
|
Thats my b I only tested with bots |
|
testing some more looks like this applies to enemies as well |
|
Before and After testingBlood.mp4 |
|
ok the more I look at this the more confused I am |
sunzenshen
left a comment
There was a problem hiding this comment.
Nit: One thing I noticed was that it seems like after death the decals all disappear during this demo footage?
blood-decal-shared-perspective.mp4
I don't consider this a blocker, as the decals showing consistently when alive is more important than the decals showing when dead, but curious to see if other notice this phenomenon.
The commit seems easy to revert so I'm curious as to what this would look like in a live multiplayer session.
|
I think what happened here is that you shot the player model in a limb, so the model was changed to a leg-less model, so pPlayer->SnatchModelInstance( this ); in C_HL2MPRagdoll::CreateHL2MPRagdoll fails because of the difference in the player and ragdoll model. If the player model is set to the leg-less model before the ragdoll is created then the same problem still occurs (not sure if snatching the model instance is even attempted in those instances), and actually ognt has this exact problem. I am planning to take a look at solutions to this in the better client side ragdolls branch |
Nagrywanie.ekranu.2026-01-24.110112.mp4 |
|
Don't merge this yet I need to check something |
DESTROYGIRL
left a comment
There was a problem hiding this comment.
Since #1615 neo_npc_targetsystem uses firebullets, however since it's a server only entity it intentionally created no effects. This will break that (though the branch for this PR is not up to date, so you will not see it). Stated here
I suggest you add the bDoServerEffects bool as a parameter to FireBulletsInfo_t enabled on default then make sure it's turned off for neo_npc_targetsystem
|
which effects are you trying to hide? |
|
Tracers & decals. The tracers that jeff actually fires are created seperately. If we used this method the tracers would not follow the expected shot trajectory |
DESTROYGIRL
left a comment
There was a problem hiding this comment.
Probably would have been more tidy adding the var as part of FireBulletsInfo_t like we did with penetration(?) but works fine here.
|
Epic linux failure @AdamTadeusz |
sunzenshen
left a comment
There was a problem hiding this comment.
Totally forgot about the linux build error. 😅
|
@sunzenshen to fix this build error, update the signature in this file, but I think changing the signature of |
Yeah I guess it might break compatibility with: https://github.com/search?q=repo%3Aalliedmodders%2Fsourcemod+FireBullets&type=code Although I'm not actually sure. If we don't change the order of the existing arguments, and as long as the signature still points to the beginning of the function prologue correctly, and the calling convention matches, I imagine it might work without having knowledge of the added argument. But would have to be tested. Alternatively we could introduce a separate NTRE-only version of the function that called the one with the original prototype for compatibility with that stuff. |
Wouldn't this solve it? |
As long as we add our stuff to the end of the layout, I imagine it wouldn't interfere with SourceMod stuff. |
Description
Reasoning behind the solution: https://whiteboard.cloud.microsoft/me/whiteboards/d01886c3-9a3d-419f-a06d-f1840c62ed6b
Latest test video
bDoServerEffects.mp4
Toolchain
Linked Issues