diff --git a/ReallifeGamemode.Client/Interaction/factioninteraction.ts b/ReallifeGamemode.Client/Interaction/factioninteraction.ts index e8e905cf..1dbb710c 100644 --- a/ReallifeGamemode.Client/Interaction/factioninteraction.ts +++ b/ReallifeGamemode.Client/Interaction/factioninteraction.ts @@ -273,6 +273,7 @@ export default function factionInteraction(globalData: IGlobalData) { mp.gui.chat.activate(true); globalData.InMenu = false; mp.events.call("destroyMedicTaskCheckpoint"); + mp.events.callRemote("updateMedicTask", 1, activeTask.Victim, true); break; } @@ -318,7 +319,7 @@ export default function factionInteraction(globalData: IGlobalData) { } else { if (tasks[index].MedicName === "none") { mp.game.graphics.requestStreamedTextureDict("medicimages", true); - mp.events.callRemote("updateMedicTask", 0, tasks[index].Victim); + mp.events.callRemote("updateMedicTask", 0, tasks[index].Victim, false); mp.game.ui.setNewWaypoint(tasks[index].Position.x, tasks[index].Position.y); activeCheckpoint = mp.checkpoints.new(4, new mp.Vector3(tasks[index].Position.x, tasks[index].Position.y, tasks[index].Position.z - 2), 3.0, { @@ -371,7 +372,7 @@ export default function factionInteraction(globalData: IGlobalData) { } else { if (tasks[index].MedicName === "none") { mp.game.graphics.requestStreamedTextureDict("medicimages", true); - mp.events.callRemote("updateMedicTask", 1, tasks[index].Victim); + mp.events.callRemote("updateMedicTask", 1, tasks[index].Victim, false); mp.game.ui.setNewWaypoint(tasks[index].Position.x, tasks[index].Position.y); activeCheckpoint = mp.checkpoints.new(4, new mp.Vector3(tasks[index].Position.x, tasks[index].Position.y, tasks[index].Position.z - 2), 3.0, { diff --git a/ReallifeGamemode.Server/Factions/Medic/Medic.cs b/ReallifeGamemode.Server/Factions/Medic/Medic.cs index d0271cc6..98dda68e 100644 --- a/ReallifeGamemode.Server/Factions/Medic/Medic.cs +++ b/ReallifeGamemode.Server/Factions/Medic/Medic.cs @@ -209,23 +209,38 @@ namespace ReallifeGamemode.Server.Factions.Medic } [RemoteEvent("updateMedicTask")] - public void UpdateMedicTasks(Player player, int type, string victim) + public void UpdateMedicTasks(Player player, int type, string victim, bool isRemoved) { Player target = PlayerService.GetPlayerByNameOrId(victim); switch (type) { case 0: var reviveTask = ReviveTasks.FirstOrDefault(t => t.Victim == victim); - reviveTask.MedicName = player.Name; + if (isRemoved) + { + reviveTask.MedicName = "none"; + } + else + { + reviveTask.MedicName = player.Name; + } + ChatService.BroadcastFaction("~y~[MEDIC] ~w~" + player.Name + " hat den Reviveauftrag von " + victim + " angenommen.", new List() { 2 }); target.SendNotification("~w~Sanitäter~g~ " + player.Name + "~w~ eilt zur Rettung."); break; case 1: var healTask = HealTasks.FirstOrDefault(t => t.Victim == victim); - healTask.MedicName = player.Name; - ChatService.BroadcastFaction("~y~[MEDIC] ~w~" + player.Name + " hat den Healauftrag von " + victim + " angenommen.", new List() { 2 }); - target.SendNotification("~w~Sanitäter~g~ " + player.Name + "~w~ hat deinen Auftrag angenommen."); + if (isRemoved) + { + healTask.MedicName = "none"; + } + else + { + healTask.MedicName = player.Name; + ChatService.BroadcastFaction("~y~[MEDIC] ~w~" + player.Name + " hat den Healauftrag von " + victim + " angenommen.", new List() { 2 }); + target.SendNotification("~w~Sanitäter~g~ " + player.Name + "~w~ hat deinen Auftrag angenommen."); + } break; case 2: diff --git a/ReallifeGamemode.Server/Managers/InteractionManager.cs b/ReallifeGamemode.Server/Managers/InteractionManager.cs index b1c04dfc..c5189bb9 100644 --- a/ReallifeGamemode.Server/Managers/InteractionManager.cs +++ b/ReallifeGamemode.Server/Managers/InteractionManager.cs @@ -834,6 +834,7 @@ namespace ReallifeGamemode.Server.Managers { Medic.AddTaskToList(healTask); player.SetData("healauftrag", true); + player.SendNotification("~w~Du hast einen Sanitäter um Hilfe gerufen"); ChatService.BroadcastFaction("~y~[MEDIC] ~w~" + player.Name + " hat soeben einen Serviceauftrag beantragt.", new List() { 2 }); } }