From 1c4df633d4868f92a55e6ddbe33f8624f114f9cb Mon Sep 17 00:00:00 2001 From: R2kip <56793105+R2kip@users.noreply.github.com> Date: Sat, 26 Apr 2025 00:12:36 +0300 Subject: [PATCH 1/3] Add ragdoll to died event --- .../EventArgs/Player/DiedEventArgs.cs | 14 ++++++++++++-- .../Patches/Events/Player/DyingAndDied.cs | 12 ++++++++++++ 2 files changed, 24 insertions(+), 2 deletions(-) diff --git a/EXILED/Exiled.Events/EventArgs/Player/DiedEventArgs.cs b/EXILED/Exiled.Events/EventArgs/Player/DiedEventArgs.cs index 26b6a26312..24e91e6870 100644 --- a/EXILED/Exiled.Events/EventArgs/Player/DiedEventArgs.cs +++ b/EXILED/Exiled.Events/EventArgs/Player/DiedEventArgs.cs @@ -13,6 +13,7 @@ namespace Exiled.Events.EventArgs.Player using Interfaces; using PlayerRoles; + using PlayerRoles.Ragdolls; using CustomAttackerHandler = API.Features.DamageHandlers.AttackerDamageHandler; using DamageHandlerBase = PlayerStatsSystem.DamageHandlerBase; @@ -20,7 +21,7 @@ namespace Exiled.Events.EventArgs.Player /// /// Contains all information after a player dies. /// - public class DiedEventArgs : IPlayerEvent, IAttackerEvent + public class DiedEventArgs : IPlayerEvent, IAttackerEvent, IRagdollEvent { /// /// Initializes a new instance of the class. @@ -32,12 +33,16 @@ public class DiedEventArgs : IPlayerEvent, IAttackerEvent /// /// /// - public DiedEventArgs(Player target, RoleTypeId targetOldRole, DamageHandlerBase damageHandler) + /// + /// + /// + public DiedEventArgs(Player target, RoleTypeId targetOldRole, DamageHandlerBase damageHandler, BasicRagdoll ragdoll) { DamageHandler = new CustomDamageHandler(target, damageHandler); Attacker = DamageHandler.BaseIs(out CustomAttackerHandler attackerDamageHandler) ? attackerDamageHandler.Attacker : null; Player = target; TargetOldRole = targetOldRole; + Ragdoll = Ragdoll.Get(ragdoll); } /// @@ -59,5 +64,10 @@ public DiedEventArgs(Player target, RoleTypeId targetOldRole, DamageHandlerBase /// Gets the attacker. /// public Player Attacker { get; } + + /// + /// Gets ragdoll of the dead player. + /// + public Ragdoll Ragdoll { get; } } } \ No newline at end of file diff --git a/EXILED/Exiled.Events/Patches/Events/Player/DyingAndDied.cs b/EXILED/Exiled.Events/Patches/Events/Player/DyingAndDied.cs index 9b4c29b3b1..eef831a5cd 100644 --- a/EXILED/Exiled.Events/Patches/Events/Player/DyingAndDied.cs +++ b/EXILED/Exiled.Events/Patches/Events/Player/DyingAndDied.cs @@ -19,6 +19,7 @@ namespace Exiled.Events.Patches.Events.Player using HarmonyLib; using PlayerRoles; + using PlayerRoles.Ragdolls; using PlayerStatsSystem; @@ -41,6 +42,7 @@ private static IEnumerable Transpiler(IEnumerable Transpiler(IEnumerable x.opcode == OpCodes.Pop); + + newInstructions[index] = new CodeInstruction(OpCodes.Stloc, ragdoll.LocalIndex); + newInstructions.InsertRange( newInstructions.Count - 1, new CodeInstruction[] @@ -87,6 +96,9 @@ private static IEnumerable Transpiler(IEnumerable Date: Mon, 28 Apr 2025 12:37:27 +0300 Subject: [PATCH 2/3] oops --- EXILED/Exiled.Events/Patches/Events/Player/DyingAndDied.cs | 3 --- 1 file changed, 3 deletions(-) diff --git a/EXILED/Exiled.Events/Patches/Events/Player/DyingAndDied.cs b/EXILED/Exiled.Events/Patches/Events/Player/DyingAndDied.cs index eef831a5cd..fd1b191ea0 100644 --- a/EXILED/Exiled.Events/Patches/Events/Player/DyingAndDied.cs +++ b/EXILED/Exiled.Events/Patches/Events/Player/DyingAndDied.cs @@ -77,9 +77,6 @@ private static IEnumerable Transpiler(IEnumerable x.opcode == OpCodes.Pop); From 591a6a604202a3118bbeb3adec131070e18fbe34 Mon Sep 17 00:00:00 2001 From: R2kip <56793105+R2kip@users.noreply.github.com> Date: Mon, 28 Apr 2025 16:55:05 +0300 Subject: [PATCH 3/3] oops 2x :) --- .../Exiled.Events/Patches/Events/Player/DyingAndDied.cs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/EXILED/Exiled.Events/Patches/Events/Player/DyingAndDied.cs b/EXILED/Exiled.Events/Patches/Events/Player/DyingAndDied.cs index fd1b191ea0..489732cf08 100644 --- a/EXILED/Exiled.Events/Patches/Events/Player/DyingAndDied.cs +++ b/EXILED/Exiled.Events/Patches/Events/Player/DyingAndDied.cs @@ -93,12 +93,12 @@ private static IEnumerable Transpiler(IEnumerable Transpiler(IEnumerable.Pool.Return(newInstructions); } } -} \ No newline at end of file +}