Fix Medic
This commit is contained in:
@@ -24,6 +24,7 @@ namespace ReallifeGamemode.Server.Factions.Medic
|
||||
public static List<MedicTask> FireTasks = new List<MedicTask>();
|
||||
public static int ReviveIncome = 100;
|
||||
public static int dutyMedics = 0;
|
||||
public static long reviveTaskTime = 120;
|
||||
|
||||
public static void AddTaskToList(MedicTask task)
|
||||
{
|
||||
@@ -71,6 +72,15 @@ namespace ReallifeGamemode.Server.Factions.Medic
|
||||
}
|
||||
}
|
||||
|
||||
public static void UpdateTaskTimeLeft()
|
||||
{
|
||||
DateTime actualTime = DateTime.Now;
|
||||
foreach(var task in ReviveTasks)
|
||||
{
|
||||
task.TimeLeft = ((DateTimeOffset)task.Time).ToUnixTimeSeconds() - ((DateTimeOffset)actualTime).ToUnixTimeSeconds() - reviveTaskTime;
|
||||
}
|
||||
}
|
||||
|
||||
[RemoteEvent("loadMedicTasks")]
|
||||
public void LoadMedicTasks(Player player, int type)
|
||||
{
|
||||
@@ -161,11 +171,13 @@ namespace ReallifeGamemode.Server.Factions.Medic
|
||||
[RemoteEvent("PayCutMedicEarnings")]
|
||||
public void PayCutMedicEarnings(Player player)
|
||||
{
|
||||
using var dbContext = new DatabaseContext();
|
||||
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.");
|
||||
Medic.delReviveTaskMedic(player);
|
||||
dbContext.SaveChanges();
|
||||
}
|
||||
}
|
||||
|
||||
[RemoteEvent("MedicTaskTimeout")]
|
||||
@@ -174,6 +186,17 @@ namespace ReallifeGamemode.Server.Factions.Medic
|
||||
Medic.delReviveTaskMedic(player);
|
||||
}
|
||||
|
||||
[RemoteEvent("getTaskTimeLeft")]
|
||||
public void GetTaskTimeLeft(Player player, string victimName)
|
||||
{
|
||||
using var dbContext = new DatabaseContext();
|
||||
{
|
||||
var activeTaskTime = ReviveTasks.FirstOrDefault(t => t.MedicName == player.Name && t.Victim == victimName).TimeLeft;
|
||||
|
||||
player.TriggerEvent("setTaskTimeLeft", activeTaskTime);
|
||||
}
|
||||
}
|
||||
|
||||
public static void UpdateDutyMedics(int modifier)
|
||||
{
|
||||
dutyMedics = dutyMedics + modifier;
|
||||
|
||||
@@ -18,6 +18,7 @@ namespace ReallifeGamemode.Server.Factions.Medic
|
||||
public string Description { get; set; }
|
||||
public string Caller { get; set; }
|
||||
public DateTime Time { get; set; }
|
||||
public long TimeLeft { get; set; }
|
||||
public string MedicName { get; set; }
|
||||
}
|
||||
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
using System.Timers;
|
||||
using GTANetworkAPI;
|
||||
using ReallifeGamemode.Server.Factions.Medic;
|
||||
using ReallifeGamemode.Server.Finance;
|
||||
using ReallifeGamemode.Server.Job;
|
||||
using ReallifeGamemode.Server.Managers;
|
||||
@@ -11,6 +12,7 @@ namespace ReallifeGamemode.Server.Util
|
||||
public class ThreadTimers
|
||||
{
|
||||
private static Timer timer500 = new Timer(500); //0.5 seconds timer
|
||||
private static Timer timer1000 = new Timer(1000); //1 seconds timer
|
||||
private static Timer timer2500 = new Timer(2500); //2.5 seconds timer
|
||||
private static Timer timer10000 = new Timer(10000); // 10 second timer
|
||||
private static Timer timer60000 = new Timer(60000); //60 seconds timer
|
||||
@@ -39,6 +41,14 @@ namespace ReallifeGamemode.Server.Util
|
||||
});
|
||||
}
|
||||
|
||||
private static void Timer1000_Elapsed(object sender, ElapsedEventArgs e)
|
||||
{
|
||||
NAPI.Task.Run(() =>
|
||||
{
|
||||
Medic.UpdateTaskTimeLeft();
|
||||
});
|
||||
}
|
||||
|
||||
private static void Timer60000_Elapsed(object sender, ElapsedEventArgs e)
|
||||
{
|
||||
NAPI.Task.Run(() =>
|
||||
|
||||
Reference in New Issue
Block a user