diff --git a/ReallifeGamemode.Client/Player/keys.ts b/ReallifeGamemode.Client/Player/keys.ts index f2b84b59..f4c11e13 100644 --- a/ReallifeGamemode.Client/Player/keys.ts +++ b/ReallifeGamemode.Client/Player/keys.ts @@ -113,7 +113,7 @@ export default function keys(globalData: IGlobalData) { //N //Motor Starten mp.keys.bind(0x4E, false, function () { if (!globalData.InChat) { - mp.events.callRemote("keyPress:N", player.vehicle.getSpeed()); + mp.events.callRemote("keyPress:N"); } }); diff --git a/ReallifeGamemode.Server/Events/Key.cs b/ReallifeGamemode.Server/Events/Key.cs index 9781dbaa..b03b7da6 100644 --- a/ReallifeGamemode.Server/Events/Key.cs +++ b/ReallifeGamemode.Server/Events/Key.cs @@ -616,9 +616,10 @@ namespace ReallifeGamemode.Server.Events { if (!player.IsLoggedIn()) return; if (player.GetData("healDecision") == true) - { + { + player.ResetData("healDecision"); Medic.MakeHealDecision(player, true); - player.SetData("healDecision", false); + return; } User u = player.GetUser(); @@ -760,19 +761,19 @@ namespace ReallifeGamemode.Server.Events } [RemoteEvent("keyPress:N")] - public void KeyPressN(Player player, int vSpeed) + public void KeyPressN(Player player) { if (!player.IsLoggedIn()) return; if (player.GetData("healDecision") == true) - { + { + player.ResetData("healDecision"); Medic.MakeHealDecision(player, false); - player.SetData("healDecision", false); + return; } if (!player.IsInVehicle) return; if (player.VehicleSeat != 0) return; - if (vSpeed > 5) return; GTANetworkAPI.Vehicle v = player.Vehicle; diff --git a/ReallifeGamemode.Server/Factions/Medic/Medic.cs b/ReallifeGamemode.Server/Factions/Medic/Medic.cs index 73639b61..f886a7e9 100644 --- a/ReallifeGamemode.Server/Factions/Medic/Medic.cs +++ b/ReallifeGamemode.Server/Factions/Medic/Medic.cs @@ -99,6 +99,19 @@ namespace ReallifeGamemode.Server.Factions.Medic } } + public static void CheckHealDecisionDistanc() + { + foreach(var healAuftrag in HealDecisions) + { + if (healAuftrag.dMedic.Position.DistanceTo(healAuftrag.dTarget.Position) >= 10) + { + healAuftrag.dMedic.SendNotification("~r~Die Heal-Anfrage wurde abgebrochen"); + healAuftrag.dTarget.SendNotification("~r~Die Heal-Anfrage wurde abgebrochen"); + healAuftrag.dTarget.ResetData("healDecision"); + } + } + } + public static void MakeHealDecision(Player target, bool decision) { var activeDecision = HealDecisions.FirstOrDefault(d => d.dTarget == target); @@ -106,7 +119,6 @@ namespace ReallifeGamemode.Server.Factions.Medic { activeDecision.dMedic.SendNotification(activeDecision.dTarget.Name + " hat den Heal ~r~abgelehnt",false); activeDecision.dTarget.SendNotification("Du hast den Heal ~r~abgelehnt", false); - return; } else { diff --git a/ReallifeGamemode.Server/Util/ThreadTimers.cs b/ReallifeGamemode.Server/Util/ThreadTimers.cs index 0f96f89a..9e5ff500 100644 --- a/ReallifeGamemode.Server/Util/ThreadTimers.cs +++ b/ReallifeGamemode.Server/Util/ThreadTimers.cs @@ -49,6 +49,7 @@ namespace ReallifeGamemode.Server.Util NAPI.Task.Run(() => { Medic.UpdateTaskTimeLeft(); + Medic.CheckHealDecisionDistanc(); }); }