diff --git a/ReallifeGamemode.Server/Commands/FactionCommands.cs b/ReallifeGamemode.Server/Commands/FactionCommands.cs index 437b8dae..d5a42793 100644 --- a/ReallifeGamemode.Server/Commands/FactionCommands.cs +++ b/ReallifeGamemode.Server/Commands/FactionCommands.cs @@ -331,6 +331,7 @@ namespace ReallifeGamemode.Server.Commands deadPlayer.SendNotification($"Du wurdest von ~y~{player.Name}~s~ für ~g~{100.ToMoneyString()} ~s~wiederbelebt."); player.SendNotification($"Du hast ~y~{deadPlayer.Name}~s~ wiederbelebt und ~g~{Medic.ReviveIncome}$ ~s~für die Fraktion verdient."); deadPlayer.SetData("isDead", false); + deadPlayer.SetData("reviveSperre", 5); dbContext.Factions.Include(f => f.BankAccount).Where(f => f.Id == 2).First().BankAccount.Balance += Medic.ReviveIncome; diff --git a/ReallifeGamemode.Server/Events/Key.cs b/ReallifeGamemode.Server/Events/Key.cs index 2591ed2a..9781dbaa 100644 --- a/ReallifeGamemode.Server/Events/Key.cs +++ b/ReallifeGamemode.Server/Events/Key.cs @@ -616,9 +616,9 @@ namespace ReallifeGamemode.Server.Events { if (!player.IsLoggedIn()) return; if (player.GetData("healDecision") == true) - { - player.SetData("healDecision", false); + { Medic.MakeHealDecision(player, true); + player.SetData("healDecision", false); } User u = player.GetUser(); @@ -765,9 +765,9 @@ namespace ReallifeGamemode.Server.Events if (!player.IsLoggedIn()) return; if (player.GetData("healDecision") == true) - { - player.SetData("healDecision", false); + { Medic.MakeHealDecision(player, false); + player.SetData("healDecision", false); } if (!player.IsInVehicle) return; diff --git a/ReallifeGamemode.Server/Factions/Medic/Medic.cs b/ReallifeGamemode.Server/Factions/Medic/Medic.cs index c296676f..73639b61 100644 --- a/ReallifeGamemode.Server/Factions/Medic/Medic.cs +++ b/ReallifeGamemode.Server/Factions/Medic/Medic.cs @@ -81,17 +81,37 @@ namespace ReallifeGamemode.Server.Factions.Medic } } + public static void UpdateReviveSperre() + { + var allRevivedPlayers = NAPI.Pools.GetAllPlayers().Where(c => c.HasData("reviveSperre")); + foreach(var player in allRevivedPlayers) + { + var timeLeft = player.GetData("reviveSperre"); + + if (timeLeft > 0) + { + player.SetData("reviveSperre", timeLeft - 1); + } + else + { + player.ResetData("reviveSperre"); + } + } + } + public static void MakeHealDecision(Player target, bool decision) { var activeDecision = HealDecisions.FirstOrDefault(d => d.dTarget == target); if(decision == false) { activeDecision.dMedic.SendNotification(activeDecision.dTarget.Name + " hat den Heal ~r~abgelehnt",false); + activeDecision.dTarget.SendNotification("Du hast den Heal ~r~abgelehnt", false); return; } else { activeDecision.dMedic.SendNotification(activeDecision.dTarget.Name + " hat den Heal ~g~akzeptiert", false); + activeDecision.dTarget.SendNotification("Du hast den Heal ~g~akzeptiert", false); using var dbContext = new DatabaseContext(); { User targetUser = target.GetUser(dbContext); diff --git a/ReallifeGamemode.Server/Util/ThreadTimers.cs b/ReallifeGamemode.Server/Util/ThreadTimers.cs index 92b16424..0f96f89a 100644 --- a/ReallifeGamemode.Server/Util/ThreadTimers.cs +++ b/ReallifeGamemode.Server/Util/ThreadTimers.cs @@ -59,6 +59,7 @@ namespace ReallifeGamemode.Server.Util Jail.JailOut_Elapsed(); Economy.Timer_Elapsed(); WeaponDealManager.Timer_Elapsed(); + Medic.UpdateReviveSperre(); }); }