diff --git a/ReallifeGamemode.Client/Gui/deathscreen.ts b/ReallifeGamemode.Client/Gui/deathscreen.ts
index 58045ef2..57537db8 100644
--- a/ReallifeGamemode.Client/Gui/deathscreen.ts
+++ b/ReallifeGamemode.Client/Gui/deathscreen.ts
@@ -19,6 +19,7 @@ export default function deathScreen() {
var deathDate: Date;
const maxDeathTime = 30;
+ const medicJobTime = maxDeathTime * 2;
mp.game.gameplay.setFadeOutAfterDeath(false);
@@ -104,6 +105,12 @@ export default function deathScreen() {
} else {
mp.events.call("respawnDeathPlayer");
+ mp.events.callRemote("CutMedicEarnings");
+ }
+ } else {
+ if (deathSeconds > medicJobTime) {
+ mp.events.callRemote("MedicTaskTimeout");
+ mp.events.callRemote("RemoveMedicCheckpoint");
}
}
});
diff --git a/ReallifeGamemode.Client/Interaction/factioninteraction.ts b/ReallifeGamemode.Client/Interaction/factioninteraction.ts
index ce529d9c..cf8db984 100644
--- a/ReallifeGamemode.Client/Interaction/factioninteraction.ts
+++ b/ReallifeGamemode.Client/Interaction/factioninteraction.ts
@@ -25,6 +25,7 @@ export default function factionInteraction(globalData: IGlobalData) {
var ambulanceImagePos;
var rangeLeft;
var sortText;
+ var deadRespawned = false;
var ticketName: string;
var pointsName: string;
@@ -462,6 +463,22 @@ export default function factionInteraction(globalData: IGlobalData) {
function getDistance2(index) {
return mp.game.gameplay.getDistanceBetweenCoords(player.position.x, player.position.y, player.position.z, newTasks[index].Position.x, newTasks[index].Position.y, newTasks[index].Position.z, true).toFixed(2);
}
+ mp.events.add("checkPointTimeout", () => {
+ activeTask = false;
+ activeCheckpoint.destroy();
+ });
+ mp.events.add("cutMedicEarnings", () => {
+ deadRespawned = true;
+ });
+
+ mp.events.add('playerEnterColshape', (activeCheckpoint) => {
+ if (deadRespawned == true) {
+ activeTask = false;
+ activeCheckpoint.destroy();
+ mp.events.callRemote("delReviveTask");
+ mp.events.callRemote("payCutMedicEarnings");
+ }
+ });
mp.events.add('render', () => {
if (activeTask) {
@@ -486,7 +503,6 @@ export default function factionInteraction(globalData: IGlobalData) {
} else {
activeTask = false;
activeCheckpoint.destroy();
- mp.events.callRemote("delHealTask");
}
}
});
diff --git a/ReallifeGamemode.DataService/ReallifeGamemode - Backup.DataService.csproj b/ReallifeGamemode.DataService/ReallifeGamemode - Backup.DataService.csproj
new file mode 100644
index 00000000..cf7aeab3
--- /dev/null
+++ b/ReallifeGamemode.DataService/ReallifeGamemode - Backup.DataService.csproj
@@ -0,0 +1,39 @@
+
+
+
+ netcoreapp3.1
+ true
+ true
+ true
+ true
+ AnyCPU;x64
+ 8.0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ReallifeGamemode.Database/ReallifeGamemode - Backup.Database.csproj b/ReallifeGamemode.Database/ReallifeGamemode - Backup.Database.csproj
new file mode 100644
index 00000000..54ccec63
--- /dev/null
+++ b/ReallifeGamemode.Database/ReallifeGamemode - Backup.Database.csproj
@@ -0,0 +1,34 @@
+
+
+
+ netstandard2.1
+ AnyCPU;x64
+ 8.0
+
+
+
+
+
+ all
+ runtime; build; native; contentfiles; analyzers; buildtransitive
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ..\Import\Bootstrapper.dll
+
+
+ ..\Import\Newtonsoft.Json.dll
+
+
+
diff --git a/ReallifeGamemode.Server.Common/ReallifeGamemode - Backup.Server.Common.csproj b/ReallifeGamemode.Server.Common/ReallifeGamemode - Backup.Server.Common.csproj
new file mode 100644
index 00000000..b7ed3b62
--- /dev/null
+++ b/ReallifeGamemode.Server.Common/ReallifeGamemode - Backup.Server.Common.csproj
@@ -0,0 +1,22 @@
+
+
+
+ netstandard2.1
+ AnyCPU;x64
+
+
+
+
+
+
+
+
+
+
+
+
+ ..\Import\Newtonsoft.Json.dll
+
+
+
+
diff --git a/ReallifeGamemode.Server.Core.API/ReallifeGamemode - Backup.Server.Core.API.csproj b/ReallifeGamemode.Server.Core.API/ReallifeGamemode - Backup.Server.Core.API.csproj
new file mode 100644
index 00000000..46036f5a
--- /dev/null
+++ b/ReallifeGamemode.Server.Core.API/ReallifeGamemode - Backup.Server.Core.API.csproj
@@ -0,0 +1,13 @@
+
+
+
+ netstandard2.1
+ AnyCPU;x64
+
+
+
+
+
+
+
+
diff --git a/ReallifeGamemode.Server.Core.Events/ReallifeGamemode - Backup.Server.Core.Events.csproj b/ReallifeGamemode.Server.Core.Events/ReallifeGamemode - Backup.Server.Core.Events.csproj
new file mode 100644
index 00000000..08a8b3d5
--- /dev/null
+++ b/ReallifeGamemode.Server.Core.Events/ReallifeGamemode - Backup.Server.Core.Events.csproj
@@ -0,0 +1,18 @@
+
+
+
+ netstandard2.1
+ AnyCPU;x64
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ReallifeGamemode.Server.Core.Extensions/ReallifeGamemode - Backup.Server.Core.Extensions.csproj b/ReallifeGamemode.Server.Core.Extensions/ReallifeGamemode - Backup.Server.Core.Extensions.csproj
new file mode 100644
index 00000000..3908706e
--- /dev/null
+++ b/ReallifeGamemode.Server.Core.Extensions/ReallifeGamemode - Backup.Server.Core.Extensions.csproj
@@ -0,0 +1,14 @@
+
+
+
+ netstandard2.1
+ AnyCPU;x64
+
+
+
+
+
+
+
+
+
diff --git a/ReallifeGamemode.Server.Core.RageMP/ReallifeGamemode - Backup.Server.Core.RageMP.csproj b/ReallifeGamemode.Server.Core.RageMP/ReallifeGamemode - Backup.Server.Core.RageMP.csproj
new file mode 100644
index 00000000..57514be0
--- /dev/null
+++ b/ReallifeGamemode.Server.Core.RageMP/ReallifeGamemode - Backup.Server.Core.RageMP.csproj
@@ -0,0 +1,27 @@
+
+
+
+ netstandard2.1
+ AnyCPU;x64
+
+
+
+ x64
+
+
+
+ x64
+
+
+
+
+
+
+
+
+
+ ..\Import\Bootstrapper.dll
+
+
+
+
diff --git a/ReallifeGamemode.Server.Log/ReallifeGamemode - Backup.Server.Log.csproj b/ReallifeGamemode.Server.Log/ReallifeGamemode - Backup.Server.Log.csproj
new file mode 100644
index 00000000..e02b8de4
--- /dev/null
+++ b/ReallifeGamemode.Server.Log/ReallifeGamemode - Backup.Server.Log.csproj
@@ -0,0 +1,14 @@
+
+
+
+ netstandard2.1
+ AnyCPU;x64
+
+
+
+
+
+
+
+
+
diff --git a/ReallifeGamemode.Server.Types/ReallifeGamemode - Backup.Server.Types.csproj b/ReallifeGamemode.Server.Types/ReallifeGamemode - Backup.Server.Types.csproj
new file mode 100644
index 00000000..7eab3e0e
--- /dev/null
+++ b/ReallifeGamemode.Server.Types/ReallifeGamemode - Backup.Server.Types.csproj
@@ -0,0 +1,8 @@
+
+
+
+ netstandard2.1
+ AnyCPU;x64
+
+
+
diff --git a/ReallifeGamemode.Server/Commands/FactionCommands.cs b/ReallifeGamemode.Server/Commands/FactionCommands.cs
index 11179a8a..42cbf167 100644
--- a/ReallifeGamemode.Server/Commands/FactionCommands.cs
+++ b/ReallifeGamemode.Server/Commands/FactionCommands.cs
@@ -284,15 +284,15 @@ namespace ReallifeGamemode.Server.Commands
deadPlayerUser.BankAccount.Balance -= bankMoney;
}
- dbContext.Factions.Include(f => f.BankAccount).Where(f => f.Id == 2).First().BankAccount.Balance += 100;
-
+ dbContext.Factions.Include(f => f.BankAccount).Where(f => f.Id == 2).First().BankAccount.Balance += Medic.ReviveIncome;
+
dbContext.SaveChanges();
player.PlayAnimation("amb@medic@standing@kneel@enter", "enter", 0);
deadPlayer.TriggerEvent("onPlayerRevived");
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.");
+ player.SendNotification($"Du hast ~y~{deadPlayer.Name}~s~ wiederbelebt und ~g~{Medic.ReviveIncome}$ ~s~für die Fraktion verdient.");
deadPlayer.SetData("isDead", false);
using (var dbContext1 = new DatabaseContext())
{
diff --git a/ReallifeGamemode.Server/Events/Death.cs b/ReallifeGamemode.Server/Events/Death.cs
index 1b4063f5..5bcab3fc 100644
--- a/ReallifeGamemode.Server/Events/Death.cs
+++ b/ReallifeGamemode.Server/Events/Death.cs
@@ -232,8 +232,13 @@ namespace ReallifeGamemode.Server.Events
dbContext.SaveChanges();
}
player.RemoveAllWeapons();
- Medic.delReviveTasks(player);
+ //Medic.delReviveTasks(player);
NAPI.Player.SpawnPlayer(player, new Vector3(-495.45, -336.33, 34.5), -98.36f);
}
+ [RemoteEvent("MedicTaskTimeout")]
+ public void RemoveMedicTask(Player player)
+ {
+ Medic.delReviveTasks(player);
+ }
}
}
diff --git a/ReallifeGamemode.Server/Factions/Medic/Medic.cs b/ReallifeGamemode.Server/Factions/Medic/Medic.cs
index 3d28e22f..02b06248 100644
--- a/ReallifeGamemode.Server/Factions/Medic/Medic.cs
+++ b/ReallifeGamemode.Server/Factions/Medic/Medic.cs
@@ -4,6 +4,9 @@ using Newtonsoft.Json;
using ReallifeGamemode.Server.Services;
using System.Linq;
using ReallifeGamemode.Services;
+using ReallifeGamemode.Database.Entities;
+using ReallifeGamemode.Database.Models;
+using Microsoft.EntityFrameworkCore;
/**
* @overview Life of German Reallife - Server Factions Medic Medic.cs
@@ -18,6 +21,7 @@ namespace ReallifeGamemode.Server.Factions.Medic
public static List ReviveTasks = new List();
public static List HealTasks = new List();
public static List FireTasks = new List();
+ public static int ReviveIncome = 500;
public static void AddTaskToList(MedicTask task)
{
@@ -119,7 +123,7 @@ namespace ReallifeGamemode.Server.Factions.Medic
}
[RemoteEvent("delReviveTask")]
- public void delReviveTask(Player player)
+ public static void delReviveTasks(Player player)
{
MedicTask task = ReviveTasks.FirstOrDefault(t => t.Victim == player.Name);
RemoveTaskFromList(task);
@@ -131,11 +135,31 @@ namespace ReallifeGamemode.Server.Factions.Medic
RemoveTaskFromList(task);
player.SetData("healauftrag", false);
}
- public static void delReviveTasks(Player player)
+
+ [RemoteEvent("RemoveMedicCheckpoint")]
+ public void RemoveMedicCheckpoint(Player player)
{
MedicTask task = ReviveTasks.FirstOrDefault(t => t.Victim == player.Name);
- RemoveTaskFromList(task);
+ var medic = PlayerService.GetPlayerByNameOrId(task.MedicName);
+ medic.TriggerEvent("checkPointTimeout");
+ medic.SendNotification("Der Auftrag wurde abgebrochen da du nicht innerhalb der vogegebenen Zeit am Einsatzort warst!");
+
+ }
+ [RemoteEvent("CutMedicEarnings")]
+ public void CutMedicEarnings(Player player)
+ {
+ MedicTask task = ReviveTasks.FirstOrDefault(t => t.Victim == player.Name);
+ var medic = PlayerService.GetPlayerByNameOrId(task.MedicName);
+ medic.TriggerEvent("cutMedicEarnings");
+ }
+ [RemoteEvent("payCutMedicEarnings")]
+ public void PayCutMedicEarnings(Player player)
+ {
+ using var dbContext = new DatabaseContext();
+ dbContext.Factions.Include(f => f.BankAccount).Where(f => f.Id == 2).First().BankAccount.Balance += Medic.ReviveIncome / 2;
+ player.SendNotification($"Du hast den Einsatzort erreicht und ~g~{Medic.ReviveIncome / 2}$ ~s~für die Fraktion verdient, da der Spieler bereits aus dem Krankenhaus entlassen wurde.");
+ dbContext.SaveChanges();
}
- }
+ }
}