Merge branch 'develop' of ssh://development.life-of-german.org:451/log-gtav/reallife-gamemode into develop

This commit is contained in:
2021-04-05 18:42:27 +02:00
6 changed files with 48 additions and 25 deletions

View File

@@ -113,7 +113,7 @@ export default function keys(globalData: IGlobalData) {
//N //Motor Starten //N //Motor Starten
mp.keys.bind(0x4E, false, function () { mp.keys.bind(0x4E, false, function () {
if (!globalData.InChat) { if (!globalData.InChat) {
mp.events.callRemote("keyPress:N", player.vehicle.getSpeed()); mp.events.callRemote("keyPress:N");
} }
}); });

View File

@@ -309,6 +309,12 @@ namespace ReallifeGamemode.Server.Commands
ChatService.ErrorMessage(player, "Es wurde kein toter Spieler gefunden"); ChatService.ErrorMessage(player, "Es wurde kein toter Spieler gefunden");
return; return;
} }
if (deadPlayer.HasData("reviveSperre"))
{
ChatService.ErrorMessage(player, "Der Spieler hat eine Revivesperre");
return;
}
using (var dbContext = new DatabaseContext()) using (var dbContext = new DatabaseContext())
{ {
var deadPlayerUser = deadPlayer.GetUser(dbContext); var deadPlayerUser = deadPlayer.GetUser(dbContext);

View File

@@ -32,6 +32,7 @@ namespace ReallifeGamemode.Server.Events
player.Kick(); player.Kick();
return; return;
} }
player.SetData("isDead", true); player.SetData("isDead", true);
@@ -42,9 +43,6 @@ namespace ReallifeGamemode.Server.Events
userDeath.SaveChanges(); userDeath.SaveChanges();
} }
//TODO: Zum Full Release entfernen //TODO: Zum Full Release entfernen
if (player.HasData("togdeath")) { if (player.HasData("togdeath")) {
ChatService.SendMessage(player, "Du bist durch " + (killer?.Name ?? "Niemanden") + " gestorben: " + reason.ToString()); ChatService.SendMessage(player, "Du bist durch " + (killer?.Name ?? "Niemanden") + " gestorben: " + reason.ToString());
@@ -91,6 +89,8 @@ namespace ReallifeGamemode.Server.Events
User user = player.GetUser(); User user = player.GetUser();
if (user.JailTime <= 0) if (user.JailTime <= 0)
{
if (!player.HasData("reviveSperre"))
{ {
//MEDIC AUFTRAG //MEDIC AUFTRAG
MedicTask reviveTask = new MedicTask() MedicTask reviveTask = new MedicTask()
@@ -107,6 +107,9 @@ namespace ReallifeGamemode.Server.Events
Medic.AddTaskToList(reviveTask); Medic.AddTaskToList(reviveTask);
Medic.delHealTask(player); Medic.delHealTask(player);
ChatService.BroadcastFaction("~y~[MEDIC] ~w~" + player.Name + " ist soeben verstorben.", new List<int>() { 2 }); ChatService.BroadcastFaction("~y~[MEDIC] ~w~" + player.Name + " ist soeben verstorben.", new List<int>() { 2 });
}
if (player.GetUser().IsAdmin(AdminLevel.ADMIN) == true) if (player.GetUser().IsAdmin(AdminLevel.ADMIN) == true)
{ {

View File

@@ -617,8 +617,9 @@ namespace ReallifeGamemode.Server.Events
if (!player.IsLoggedIn()) return; if (!player.IsLoggedIn()) return;
if (player.GetData<bool>("healDecision") == true) if (player.GetData<bool>("healDecision") == true)
{ {
player.ResetData("healDecision");
Medic.MakeHealDecision(player, true); Medic.MakeHealDecision(player, true);
player.SetData<bool>("healDecision", false); return;
} }
User u = player.GetUser(); User u = player.GetUser();
@@ -760,19 +761,19 @@ namespace ReallifeGamemode.Server.Events
} }
[RemoteEvent("keyPress:N")] [RemoteEvent("keyPress:N")]
public void KeyPressN(Player player, int vSpeed) public void KeyPressN(Player player)
{ {
if (!player.IsLoggedIn()) return; if (!player.IsLoggedIn()) return;
if (player.GetData<bool>("healDecision") == true) if (player.GetData<bool>("healDecision") == true)
{ {
player.ResetData("healDecision");
Medic.MakeHealDecision(player, false); Medic.MakeHealDecision(player, false);
player.SetData<bool>("healDecision", false); return;
} }
if (!player.IsInVehicle) return; if (!player.IsInVehicle) return;
if (player.VehicleSeat != 0) return; if (player.VehicleSeat != 0) return;
if (vSpeed > 5) return;
GTANetworkAPI.Vehicle v = player.Vehicle; GTANetworkAPI.Vehicle v = player.Vehicle;

View File

@@ -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) public static void MakeHealDecision(Player target, bool decision)
{ {
var activeDecision = HealDecisions.FirstOrDefault(d => d.dTarget == target); 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.dMedic.SendNotification(activeDecision.dTarget.Name + " hat den Heal ~r~abgelehnt",false);
activeDecision.dTarget.SendNotification("Du hast den Heal ~r~abgelehnt", false); activeDecision.dTarget.SendNotification("Du hast den Heal ~r~abgelehnt", false);
return;
} }
else else
{ {

View File

@@ -49,6 +49,7 @@ namespace ReallifeGamemode.Server.Util
NAPI.Task.Run(() => NAPI.Task.Run(() =>
{ {
Medic.UpdateTaskTimeLeft(); Medic.UpdateTaskTimeLeft();
Medic.CheckHealDecisionDistanc();
}); });
} }