From 92e1a970a83c5cbdff83f5292d9fa70422549c7f Mon Sep 17 00:00:00 2001
From: oldnapalm <38410858+oldnapalm@users.noreply.github.com>
Date: Fri, 6 Oct 2023 23:46:08 -0300
Subject: [PATCH] Show kill notification
---
RageCoop.Client/Main.cs | 11 +++++------
RageCoop.Client/Scripting/API.cs | 4 ++--
RageCoop.Client/Scripting/BaseScript.cs | 4 ++--
RageCoop.Server/Scripting/BaseScript.cs | 2 +-
4 files changed, 10 insertions(+), 11 deletions(-)
diff --git a/RageCoop.Client/Main.cs b/RageCoop.Client/Main.cs
index 70a5b07..f1c6999 100644
--- a/RageCoop.Client/Main.cs
+++ b/RageCoop.Client/Main.cs
@@ -170,8 +170,7 @@ namespace RageCoop.Client
P.Health = 1;
Game.Player.WantedLevel = 0;
Main.Logger.Debug("Player died.");
- Scripting.API.Events.InvokePlayerDied();
- KillMessage();
+ Scripting.API.Events.InvokePlayerDied(KillMessage());
}
GTA.UI.Screen.StopEffects();
}
@@ -182,8 +181,7 @@ namespace RageCoop.Client
}
else if (P.IsDead && !_lastDead)
{
- Scripting.API.Events.InvokePlayerDied();
- KillMessage();
+ Scripting.API.Events.InvokePlayerDied(KillMessage());
}
_lastDead = P.IsDead;
@@ -395,14 +393,15 @@ namespace RageCoop.Client
});
}
- public static void KillMessage()
+ private string KillMessage()
{
if (P.Killer != null)
{
var killer = EntityPool.GetPedByHandle(P.Killer.Handle);
if (killer != null && killer.ID == killer.Owner.ID)
- Scripting.API.SendChatMessage($"Killed by {killer.Owner.Username} ({P.CauseOfDeath})");
+ return $"~h~{PlayerList.GetPlayer(LocalPlayerID).Username}~h~ was killed by ~h~{killer.Owner.Username}~h~ ({P.CauseOfDeath})";
}
+ return $"~h~{PlayerList.GetPlayer(LocalPlayerID).Username}~h~ died";
}
}
}
diff --git a/RageCoop.Client/Scripting/API.cs b/RageCoop.Client/Scripting/API.cs
index 0cd5ff3..8c7bb4c 100644
--- a/RageCoop.Client/Scripting/API.cs
+++ b/RageCoop.Client/Scripting/API.cs
@@ -91,7 +91,7 @@ namespace RageCoop.Client.Scripting
///
/// The local player is dead
///
- public static event EmptyEvent OnPlayerDied;
+ public static event EventHandler OnPlayerDied;
///
/// A local vehicle is spawned
@@ -133,7 +133,7 @@ namespace RageCoop.Client.Scripting
internal static void InvokeVehicleDeleted(SyncedVehicle v) { OnVehicleDeleted?.Invoke(null, v); }
internal static void InvokePedSpawned(SyncedPed p) { OnPedSpawned?.Invoke(null, p); }
internal static void InvokePedDeleted(SyncedPed p) { OnPedDeleted?.Invoke(null, p); }
- internal static void InvokePlayerDied() { OnPlayerDied?.Invoke(); }
+ internal static void InvokePlayerDied(string m) { OnPlayerDied?.Invoke(null, m); }
internal static void InvokeTick() { OnTick?.Invoke(); }
internal static void InvokeKeyDown(object s, KeyEventArgs e) { OnKeyDown?.Invoke(s, e); }
diff --git a/RageCoop.Client/Scripting/BaseScript.cs b/RageCoop.Client/Scripting/BaseScript.cs
index 8d489ae..e7f3a6a 100644
--- a/RageCoop.Client/Scripting/BaseScript.cs
+++ b/RageCoop.Client/Scripting/BaseScript.cs
@@ -16,7 +16,7 @@ namespace RageCoop.Client.Scripting
{
API.Events.OnPedDeleted += (s, p) => { API.SendCustomEvent(CustomEvents.OnPedDeleted, p.ID); };
API.Events.OnVehicleDeleted += (s, p) => { API.SendCustomEvent(CustomEvents.OnVehicleDeleted, p.ID); };
- API.Events.OnPlayerDied += () => { API.SendCustomEvent(CustomEvents.OnPlayerDied); };
+ API.Events.OnPlayerDied += (s, m) => { API.SendCustomEvent(CustomEvents.OnPlayerDied, m); };
API.RegisterCustomEventHandler(CustomEvents.SetAutoRespawn, SetAutoRespawn);
API.RegisterCustomEventHandler(CustomEvents.SetDisplayNameTag, SetDisplayNameTag);
@@ -31,7 +31,7 @@ namespace RageCoop.Client.Scripting
API.RegisterCustomEventHandler(CustomEvents.UpdatePedBlip, UpdatePedBlip);
API.RegisterCustomEventHandler(CustomEvents.IsHost, (e) => { _isHost = (bool)e.Args[0]; });
API.RegisterCustomEventHandler(CustomEvents.WeatherTimeSync, WeatherTimeSync);
- API.RegisterCustomEventHandler(CustomEvents.OnPlayerDied, (e) => { GTA.UI.Notification.Show($"~h~{e.Args[0]}~h~ died."); });
+ API.RegisterCustomEventHandler(CustomEvents.OnPlayerDied, (e) => { GTA.UI.Notification.Show((string)e.Args[0]); });
Task.Run(() =>
{
while (true)
diff --git a/RageCoop.Server/Scripting/BaseScript.cs b/RageCoop.Server/Scripting/BaseScript.cs
index 7fd24b8..537d84b 100644
--- a/RageCoop.Server/Scripting/BaseScript.cs
+++ b/RageCoop.Server/Scripting/BaseScript.cs
@@ -38,7 +38,7 @@ namespace RageCoop.Server.Scripting
});
API.RegisterCustomEventHandler(CustomEvents.OnPlayerDied, (e) =>
{
- API.SendCustomEventQueued(API.GetAllClients().Values.Where(x => x != e.Client).ToList(), CustomEvents.OnPlayerDied, e.Client.Username);
+ API.SendCustomEventQueued(API.GetAllClients().Values.Where(x => x != e.Client).ToList(), CustomEvents.OnPlayerDied, e.Args);
});
API.Events.OnChatMessage += (s, e) =>
Server.Logger?.Info((e.Client?.Username ?? e.ClaimedSender ?? "Unknown") + ": " + e.Message);