/*** @overview Life of German - Wanted (Wanted.cs) @author kookroach @copyright (c) 2008 - 2019 Life of German */ using System; using System.Collections.Generic; using System.Text; using System.Threading; using GTANetworkAPI; using ReallifeGamemode.Database.Entities; using ReallifeGamemode.Server.Extensions; using ReallifeGamemode.Database.Models; using ReallifeGamemode.Server.Services; namespace ReallifeGamemode.Server.Wanted { public class WantedEscapeTimer { public static Dictionary waTimer { get; set; } = new Dictionary(); //zeit in ms public static void WantedTimer() { System.Timers.Timer timer = new System.Timers.Timer(2500); timer.Start(); timer.Elapsed += Timer_Elapsed; } public static void ResetWantedTimeToElapse(Client client) { User user = client.GetUser(); if (user.FactionId == 1 || user.FactionId == 3) return; waTimer[user.Id] = 300000; } private static void Timer_Elapsed(object sender, System.Timers.ElapsedEventArgs e) { foreach (var player in NAPI.Pools.GetAllPlayers()) { User user = player.GetUser(); if (user != null && user.Wanteds > 0) { if (!waTimer.ContainsKey(user.Id)) ResetWantedTimeToElapse(player); bool isNearCop = false; foreach (var playerCop in NAPI.Pools.GetAllPlayers()) { User cop = playerCop.GetUser(); if (cop != null && (cop.FactionId == 1 || cop.FactionId == 3)) { if (cop.GetData("duty") && playerCop.Position.DistanceTo2D(player.Position) <= 500) { //Schriftzug 'abgetaucht' zerstören :( isNearCop = true; break; } //Hier abgetaucht schriftzug einfügen :) } } if (waTimer[user.Id] <= 0) { ResetWantedTimeToElapse(player); using (var dbContext = new DatabaseContext()) { player.GetUser(dbContext).Wanteds -= 1; if (player.GetUser(dbContext).Wanteds == 0) { switch (player.GetUser(dbContext).FactionId) { case null: player.SetSharedData("blipColor", 0); break; case 8: player.SetSharedData("blipColor", 83); break; case 7: player.SetSharedData("blipColor", 52); break; case 4: player.SetSharedData("blipColor", 5); break; } } dbContext.SaveChanges(); } } if (!isNearCop) waTimer[user.Id] -= 2500; } } } } }