/*** @overview Life of German - Wanted (Wanted.cs) @author kookroach @copyright (c) 2008 - 2019 Life of German */ using System.Collections.Generic; using GTANetworkAPI; using ReallifeGamemode.Database.Entities; using ReallifeGamemode.Database.Models; using ReallifeGamemode.Server.Extensions; using ReallifeGamemode.Server.Services; namespace ReallifeGamemode.Server.Wanted { public class WantedEscapeTimer { private const int WantedEscapeTime = 300000; 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(Player client) { User user = client.GetUser(); if (user.FactionId == 1 || user.FactionId == 3) return; waTimer[user.Id] = WantedEscapeTime; } public static void Timer_Elapsed() { using var dbContext = new DatabaseContext(); foreach (var player in NAPI.Pools.GetAllPlayers()) { User user = player.GetUser(dbContext); if (user != null && user.Wanteds > 0) { if (!waTimer.ContainsKey(user.Id)) ResetWantedTimeToElapse(player); bool isNearCop = false; foreach (var playerCop in NAPI.Pools.GetAllPlayers()) { if (!playerCop.IsLoggedIn()) continue; 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.ContainsKey(user.Id)) waTimer[user.Id] = 300000; if (waTimer[user.Id] <= 0) { ResetWantedTimeToElapse(player); player.SendChatMessage("~y~Du hast erfolgreich einen Wanted abgetaucht."); user.Wanteds -= 1; if (user.Wanteds == 0) { ChatService.HQMessage(player.Name + " konnte solange abtauchen, sodass er nicht mehr gesucht wird."); user.SetBlipAndNametagColor(); } dbContext.SaveChanges(); waTimer[user.Id] = WantedEscapeTime; } else if (!isNearCop) waTimer[user.Id] -= 2500; } } } } }