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
mp.keys.bind(0x4E, false, function () {
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");
return;
}
if (deadPlayer.HasData("reviveSperre"))
{
ChatService.ErrorMessage(player, "Der Spieler hat eine Revivesperre");
return;
}
using (var dbContext = new DatabaseContext())
{
var deadPlayerUser = deadPlayer.GetUser(dbContext);

View File

@@ -32,6 +32,7 @@ namespace ReallifeGamemode.Server.Events
player.Kick();
return;
}
player.SetData("isDead", true);
@@ -42,9 +43,6 @@ namespace ReallifeGamemode.Server.Events
userDeath.SaveChanges();
}
//TODO: Zum Full Release entfernen
if (player.HasData("togdeath")) {
ChatService.SendMessage(player, "Du bist durch " + (killer?.Name ?? "Niemanden") + " gestorben: " + reason.ToString());
@@ -92,21 +90,26 @@ namespace ReallifeGamemode.Server.Events
if (user.JailTime <= 0)
{
//MEDIC AUFTRAG
MedicTask reviveTask = new MedicTask()
if (!player.HasData("reviveSperre"))
{
Victim = player.Name,
Position = player.Position,
CauseOfDeath = reason.ToString(),
Caller = null,
Description = "Gestorben",
Time = DateTime.Now,
Type = MedicTaskType.REVIVE,
MedicName = "none"
};
Medic.AddTaskToList(reviveTask);
Medic.delHealTask(player);
ChatService.BroadcastFaction("~y~[MEDIC] ~w~" + player.Name + " ist soeben verstorben.", new List<int>() { 2 });
//MEDIC AUFTRAG
MedicTask reviveTask = new MedicTask()
{
Victim = player.Name,
Position = player.Position,
CauseOfDeath = reason.ToString(),
Caller = null,
Description = "Gestorben",
Time = DateTime.Now,
Type = MedicTaskType.REVIVE,
MedicName = "none"
};
Medic.AddTaskToList(reviveTask);
Medic.delHealTask(player);
ChatService.BroadcastFaction("~y~[MEDIC] ~w~" + player.Name + " ist soeben verstorben.", new List<int>() { 2 });
}
if (player.GetUser().IsAdmin(AdminLevel.ADMIN) == true)
{

View File

@@ -616,9 +616,10 @@ namespace ReallifeGamemode.Server.Events
{
if (!player.IsLoggedIn()) return;
if (player.GetData<bool>("healDecision") == true)
{
{
player.ResetData("healDecision");
Medic.MakeHealDecision(player, true);
player.SetData<bool>("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<bool>("healDecision") == true)
{
{
player.ResetData("healDecision");
Medic.MakeHealDecision(player, false);
player.SetData<bool>("healDecision", false);
return;
}
if (!player.IsInVehicle) return;
if (player.VehicleSeat != 0) return;
if (vSpeed > 5) return;
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)
{
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
{

View File

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