From c765e3d1e7f2db559613af53cc34a26cda80e290 Mon Sep 17 00:00:00 2001 From: xSprite Date: Mon, 22 Oct 2018 00:16:34 +0200 Subject: [PATCH] Add /freekh, /arevive, Chat on Death, fix DeathAdminMsg --- Client/Gui/deathscreen.js | 2 +- Server/Commands/Admin.cs | 46 ++++++++++++++++++++++++++++++++++++++ Server/Commands/Faction.cs | 14 ++++++++++-- Server/Events/Death.cs | 7 ++++-- 4 files changed, 64 insertions(+), 5 deletions(-) diff --git a/Client/Gui/deathscreen.js b/Client/Gui/deathscreen.js index 99f30604..b152a2e5 100644 --- a/Client/Gui/deathscreen.js +++ b/Client/Gui/deathscreen.js @@ -19,7 +19,7 @@ mp.game.gameplay.setFadeOutAfterDeath(false); mp.events.add("startDeathTimer", () => { if (isDeath === false) { isDeath = true; - mp.gui.chat.activate(false); + //mp.gui.chat.activate(false); deathDate = new Date(); respawnTime = Math.floor(deathDate.getTime() / 1000 + 120); fade = 255 - 120; diff --git a/Server/Commands/Admin.cs b/Server/Commands/Admin.cs index dcd78730..ac7ec586 100644 --- a/Server/Commands/Admin.cs +++ b/Server/Commands/Admin.cs @@ -323,6 +323,29 @@ namespace reallife_gamemode.Server.Commands player.SendChatMessage("~b~Du hast das Leben von " + target.Name + " auf " + hp + " gesetzt."); } + [Command("arevive", "~m~Benutzung: ~s~/arevive [Spieler]")] + public void CmdAdminRevive(Client player, string name) + { + if (!player.GetUser()?.IsAdmin(AdminLevel.ADMIN) ?? true) + { + ChatService.NotAuthorized(player); + return; + } + + Client target = ClientService.GetClientByName(name); + if (target == null || !target.IsLoggedIn()) + { + ChatService.PlayerNotFound(player); + return; + } + + target.TriggerEvent("onPlayerRevived"); + target.SendNotification("Du wurdest von Admin ~y~" + player.Name + "~s~ wiederbelebt."); + target.SetData("isDead", false); + NAPI.Player.SpawnPlayer(target, target.Position); + target.Health = 100; + } + [Command("setarmor", "~m~Benutzung: ~s~/setarmor [Spieler] (Armor)")] public void CmdAdminSetArmor(Client player, string name, int armor = 100) { @@ -470,6 +493,29 @@ namespace reallife_gamemode.Server.Commands player.SendChatMessage("~b~Das Leben von " + peopleInRange.Count + " Spielern wurde auf " + hp + " gesetzt."); } + [Command("rfreekh", "~m~Benutzung: ~s~/freekh (Radius)")] + public void CmdAdminRangeSetHP(Client player, float radius=9999999) + { + if (!player.GetUser()?.IsAdmin(AdminLevel.ADMIN) ?? true) + { + ChatService.NotAuthorized(player); + return; + } + var peopleInRange = NAPI.Player.GetPlayersInRadiusOfPlayer(radius, player); + + foreach (var managedClient in peopleInRange) + { + if (!managedClient.IsLoggedIn()) return; + managedClient.SendChatMessage("~b~Admin " + player.Name + " hat im Radius von " + radius + " alle Spieler wiederbelebt"); + managedClient.TriggerEvent("onPlayerRevived"); + managedClient.SendNotification("Du wurdest von Admin ~y~" + player.Name + "~s~ wiederbelebt."); + managedClient.SetData("isDead", false); + NAPI.Player.SpawnPlayer(managedClient, managedClient.Position); + managedClient.Health = 100; + } + player.SendChatMessage("~b~Du hast "+ peopleInRange.Count + " Spieler wiederbelebt"); + } + [Command("rsetarmor", "~m~Benutzung: ~s~/rsetarmor [Radius] (Armor)")] public void CmdAdminRangeSetArmor(Client player, float radius, int Armor = 100) { diff --git a/Server/Commands/Faction.cs b/Server/Commands/Faction.cs index 06d407b8..32805969 100644 --- a/Server/Commands/Faction.cs +++ b/Server/Commands/Faction.cs @@ -206,7 +206,7 @@ namespace reallife_gamemode.Server.Commands #endregion #region Sanitäter Commands - [Command("revive", "~m~Benutzung: ~s~/invite")] + [Command("revive", "~m~Benutzung: ~s~/revive")] public void CmdFactionMedicRevive(Client player) { if (player.GetUser()?.FactionId == null || player.GetUser().FactionId != 2) @@ -214,12 +214,22 @@ namespace reallife_gamemode.Server.Commands ChatService.NotAuthorized(player); return; } + if (player.IsInVehicle) + { + player.SendChatMessage("~r~[FEHLER]~s~ Du kannst in einem Auto nicht wiederbeleben!"); + return; + } var nearPlayers = NAPI.Player.GetPlayersInRadiusOfPlayer(2, player); var deadPlayer = nearPlayers.Where(i => i.GetData("isDead") == true).FirstOrDefault(); + if (player == deadPlayer) + { + player.SendChatMessage("~r~[FEHLER]~s~ Du kannst dich nicht selbst wiederbeleben!"); + return; + } deadPlayer.TriggerEvent("onPlayerRevived"); - deadPlayer.SendNotification("Du wurdest von ~y~" + player.Name + "~s~ wiederbelebt."); + deadPlayer.SendNotification("Du wurdest von ~r~" + player.Name + "~s~ wiederbelebt."); deadPlayer.SetData("isDead", false); NAPI.Player.SpawnPlayer(deadPlayer, deadPlayer.Position); deadPlayer.Health = 50; diff --git a/Server/Events/Death.cs b/Server/Events/Death.cs index 15139c9f..44de5834 100644 --- a/Server/Events/Death.cs +++ b/Server/Events/Death.cs @@ -49,8 +49,11 @@ namespace reallife_gamemode.Server.Events killerPosY = killer.Position.Y; killerPosZ = killer.Position.Z; killerHeading = killer.Heading; - string message = "~y~[HINWEIS]: " + killer.Name + " hat " + player.Name + " getötet (" + NAPI.Player.GetPlayerCurrentWeapon(killer) + ")"; - ChatService.BroadcastAdmin(message, AdminLevel.ADMIN); + if(player != killer) + { + string message = "~y~[HINWEIS]: " + killer.Name + " hat " + player.Name + " getötet (" + NAPI.Player.GetPlayerCurrentWeapon(killer) + ")"; + ChatService.BroadcastAdmin(message, AdminLevel.ADMIN); + } } using (var userDeath = new DatabaseContext())