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
+}