From 466ab4cc63f44dffa979803c4562909e2dbe51fc Mon Sep 17 00:00:00 2001 From: VegaZ Date: Fri, 5 Feb 2021 20:29:06 +0100 Subject: [PATCH] Fix Count Duty Medics --- .../Interaction/factioninteraction.ts | 9 +++++---- ReallifeGamemode.Server/Events/Death.cs | 5 ----- ReallifeGamemode.Server/Events/Key.cs | 12 ++---------- ReallifeGamemode.Server/Factions/Medic/Medic.cs | 13 +++++++++++++ .../Managers/InteractionManager.cs | 2 +- ReallifeGamemode.Server/Util/FactionHelper.cs | 11 ++--------- 6 files changed, 23 insertions(+), 29 deletions(-) diff --git a/ReallifeGamemode.Client/Interaction/factioninteraction.ts b/ReallifeGamemode.Client/Interaction/factioninteraction.ts index 45bb1ece..e1620a70 100644 --- a/ReallifeGamemode.Client/Interaction/factioninteraction.ts +++ b/ReallifeGamemode.Client/Interaction/factioninteraction.ts @@ -26,6 +26,7 @@ export default function factionInteraction(globalData: IGlobalData) { var rangeLeft; var sortText; var deadRespawned = false; + var isRevived = false; var ticketName: string; var pointsName: string; @@ -482,6 +483,9 @@ export default function factionInteraction(globalData: IGlobalData) { mp.events.callRemote("delReviveTask"); mp.events.callRemote("payCutMedicEarnings"); deadRespawned = false; + } else { + activeTask = false; + activeCheckpoint.destroy(); } }); @@ -504,10 +508,7 @@ export default function factionInteraction(globalData: IGlobalData) { mp.game.graphics.drawSprite("medicimages", "ambulance", ambulanceImagePos + 0.01, 0.915, 0.04, 0.07, 0, 255, 255, 255, 255); } else { mp.game.graphics.drawSprite("medicimages", "running", ambulanceImagePos + 0.02, 0.915, 0.02, 0.035, 0, 255, 0, 0, 255); - } - } else { - activeTask = false; - activeCheckpoint.destroy(); + } } } }); diff --git a/ReallifeGamemode.Server/Events/Death.cs b/ReallifeGamemode.Server/Events/Death.cs index 71d393aa..81d497b8 100644 --- a/ReallifeGamemode.Server/Events/Death.cs +++ b/ReallifeGamemode.Server/Events/Death.cs @@ -235,10 +235,5 @@ namespace ReallifeGamemode.Server.Events 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.delReviveTask(player); - } } } diff --git a/ReallifeGamemode.Server/Events/Key.cs b/ReallifeGamemode.Server/Events/Key.cs index 64d09e40..8f567aa5 100644 --- a/ReallifeGamemode.Server/Events/Key.cs +++ b/ReallifeGamemode.Server/Events/Key.cs @@ -274,15 +274,7 @@ namespace ReallifeGamemode.Server.Events player.TriggerEvent("toggleDutyMode", true); if (player.GetUser().FactionId == 2) //Fire Department { - int medicCount = 0; - foreach (Player c in NAPI.Pools.GetAllPlayers()) - { - if ((c.GetUser()?.Faction?.Id ?? 0) == 2) - { - medicCount++; - } - } - NAPI.ClientEvent.TriggerClientEventForAll("updateDutyMedics", medicCount); + Medic.UpdateDutyMedics(1); } switch (factionId) { @@ -334,7 +326,7 @@ namespace ReallifeGamemode.Server.Events user.SetData("duty", false); player.SendNotification("Du bist nun ~r~außer Dienst."); player.TriggerEvent("toggleDutyMode", false); - NAPI.ClientEvent.TriggerClientEventForAll("updateDutyMedics", false); + Medic.UpdateDutyMedics(-1); player.SetSharedData("blipColor", 0); UpdateCharacterCloth.LoadCharacterDefaults(player); } diff --git a/ReallifeGamemode.Server/Factions/Medic/Medic.cs b/ReallifeGamemode.Server/Factions/Medic/Medic.cs index 80eefa0b..c0053043 100644 --- a/ReallifeGamemode.Server/Factions/Medic/Medic.cs +++ b/ReallifeGamemode.Server/Factions/Medic/Medic.cs @@ -22,6 +22,7 @@ namespace ReallifeGamemode.Server.Factions.Medic public static List HealTasks = new List(); public static List FireTasks = new List(); public static int ReviveIncome = 500; + public static int dutyMedics = 0; public static void AddTaskToList(MedicTask task) { @@ -152,5 +153,17 @@ namespace ReallifeGamemode.Server.Factions.Medic player.SendNotification($"Du hast den Einsatzort erreicht und ~g~{Medic.ReviveIncome / 2}$ ~s~für die Fraktion verdient."); dbContext.SaveChanges(); } + + [RemoteEvent("MedicTaskTimeout")] + public void RemoveMedicTask(Player player) + { + Medic.delReviveTask(player); + } + + public static void UpdateDutyMedics(int modifier) + { + dutyMedics = dutyMedics + modifier; + NAPI.ClientEvent.TriggerClientEventForAll("updateDutyMedics", dutyMedics); + } } } diff --git a/ReallifeGamemode.Server/Managers/InteractionManager.cs b/ReallifeGamemode.Server/Managers/InteractionManager.cs index de06111a..50be05ae 100644 --- a/ReallifeGamemode.Server/Managers/InteractionManager.cs +++ b/ReallifeGamemode.Server/Managers/InteractionManager.cs @@ -276,7 +276,7 @@ namespace ReallifeGamemode.Server.Managers { target.SetData("duty", false); target.TriggerEvent("toggleDutyMode", false); - NAPI.ClientEvent.TriggerClientEventForAll("updateDutyMedics", false); + Medic.UpdateDutyMedics(-1); target.SetSharedData("blipColor", 0); UpdateCharacterCloth.LoadCharacterDefaults(target); target.GetUser(dbContext).FactionRankId = null; diff --git a/ReallifeGamemode.Server/Util/FactionHelper.cs b/ReallifeGamemode.Server/Util/FactionHelper.cs index c1565cac..497488c9 100644 --- a/ReallifeGamemode.Server/Util/FactionHelper.cs +++ b/ReallifeGamemode.Server/Util/FactionHelper.cs @@ -4,6 +4,7 @@ using Microsoft.EntityFrameworkCore; using ReallifeGamemode.Database.Entities; using ReallifeGamemode.Database.Models; using ReallifeGamemode.Server.Extensions; +using ReallifeGamemode.Server.Factions.Medic; using ReallifeGamemode.Server.Managers; namespace ReallifeGamemode.Server.Util @@ -44,15 +45,7 @@ namespace ReallifeGamemode.Server.Util Events.UpdateCharacterCloth.LoadCharacterDefaults(player); player.TriggerEvent("toggleDutyMode", false); - int medicCount = 0; - foreach (Player c in NAPI.Pools.GetAllPlayers()) - { - if ((c.GetUser()?.Faction?.Id ?? 0) == 2) - { - medicCount++; - } - } - NAPI.ClientEvent.TriggerClientEventForAll("updateDutyMedics", medicCount); + Medic.UpdateDutyMedics(1); } } }