Escape Wanteds done Client Side.
This commit is contained in:
@@ -1,6 +1,13 @@
|
||||
export default function playerBlips() {
|
||||
import { afkStatus } from '../Player/antiafk';
|
||||
import { getWantedCount } from './wanteds';
|
||||
|
||||
export default function playerBlips() {
|
||||
var playerBlipMap: Map<PlayerMp, BlipMp>;
|
||||
var ready = false;
|
||||
var escapeTimer = null;
|
||||
|
||||
const PD_BLIP = 38;
|
||||
const FIB_BLIP = 63;
|
||||
|
||||
setInterval(() => {
|
||||
if (!ready) return;
|
||||
@@ -43,8 +50,29 @@
|
||||
|
||||
pBlip.setColour(isNaN(color) ? 0 : color);
|
||||
pBlip.setPosition(player.position.x, player.position.y, player.position.z);
|
||||
|
||||
if ((color == PD_BLIP || color == FIB_BLIP || afkStatus)) {
|
||||
if (escapeTimer) {
|
||||
mp.events.call("SERVER:SetWantedFlash", false);
|
||||
clearInterval(escapeTimer);
|
||||
escapeTimer = null;
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
if (!escapeTimer && !afkStatus && getWantedCount() > 0) {
|
||||
mp.events.call("SERVER:SetWantedFlash", true);
|
||||
escapeTimer = setInterval(() => {
|
||||
if (getWantedCount() == 0) {
|
||||
clearInterval(escapeTimer);
|
||||
escapeTimer = null;
|
||||
return;
|
||||
}
|
||||
|
||||
mp.events.callRemote("CLIENT:EscapeWanted");
|
||||
}, 300000); //120000 -> 2 min , 300000 -> 5min
|
||||
}
|
||||
}
|
||||
});
|
||||
}, 50);
|
||||
|
||||
|
||||
@@ -1,13 +1,12 @@
|
||||
export default function antiAfk(globalData: IGlobalData) {
|
||||
export let afkStatus: boolean = false;
|
||||
|
||||
export default function antiAfk(globalData: IGlobalData) {
|
||||
let lastPosition: Vector3Mp = mp.players.local.position;
|
||||
let afkCounter: number = 0;
|
||||
|
||||
let afkStatus: boolean = false;
|
||||
|
||||
setInterval(checkAfkPosition, 1000 * 10);
|
||||
|
||||
function checkAfkPosition() {
|
||||
|
||||
if (!globalData.LoggedIn) {
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -62,7 +62,6 @@ namespace ReallifeGamemode.Server.Util
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
private static void Timer60000_Elapsed(object sender, ElapsedEventArgs e)
|
||||
{
|
||||
NAPI.Task.Run(() =>
|
||||
@@ -79,7 +78,6 @@ namespace ReallifeGamemode.Server.Util
|
||||
{
|
||||
NAPI.Task.Run(() =>
|
||||
{
|
||||
WantedEscapeTimer.Timer_Elapsed();
|
||||
Jail.JailIn_Elapsed();
|
||||
Gangwar.Gangwar.Value_TimerElapsed();
|
||||
});
|
||||
|
||||
@@ -13,60 +13,17 @@ using ReallifeGamemode.Server.Services;
|
||||
|
||||
namespace ReallifeGamemode.Server.Wanted
|
||||
{
|
||||
public class WantedEscapeTimer
|
||||
public class WantedEscapeTimer : Script
|
||||
{
|
||||
private const int WantedEscapeTime = 300000;
|
||||
|
||||
public static Dictionary<int, int> waTimer { get; set; } = new Dictionary<int, int>(); //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(User user)
|
||||
{
|
||||
waTimer[user.Id] = WantedEscapeTime;
|
||||
}
|
||||
|
||||
public static void Timer_Elapsed()
|
||||
[RemoteEvent("CLIENT:EscapeWanted")]
|
||||
public void WantedEscape(Player player)
|
||||
{
|
||||
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(user);
|
||||
|
||||
bool isNearCop = false;
|
||||
foreach (var playerCop in NAPI.Pools.GetAllPlayers())
|
||||
{
|
||||
if (!playerCop.IsLoggedIn()) continue;
|
||||
if (user.Wanteds <= 0)
|
||||
return;
|
||||
|
||||
User cop = playerCop.GetUser();
|
||||
if (cop != null && (cop.FactionId == 1 || cop.FactionId == 3))
|
||||
{
|
||||
if (cop.GetData<bool>("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(user);
|
||||
player.SendChatMessage("~y~Du hast erfolgreich einen Wanted abgetaucht.");
|
||||
user.Wanteds -= 1;
|
||||
if (user.Wanteds == 0)
|
||||
@@ -75,20 +32,6 @@ namespace ReallifeGamemode.Server.Wanted
|
||||
user.SetBlipAndNametagColor();
|
||||
}
|
||||
dbContext.SaveChanges();
|
||||
waTimer[user.Id] = WantedEscapeTime;
|
||||
}
|
||||
else if (!isNearCop && !player.IsAfk())
|
||||
{
|
||||
player.TriggerEvent("SERVER:SetWantedFlash", true);
|
||||
waTimer[user.Id] -= 2500;
|
||||
}
|
||||
else if (isNearCop)
|
||||
{
|
||||
player.TriggerEvent("SERVER:SetWantedFlash", false);
|
||||
ResetWantedTimeToElapse(user);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user