diff --git a/ReallifeGamemode.Client/Interaction/factioninteraction.ts b/ReallifeGamemode.Client/Interaction/factioninteraction.ts index cf8db984..45bb1ece 100644 --- a/ReallifeGamemode.Client/Interaction/factioninteraction.ts +++ b/ReallifeGamemode.Client/Interaction/factioninteraction.ts @@ -318,12 +318,14 @@ export default function factionInteraction(globalData: IGlobalData) { } else { if (tasks[index].MedicName === "none") { mp.game.graphics.requestStreamedTextureDict("medicimages", true); - mp.events.callRemote("updateMedicTask", 0, index, player.name); + mp.events.callRemote("updateMedicTask", 0, index, tasks[index].Victim); mp.game.ui.setNewWaypoint(tasks[index].Position.x, tasks[index].Position.y); - activeCheckpoint = mp.markers.new(1, new mp.Vector3(tasks[index].Position.x, tasks[index].Position.y, tasks[index].Position.z - 2), 3.0, { - color: [255, 0, 0, 150], - visible: true, - dimension: 0 + activeCheckpoint = mp.checkpoints.new(1, new mp.Vector3(tasks[index].Position.x, tasks[index].Position.y, tasks[index].Position.z - 2), 3.0, + { + direction: new mp.Vector3(0, 0, 75), + color: [255, 0, 0, 150], + visible: true, + dimension: 0 }); reviveTaskMenuMedic.Close(); mp.gui.chat.activate(true); @@ -372,7 +374,9 @@ export default function factionInteraction(globalData: IGlobalData) { mp.game.graphics.requestStreamedTextureDict("medicimages", true); mp.events.callRemote("updateMedicTask", 1, index, player.name); mp.game.ui.setNewWaypoint(tasks[index].Position.x, tasks[index].Position.y); - activeCheckpoint = mp.markers.new(1, new mp.Vector3(tasks[index].Position.x, tasks[index].Position.y, tasks[index].Position.z - 2), 3.0, { + activeCheckpoint = mp.checkpoints.new(1, new mp.Vector3(tasks[index].Position.x, tasks[index].Position.y, tasks[index].Position.z - 2), 3.0, + { + direction: new mp.Vector3(0, 0, 75), color: [255, 0, 0, 150], visible: true, dimension: 0 @@ -471,12 +475,13 @@ export default function factionInteraction(globalData: IGlobalData) { deadRespawned = true; }); - mp.events.add('playerEnterColshape', (activeCheckpoint) => { + mp.events.add('playerEnterCheckpoint', (activeCheckpoint) => { if (deadRespawned == true) { activeTask = false; activeCheckpoint.destroy(); mp.events.callRemote("delReviveTask"); mp.events.callRemote("payCutMedicEarnings"); + deadRespawned = false; } }); diff --git a/ReallifeGamemode.Server/Commands/AdminCommands.cs b/ReallifeGamemode.Server/Commands/AdminCommands.cs index 042bbc5a..a6e349a1 100644 --- a/ReallifeGamemode.Server/Commands/AdminCommands.cs +++ b/ReallifeGamemode.Server/Commands/AdminCommands.cs @@ -1345,7 +1345,7 @@ namespace ReallifeGamemode.Server.Commands NAPI.Player.SpawnPlayer(target, target.Position); target.Health = 100; - Medic.delReviveTasks(target); + Medic.delReviveTask(target); } [Command("setap", "~m~Benutzung: ~s~/setap [Spieler] (Armor)")] @@ -2212,7 +2212,7 @@ namespace ReallifeGamemode.Server.Commands NAPI.Player.SpawnPlayer(managedPlayer, managedPlayer.Position); managedPlayer.Health = 100; - Medic.delReviveTasks(managedPlayer); + Medic.delReviveTask(managedPlayer); } ChatService.SendMessage(player, "~b~Du hast " + playerRevided + " Spieler wiederbelebt."); diff --git a/ReallifeGamemode.Server/Events/Death.cs b/ReallifeGamemode.Server/Events/Death.cs index 5bcab3fc..71d393aa 100644 --- a/ReallifeGamemode.Server/Events/Death.cs +++ b/ReallifeGamemode.Server/Events/Death.cs @@ -104,7 +104,7 @@ namespace ReallifeGamemode.Server.Events MedicName = "none" }; Medic.AddTaskToList(reviveTask); - Medic.delHealTasks(player); + Medic.delHealTask(player); ChatService.BroadcastFaction("~y~[MEDIC] ~w~" + player.Name + " ist soeben verstorben.", new List() { 2 }); if (player.GetUser().IsAdmin(AdminLevel.ADMIN) == true) @@ -232,13 +232,13 @@ namespace ReallifeGamemode.Server.Events dbContext.SaveChanges(); } player.RemoveAllWeapons(); - //Medic.delReviveTasks(player); + Medic.delReviveTask(player); NAPI.Player.SpawnPlayer(player, new Vector3(-495.45, -336.33, 34.5), -98.36f); } [RemoteEvent("MedicTaskTimeout")] public void RemoveMedicTask(Player player) { - Medic.delReviveTasks(player); + Medic.delReviveTask(player); } } } diff --git a/ReallifeGamemode.Server/Events/Disconnect.cs b/ReallifeGamemode.Server/Events/Disconnect.cs index 4ca745a2..d4f6e4a1 100644 --- a/ReallifeGamemode.Server/Events/Disconnect.cs +++ b/ReallifeGamemode.Server/Events/Disconnect.cs @@ -137,8 +137,8 @@ namespace ReallifeGamemode.Server.Events player.TriggerEvent("CLIENT:DestroyPed", 2); player.TriggerEvent("CLIENT:DestroyPed", 3); player.TriggerEvent("CLIENT:DestroyPed", 4); - Medic.delHealTasks(player); - Medic.delReviveTasks(player); + Medic.delHealTask(player); + Medic.delReviveTask(player); } } } diff --git a/ReallifeGamemode.Server/Factions/Medic/Medic.cs b/ReallifeGamemode.Server/Factions/Medic/Medic.cs index 02b06248..80eefa0b 100644 --- a/ReallifeGamemode.Server/Factions/Medic/Medic.cs +++ b/ReallifeGamemode.Server/Factions/Medic/Medic.cs @@ -89,33 +89,33 @@ namespace ReallifeGamemode.Server.Factions.Medic } [RemoteEvent("updateMedicTask")] - public void UpdateMedicTasks(Player player, int type, int index, string medicName) + public void UpdateMedicTasks(Player player, int type, int index, string victimName) { - Player target = PlayerService.GetPlayerByNameOrId(medicName); + Player target = PlayerService.GetPlayerByNameOrId(victimName); switch (type) { case 0: - ReviveTasks[index].MedicName = medicName; - ChatService.BroadcastFaction("~y~[MEDIC] ~w~" + player.Name + " hat den Reviveauftrag von " + medicName + " angenommen.", new List() { 2 }); - target.SendNotification("~w~Sanitäter~g~ " + player.Name + "~w~ hat dein Auftrag angenommen."); + ReviveTasks[index].MedicName = victimName; + ChatService.BroadcastFaction("~y~[MEDIC] ~w~" + player.Name + " hat den Reviveauftrag von " + victimName + " angenommen.", new List() { 2 }); + target.SendNotification("~w~Sanitäter~g~ " + player.Name + "~w~ eilt zur Rettung."); break; case 1: - HealTasks[index].MedicName = medicName; - ChatService.BroadcastFaction("~y~[MEDIC] ~w~" + player.Name + " hat den Healauftrag von " + medicName + " angenommen.", new List() { 2 }); - target.SendNotification("~w~Sanitäter~g~ " + player.Name + "~w~ hat dein Auftrag angenommen."); + HealTasks[index].MedicName = victimName; + ChatService.BroadcastFaction("~y~[MEDIC] ~w~" + player.Name + " hat den Healauftrag von " + victimName + " angenommen.", new List() { 2 }); + target.SendNotification("~w~Sanitäter~g~ " + player.Name + "~w~ hat deinen Auftrag angenommen."); break; case 2: - FireTasks[index].MedicName = medicName; + FireTasks[index].MedicName = victimName; break; } } [RemoteEvent("delHealTask")] - public void delHealTask(Player player) + public static void delHealTask(Player player) { MedicTask task = HealTasks.FirstOrDefault(t => t.Victim == player.Name); RemoveTaskFromList(task); @@ -123,27 +123,19 @@ namespace ReallifeGamemode.Server.Factions.Medic } [RemoteEvent("delReviveTask")] - public static void delReviveTasks(Player player) + public static void delReviveTask(Player player) { MedicTask task = ReviveTasks.FirstOrDefault(t => t.Victim == player.Name); RemoveTaskFromList(task); } - public static void delHealTasks(Player player) - { - MedicTask task = HealTasks.FirstOrDefault(t => t.Victim == player.Name); - RemoveTaskFromList(task); - player.SetData("healauftrag", false); - } - [RemoteEvent("RemoveMedicCheckpoint")] public void RemoveMedicCheckpoint(Player player) { MedicTask task = ReviveTasks.FirstOrDefault(t => t.Victim == player.Name); var medic = PlayerService.GetPlayerByNameOrId(task.MedicName); medic.TriggerEvent("checkPointTimeout"); - medic.SendNotification("Der Auftrag wurde abgebrochen da du nicht innerhalb der vogegebenen Zeit am Einsatzort warst!"); - + medic.SendNotification("Der Auftrag wurde abgebrochen da du nicht innerhalb der Zeit am Einsatzort warst!"); } [RemoteEvent("CutMedicEarnings")] public void CutMedicEarnings(Player player) @@ -157,9 +149,8 @@ namespace ReallifeGamemode.Server.Factions.Medic { using var dbContext = new DatabaseContext(); dbContext.Factions.Include(f => f.BankAccount).Where(f => f.Id == 2).First().BankAccount.Balance += Medic.ReviveIncome / 2; - player.SendNotification($"Du hast den Einsatzort erreicht und ~g~{Medic.ReviveIncome / 2}$ ~s~für die Fraktion verdient, da der Spieler bereits aus dem Krankenhaus entlassen wurde."); + player.SendNotification($"Du hast den Einsatzort erreicht und ~g~{Medic.ReviveIncome / 2}$ ~s~für die Fraktion verdient."); dbContext.SaveChanges(); } - } }