From 62ac08e98dc3f5e8dae288b35c6366240eb00b59 Mon Sep 17 00:00:00 2001 From: hydrant Date: Tue, 13 Apr 2021 20:32:20 +0200 Subject: [PATCH 1/9] afk system --- ReallifeGamemode.Client/Player/antiafk.ts | 45 +++++++++++++++++++ ReallifeGamemode.Client/global.d.ts | 1 + ReallifeGamemode.Client/index.ts | 4 ++ ReallifeGamemode.Server/Events/PlayerEvent.cs | 10 +++++ .../Extensions/ClientExtension.cs | 5 +++ ReallifeGamemode.Server/Finance/Economy.cs | 5 +++ .../WeaponDeal/WeaponDealManager.cs | 8 +++- 7 files changed, 76 insertions(+), 2 deletions(-) create mode 100644 ReallifeGamemode.Client/Player/antiafk.ts diff --git a/ReallifeGamemode.Client/Player/antiafk.ts b/ReallifeGamemode.Client/Player/antiafk.ts new file mode 100644 index 00000000..443a61db --- /dev/null +++ b/ReallifeGamemode.Client/Player/antiafk.ts @@ -0,0 +1,45 @@ +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; + } + + let lp = lastPosition; + let np = mp.players.local.position; + + let distance = mp.game.gameplay.getDistanceBetweenCoords(lp.x, lp.y, lp.z, np.x, np.y, np.z, false); + + if (distance <= 5) { + if (!afkStatus) { + afkCounter++; + } + } else { + afkCounter = 0; + if (afkStatus) { + afkStatus = false; + globalData.IsAfk = afkStatus; + setServerAfkStatus(afkStatus); + } + } + + if (afkCounter >= 12) { + afkStatus = true; + globalData.IsAfk = afkStatus; + setServerAfkStatus(afkStatus); + } + + lastPosition = np; + } + + function setServerAfkStatus(status: boolean) { + mp.events.callRemote("CLIENT:SetAfkStatus", status); + } +} \ No newline at end of file diff --git a/ReallifeGamemode.Client/global.d.ts b/ReallifeGamemode.Client/global.d.ts index 2242dd17..9dd783c1 100644 --- a/ReallifeGamemode.Client/global.d.ts +++ b/ReallifeGamemode.Client/global.d.ts @@ -4,6 +4,7 @@ InMenu: boolean, InChat: boolean, LoggedIn: boolean, + IsAfk: boolean, } declare type AccountData = { diff --git a/ReallifeGamemode.Client/index.ts b/ReallifeGamemode.Client/index.ts index 303729b5..819e153d 100644 --- a/ReallifeGamemode.Client/index.ts +++ b/ReallifeGamemode.Client/index.ts @@ -14,6 +14,7 @@ let globalData: IGlobalData = { HideGui: false, InChat: false, LoggedIn: false, + IsAfk: false, get InMenu(): boolean { return inMenu; @@ -258,6 +259,9 @@ animationSync(); import antiCheat from './admin/anticheat'; antiCheat(globalData); +import antiAfk from './Player/antiafk'; +antiAfk(globalData); + require('./Gui/policedepartment'); require('./Gui/helptext'); diff --git a/ReallifeGamemode.Server/Events/PlayerEvent.cs b/ReallifeGamemode.Server/Events/PlayerEvent.cs index 4f6ed48b..ad8b51fc 100644 --- a/ReallifeGamemode.Server/Events/PlayerEvent.cs +++ b/ReallifeGamemode.Server/Events/PlayerEvent.cs @@ -13,5 +13,15 @@ namespace ReallifeGamemode.Server.Events { player.SafeTeleport(pos); } + + [RemoteEvent("CLIENT:SetAfkStatus")] + public void SetPlayerAfkStatus(Player player, bool status) + { + player.SetServerData("isAfk", status); + if(status) + { + player.SendNotification("Du wurdest ~b~AFK~s~ gesetzt", true); + } + } } } diff --git a/ReallifeGamemode.Server/Extensions/ClientExtension.cs b/ReallifeGamemode.Server/Extensions/ClientExtension.cs index 9c354a51..23977951 100644 --- a/ReallifeGamemode.Server/Extensions/ClientExtension.cs +++ b/ReallifeGamemode.Server/Extensions/ClientExtension.cs @@ -136,6 +136,11 @@ namespace ReallifeGamemode.Server.Extensions return player.GetServerData("duty", false); } + public static bool IsAfk(this Player player) + { + return player.GetServerData("isAfk", false); + } + public static bool IsAlive(this Player player) { return !player.HasData("isDead") || player.GetData("isDead") == false; diff --git a/ReallifeGamemode.Server/Finance/Economy.cs b/ReallifeGamemode.Server/Finance/Economy.cs index 78284419..391704e2 100644 --- a/ReallifeGamemode.Server/Finance/Economy.cs +++ b/ReallifeGamemode.Server/Finance/Economy.cs @@ -189,6 +189,11 @@ namespace ReallifeGamemode.Server.Finance using var dbContext = new DatabaseContext(); foreach (var player in NAPI.Pools.GetAllPlayers().Where(p => p.IsLoggedIn())) { + if(player.IsAfk()) + { + continue; + } + User user = player.GetUser(dbContext); if(user == null) { diff --git a/ReallifeGamemode.Server/WeaponDeal/WeaponDealManager.cs b/ReallifeGamemode.Server/WeaponDeal/WeaponDealManager.cs index 692f018e..54830d89 100644 --- a/ReallifeGamemode.Server/WeaponDeal/WeaponDealManager.cs +++ b/ReallifeGamemode.Server/WeaponDeal/WeaponDealManager.cs @@ -30,6 +30,11 @@ namespace ReallifeGamemode.Server.WeaponDeal public void SrvEVENT_startWeaponDeal(Player client) { var user = client.GetUser(); + if(user == null || user.FactionId == null) + { + return; + } + using (var context = new DatabaseContext(true)) { FactionVehicle factionVehicle = context.FactionVehicles.Where(f => f.Model == VehicleHash.Burrito3 || f.Model == VehicleHash.Policet).ToList().Where(f => f.GetOwners().Contains(user.FactionId ?? 0)).FirstOrDefault(); @@ -40,7 +45,6 @@ namespace ReallifeGamemode.Server.WeaponDeal return; } - Vehicle fVeh = VehicleManager.GetVehicleFromServerVehicle(factionVehicle); if (checkWeaponDbyVehicle(fVeh)) @@ -58,7 +62,7 @@ namespace ReallifeGamemode.Server.WeaponDeal WeaponDealPoints.factionWeaponDeal[user.FactionId.Value] = -1; Vector3 vector; - vector = WeaponDealPoints.getRndWD_Route(client.GetUser().FactionId.Value); + vector = WeaponDealPoints.getRndWD_Route(user.FactionId.Value); if (vector == new Vector3()) return; fVeh.SetData("weaponDealPoint", vector); From f0ed47997f9661f03584d6d9a23e03d31e399e37 Mon Sep 17 00:00:00 2001 From: hydrant Date: Tue, 13 Apr 2021 20:33:06 +0200 Subject: [PATCH 2/9] fib unmarked pack --- .../dlcpacks/ag_fibpack/dlc.rpf | 3 ++ .../Managers/VehicleManager.cs | 33 ++++++++++++++++++- 2 files changed, 35 insertions(+), 1 deletion(-) create mode 100644 ReallifeGamemode.Client/dlcpacks/ag_fibpack/dlc.rpf diff --git a/ReallifeGamemode.Client/dlcpacks/ag_fibpack/dlc.rpf b/ReallifeGamemode.Client/dlcpacks/ag_fibpack/dlc.rpf new file mode 100644 index 00000000..c93f0fdc --- /dev/null +++ b/ReallifeGamemode.Client/dlcpacks/ag_fibpack/dlc.rpf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0213a5c6a7b5cd38d26bd92c865339aa13158bfadad8354f85945132bd553c5d +size 214803456 diff --git a/ReallifeGamemode.Server/Managers/VehicleManager.cs b/ReallifeGamemode.Server/Managers/VehicleManager.cs index ec064e89..ef44ef7a 100644 --- a/ReallifeGamemode.Server/Managers/VehicleManager.cs +++ b/ReallifeGamemode.Server/Managers/VehicleManager.cs @@ -758,6 +758,37 @@ namespace ReallifeGamemode.Server.Managers "winky", "polamggtr", //mod "newsfrog", //mod + "fibc3", //mod + "fibw", //mod + "fibt", //mod + "fibs2", //mod + "fibo", //mod + "fibo2", //mod + "fibj2", //mod + "fibg3", //mod + "fibf", //mod + "fibd3", //mod + "fibc2", //mod + "fibb2", //mod + "fibb", //mod + "fibh", //mod + "fibk", //mod + "fibk2", //mod + "fibr2", //mod + "fibx2", //mod + "fibs3", //mod + "fibg", //mod + "fibd", //mod + "fibs", //mod + "fibc", //mod + "fibx", //mod + "fibg2", //mod + "fibd2", //mod + "fibj", //mod + "fibn", //mod + "fibr", //mod + "fibc4", //mod + "fibt2" // mod }; private static readonly Dictionary _serverVehicles = new Dictionary(); @@ -835,7 +866,7 @@ namespace ReallifeGamemode.Server.Managers } }); } - + public static void AddVehicle(ServerVehicle serverVehicle, Vehicle vehicle) { if (_serverVehicles.ContainsKey(serverVehicle.Id)) From f6b4dd481ad81772b29487a090b699493e5b3b37 Mon Sep 17 00:00:00 2001 From: hydrant Date: Tue, 13 Apr 2021 20:57:15 +0200 Subject: [PATCH 3/9] altes fib pack neigmacht --- .../dlcpacks/ag_fibpack/dlc.rpf | 3 -- .../dlcpacks/fibpack/dlc.rpf | 3 ++ .../Managers/VehicleManager.cs | 44 ++++++------------- 3 files changed, 16 insertions(+), 34 deletions(-) delete mode 100644 ReallifeGamemode.Client/dlcpacks/ag_fibpack/dlc.rpf create mode 100644 ReallifeGamemode.Client/dlcpacks/fibpack/dlc.rpf diff --git a/ReallifeGamemode.Client/dlcpacks/ag_fibpack/dlc.rpf b/ReallifeGamemode.Client/dlcpacks/ag_fibpack/dlc.rpf deleted file mode 100644 index c93f0fdc..00000000 --- a/ReallifeGamemode.Client/dlcpacks/ag_fibpack/dlc.rpf +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:0213a5c6a7b5cd38d26bd92c865339aa13158bfadad8354f85945132bd553c5d -size 214803456 diff --git a/ReallifeGamemode.Client/dlcpacks/fibpack/dlc.rpf b/ReallifeGamemode.Client/dlcpacks/fibpack/dlc.rpf new file mode 100644 index 00000000..19d56440 --- /dev/null +++ b/ReallifeGamemode.Client/dlcpacks/fibpack/dlc.rpf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5e4f54ec27530515452c0ef05241bd26ba70d13451ac24eb799ff3c6b18f42ec +size 98724352 diff --git a/ReallifeGamemode.Server/Managers/VehicleManager.cs b/ReallifeGamemode.Server/Managers/VehicleManager.cs index ef44ef7a..ffa29c54 100644 --- a/ReallifeGamemode.Server/Managers/VehicleManager.cs +++ b/ReallifeGamemode.Server/Managers/VehicleManager.cs @@ -758,37 +758,19 @@ namespace ReallifeGamemode.Server.Managers "winky", "polamggtr", //mod "newsfrog", //mod - "fibc3", //mod - "fibw", //mod - "fibt", //mod - "fibs2", //mod - "fibo", //mod - "fibo2", //mod - "fibj2", //mod - "fibg3", //mod - "fibf", //mod - "fibd3", //mod - "fibc2", //mod - "fibb2", //mod - "fibb", //mod - "fibh", //mod - "fibk", //mod - "fibk2", //mod - "fibr2", //mod - "fibx2", //mod - "fibs3", //mod - "fibg", //mod - "fibd", //mod - "fibs", //mod - "fibc", //mod - "fibx", //mod - "fibg2", //mod - "fibd2", //mod - "fibj", //mod - "fibn", //mod - "fibr", //mod - "fibc4", //mod - "fibt2" // mod + "fibn",//mod + "fibg",//mod + "fibd",//mod + "fibs",//mod + "fibc",//mod + "fibn2",//mod + "fibx",//mod + "fibg2",//mod + "fibd2",//mod + "fibj",//mod + "fibn3",//mod + "fibr"//mod + }; private static readonly Dictionary _serverVehicles = new Dictionary(); From b776bab159016aa8459a6e70f56095932559091b Mon Sep 17 00:00:00 2001 From: hydrant Date: Tue, 13 Apr 2021 22:18:43 +0200 Subject: [PATCH 4/9] [HOTFIX] busfahrer crash --- ReallifeGamemode.Server/Job/BusDriverJob.cs | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/ReallifeGamemode.Server/Job/BusDriverJob.cs b/ReallifeGamemode.Server/Job/BusDriverJob.cs index e8eee500..969f1e87 100644 --- a/ReallifeGamemode.Server/Job/BusDriverJob.cs +++ b/ReallifeGamemode.Server/Job/BusDriverJob.cs @@ -565,6 +565,11 @@ namespace ReallifeGamemode.Server.Job return; } + if(!playerVehiclePair.ContainsKey(player)) + { + return; + } + if (JobManager.playerTimersJobVehicleRespawn.ContainsKey(player)) { JobManager.playerTimersJobVehicleRespawn[player].Stop(); From 95ea09450a5f1192e768f48a8a2afe2c2e9348f4 Mon Sep 17 00:00:00 2001 From: hydrant Date: Tue, 13 Apr 2021 22:35:08 +0200 Subject: [PATCH 5/9] afk time 5 minuten --- ReallifeGamemode.Client/Player/antiafk.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ReallifeGamemode.Client/Player/antiafk.ts b/ReallifeGamemode.Client/Player/antiafk.ts index 443a61db..b8060c0c 100644 --- a/ReallifeGamemode.Client/Player/antiafk.ts +++ b/ReallifeGamemode.Client/Player/antiafk.ts @@ -30,7 +30,7 @@ } } - if (afkCounter >= 12) { + if (afkCounter >= 30) { afkStatus = true; globalData.IsAfk = afkStatus; setServerAfkStatus(afkStatus); From 672710630a6b2a1530a7cb6537a804a4d22cc085 Mon Sep 17 00:00:00 2001 From: hydrant Date: Tue, 13 Apr 2021 22:38:15 +0200 Subject: [PATCH 6/9] knastzeit runter --- ReallifeGamemode.Server/Extensions/ClientExtension.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ReallifeGamemode.Server/Extensions/ClientExtension.cs b/ReallifeGamemode.Server/Extensions/ClientExtension.cs index 23977951..9bba8fc6 100644 --- a/ReallifeGamemode.Server/Extensions/ClientExtension.cs +++ b/ReallifeGamemode.Server/Extensions/ClientExtension.cs @@ -95,7 +95,7 @@ namespace ReallifeGamemode.Server.Extensions return; } - int time = 26 * user.Wanteds; + int time = 18 * user.Wanteds; if (killed) { time *= 2; From 8a1a717740215523fbd9199aa4e1fb4ce1ea273e Mon Sep 17 00:00:00 2001 From: hydrant Date: Tue, 13 Apr 2021 22:39:28 +0200 Subject: [PATCH 7/9] fix gangwar geld --- ReallifeGamemode.Server/Gangwar/Turf.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ReallifeGamemode.Server/Gangwar/Turf.cs b/ReallifeGamemode.Server/Gangwar/Turf.cs index 825fe065..dfd08df8 100644 --- a/ReallifeGamemode.Server/Gangwar/Turf.cs +++ b/ReallifeGamemode.Server/Gangwar/Turf.cs @@ -247,7 +247,7 @@ namespace ReallifeGamemode.Server.Gangwar Player[] attackers = NAPI.Pools.GetAllPlayers().Where(c => c.IsLoggedIn() && c.GetUser().Faction?.Name == this.Attacker).ToArray(); Faction ownerFaction = dbContext.Factions.Include(f => f.BankAccount).Where(f => f.Name == getOwner()).FirstOrDefault(); - Faction attackerFaction = dbContext.Factions.Include(f => f.BankAccount).Where(f => f.Name == getOwner()).FirstOrDefault(); + Faction attackerFaction = dbContext.Factions.Include(f => f.BankAccount).Where(f => f.Name == getAttacker()).FirstOrDefault(); if (ownerFaction == null || attackerFaction == null) { From ff3b5f552b05245a68e16f63cf0d253ec3c4eb62 Mon Sep 17 00:00:00 2001 From: hydrant Date: Tue, 13 Apr 2021 22:41:40 +0200 Subject: [PATCH 8/9] =?UTF-8?q?setweaponrank=20von=20=C3=BCberall?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ReallifeGamemode.Server/Commands/FactionCommands.cs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/ReallifeGamemode.Server/Commands/FactionCommands.cs b/ReallifeGamemode.Server/Commands/FactionCommands.cs index e423885c..9dc24c1e 100644 --- a/ReallifeGamemode.Server/Commands/FactionCommands.cs +++ b/ReallifeGamemode.Server/Commands/FactionCommands.cs @@ -234,18 +234,19 @@ namespace ReallifeGamemode.Server.Commands [Command("setweaponrank", "~m~Benutzung: ~s~/setweaponrank [Waffen Name] [Rank]")] public void CmdFactionWeaponRank(Player player, string weaponModel, int rank) { - if (player.GetUser()?.FactionId == null || player.GetUser().FactionLeader == false) + User user = player.GetUser(); + if (user == null || user.FactionId == null || user.FactionLeader == false) { ChatService.NotAuthorized(player); return; } + if (rank > 12 || rank < 1) { ChatService.ErrorMessage(player, "Gebe einen gültigen Rang ein"); return; } - User user = player.GetUser(); WeaponPoint nearestWeapon = PositionManager.WeaponPoints.Find(w => w.Position.DistanceTo(player.Position) <= 1.5 && w.FactionId == user.FactionId); if (nearestWeapon == null) { From 716976e2b4159defd228a04e3e8cefaa8f981504 Mon Sep 17 00:00:00 2001 From: hydrant Date: Tue, 13 Apr 2021 22:43:38 +0200 Subject: [PATCH 9/9] fix invite blip nametag farbe --- ReallifeGamemode.Server/Managers/InteractionManager.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ReallifeGamemode.Server/Managers/InteractionManager.cs b/ReallifeGamemode.Server/Managers/InteractionManager.cs index b8012632..d7684129 100644 --- a/ReallifeGamemode.Server/Managers/InteractionManager.cs +++ b/ReallifeGamemode.Server/Managers/InteractionManager.cs @@ -58,7 +58,7 @@ namespace ReallifeGamemode.Server.Managers FactionHelper.ResetPlayer(player, own, dbContext); - own.Faction = u.Faction; + own.FactionId = u.FactionId; own.FactionLeader = false; own.FactionRank = dbContext .FactionRanks