diff --git a/ReallifeGamemode.Client/Interaction/factioninteraction.ts b/ReallifeGamemode.Client/Interaction/factioninteraction.ts index 4074d49f..c2489d92 100644 --- a/ReallifeGamemode.Client/Interaction/factioninteraction.ts +++ b/ReallifeGamemode.Client/Interaction/factioninteraction.ts @@ -235,6 +235,7 @@ export default function factionInteraction(globalData: IGlobalData) { if (activeTask != null) { if (activeTask.Type == 1 && activeCheckpoint && mp.checkpoints.exists(activeCheckpoint)) { deleteCheckpointItem = new UIMenuItem("~r~Checkpoint löschen"); + factionInteractionMenu.AddItem(deleteCheckpointItem); } } } @@ -270,6 +271,7 @@ export default function factionInteraction(globalData: IGlobalData) { factionInteractionMenu.Close(); mp.gui.chat.activate(true); globalData.InMenu = false; + mp.events.call("destroyMedicTaskCheckpoint"); break; } diff --git a/ReallifeGamemode.Server/Events/Disconnect.cs b/ReallifeGamemode.Server/Events/Disconnect.cs index 6d3c6eb8..886357c5 100644 --- a/ReallifeGamemode.Server/Events/Disconnect.cs +++ b/ReallifeGamemode.Server/Events/Disconnect.cs @@ -147,10 +147,6 @@ namespace ReallifeGamemode.Server.Events player.TriggerEvent("CLIENT:DestroyPed", 3); player.TriggerEvent("CLIENT:DestroyPed", 4); - MedicTask task = Medic.ReviveTasks.FirstOrDefault(t => t.Victim == player.Name); - Player medicPlayer = PlayerService.GetPlayerByNameOrId(task.MedicName); - medicPlayer.TriggerEvent("destroyMedicTaskCheckpoint"); - Medic.delHealTask(player); Medic.delReviveTask(player); if (player.GetData("duty") == true) diff --git a/ReallifeGamemode.Server/Factions/Medic/Medic.cs b/ReallifeGamemode.Server/Factions/Medic/Medic.cs index a779696b..679bec9a 100644 --- a/ReallifeGamemode.Server/Factions/Medic/Medic.cs +++ b/ReallifeGamemode.Server/Factions/Medic/Medic.cs @@ -221,8 +221,13 @@ namespace ReallifeGamemode.Server.Factions.Medic public static void delHealTask(Player player) { MedicTask task = HealTasks.FirstOrDefault(t => t.Victim == player.Name); - if(task != null) RemoveTaskFromList(task); - player.SetData("healauftrag", false); + if (task != null) + { + RemoveTaskFromList(task); + player.SetData("healauftrag", false); + var medicPlayer = PlayerService.GetPlayerByNameOrId(task.MedicName); + medicPlayer.TriggerEvent("destroyMedicTaskCheckpoint"); + } } [RemoteEvent("delHealTaskAsMedic")] @@ -231,13 +236,19 @@ namespace ReallifeGamemode.Server.Factions.Medic MedicTask task = HealTasks.FirstOrDefault(t => t.Victim == victimName); RemoveTaskFromList(task); player.SetData("healauftrag", false); + } [RemoteEvent("delReviveTask")] public static void delReviveTask(Player player) { MedicTask task = ReviveTasks.FirstOrDefault(t => t.Victim == player.Name); - RemoveTaskFromList(task); + if (task != null) + { + var medicPlayer = PlayerService.GetPlayerByNameOrId(task.MedicName); + medicPlayer.TriggerEvent("destroyMedicTaskCheckpoint"); + RemoveTaskFromList(task); + } } public static void UpdateDutyMedics(int modifier)