From 60e97695b555acb46407f2efb31ebfdd53788a5d Mon Sep 17 00:00:00 2001 From: hydrant Date: Mon, 19 Apr 2021 01:18:36 +0200 Subject: [PATCH] vagos in wt --- .../Events/EnterVehicle.cs | 4 +-- .../Events/EnterVehicleAttempt.cs | 2 +- ReallifeGamemode.Server/Events/ExitVehicle.cs | 5 ++-- ReallifeGamemode.Server/Events/Key.cs | 10 ++----- ReallifeGamemode.Server/Events/Vehicle.cs | 12 +++----- .../Extensions/VehicleExtension.cs | 3 +- .../Inventory/Items/WeaponDealItem.cs | 3 +- .../WeaponDeal/WeaponDealManager.cs | 29 ++++++++++++++----- 8 files changed, 37 insertions(+), 31 deletions(-) diff --git a/ReallifeGamemode.Server/Events/EnterVehicle.cs b/ReallifeGamemode.Server/Events/EnterVehicle.cs index 1ae08f5a..5725b4a3 100644 --- a/ReallifeGamemode.Server/Events/EnterVehicle.cs +++ b/ReallifeGamemode.Server/Events/EnterVehicle.cs @@ -37,7 +37,7 @@ namespace ReallifeGamemode.Server.Events User u = client.GetUser(); if (u.FactionId != null && veh.GetOwners().Contains(u.FactionId.Value) - && (veh.Model == VehicleHash.Burrito3 || veh.Model == VehicleHash.Policet) + && (veh.Model == WeaponDealManager.WEAPON_DEAL_GANG_VEHICLE_HASH || veh.Model == WeaponDealManager.WEAPON_DEAL_STAATSFRAK_VEHICLE_HASH) && vehicle.HasData("weaponDeal") && vehicle.GetData("weaponDeal") == true && (!vehicle.HasData("WeaponDealLoad") || vehicle.GetData("WeaponDealLoad") == false)) @@ -47,7 +47,7 @@ namespace ReallifeGamemode.Server.Events CheckPointHandle.StartCheckPointRoute(client, dealPoint, 5000, 1, 7, 3, true, "loadWeaponTransport"); } else if ((u.FactionId != null) - && ((VehicleHash)vehicle.Model == VehicleHash.Burrito3 || (VehicleHash)vehicle.Model == VehicleHash.Policet) + && (veh.Model == WeaponDealManager.WEAPON_DEAL_GANG_VEHICLE_HASH || veh.Model == WeaponDealManager.WEAPON_DEAL_STAATSFRAK_VEHICLE_HASH) && vehicle.HasData("WeaponDealLoad") && vehicle.GetData("WeaponDealLoad") == true) { diff --git a/ReallifeGamemode.Server/Events/EnterVehicleAttempt.cs b/ReallifeGamemode.Server/Events/EnterVehicleAttempt.cs index 7573fb6a..0370afa7 100644 --- a/ReallifeGamemode.Server/Events/EnterVehicleAttempt.cs +++ b/ReallifeGamemode.Server/Events/EnterVehicleAttempt.cs @@ -31,7 +31,7 @@ namespace ReallifeGamemode.Server.Events { if (!veh.GetOwners().Contains(player.GetUser().FactionId ?? 0) && !(u.IsAdmin(AdminLevel.HEADADMIN) && player.IsAdminDuty()) && !JobBase.GetPlayerInJob().Contains(player)) { - if ((VehicleHash)vehicle.Model == VehicleHash.Burrito3) + if ((VehicleHash)vehicle.Model == WeaponDealManager.WEAPON_DEAL_GANG_VEHICLE_HASH) { if (WeaponDealManager.checkWeaponDbyVehicle(vehicle)) return; diff --git a/ReallifeGamemode.Server/Events/ExitVehicle.cs b/ReallifeGamemode.Server/Events/ExitVehicle.cs index b6e0187a..255b4a5c 100644 --- a/ReallifeGamemode.Server/Events/ExitVehicle.cs +++ b/ReallifeGamemode.Server/Events/ExitVehicle.cs @@ -8,6 +8,7 @@ using ReallifeGamemode.Server.Extensions; using ReallifeGamemode.Server.Managers; using ReallifeGamemode.Server.Services; using ReallifeGamemode.Server.Util; +using ReallifeGamemode.Server.WeaponDeal; namespace ReallifeGamemode.Server.Events { @@ -27,7 +28,7 @@ namespace ReallifeGamemode.Server.Events User u = client.GetUser(); if ((u.FactionId != null) && (veh.GetOwners().Contains(u.FactionId ?? 0)) - && ((VehicleHash)vehicle.Model == VehicleHash.Burrito3 || (VehicleHash)vehicle.Model == VehicleHash.Policet) + && (veh.Model == WeaponDealManager.WEAPON_DEAL_GANG_VEHICLE_HASH || veh.Model == WeaponDealManager.WEAPON_DEAL_STAATSFRAK_VEHICLE_HASH) && vehicle.HasData("weaponDeal") && vehicle.GetData("weaponDeal") == true) { @@ -35,7 +36,7 @@ namespace ReallifeGamemode.Server.Events client.TriggerEvent("destroyCP"); } else if ((u.FactionId != null) - && ((VehicleHash)vehicle.Model == VehicleHash.Burrito3 || (VehicleHash)vehicle.Model == VehicleHash.Policet) + && (veh.Model == WeaponDealManager.WEAPON_DEAL_GANG_VEHICLE_HASH || veh.Model == WeaponDealManager.WEAPON_DEAL_STAATSFRAK_VEHICLE_HASH) && vehicle.HasData("WeaponDealLoad") && vehicle.GetData("WeaponDealLoad") == true) { diff --git a/ReallifeGamemode.Server/Events/Key.cs b/ReallifeGamemode.Server/Events/Key.cs index d0372911..a2abdcb3 100644 --- a/ReallifeGamemode.Server/Events/Key.cs +++ b/ReallifeGamemode.Server/Events/Key.cs @@ -800,14 +800,8 @@ namespace ReallifeGamemode.Server.Events } else if (sV is FactionVehicle fV) { - if (fV.Model == VehicleHash.Burrito3 && u.FactionId == 1 - || fV.Model == VehicleHash.Burrito3 && u.FactionId == 3 - || fV.Model == VehicleHash.Burrito3 && u.FactionId == 7 - || fV.Model == VehicleHash.Burrito3 && u.FactionId == 8 - || fV.Model == VehicleHash.Policet && u.FactionId == 1 - || fV.Model == VehicleHash.Policet && u.FactionId == 3 - || fV.Model == VehicleHash.Policet && u.FactionId == 7 - || fV.Model == VehicleHash.Policet && u.FactionId == 8) + if ((fV.Model == WeaponDealManager.WEAPON_DEAL_GANG_VEHICLE_HASH || fV.Model == WeaponDealManager.WEAPON_DEAL_STAATSFRAK_VEHICLE_HASH) + && WeaponDealManager.WEAPON_DEAL_FACTIONS.Contains(u.FactionId ?? 0)) { VehicleStreaming.SetEngineState(v, !state); } diff --git a/ReallifeGamemode.Server/Events/Vehicle.cs b/ReallifeGamemode.Server/Events/Vehicle.cs index 263b8f8a..c9bbe549 100644 --- a/ReallifeGamemode.Server/Events/Vehicle.cs +++ b/ReallifeGamemode.Server/Events/Vehicle.cs @@ -1,10 +1,12 @@ using System; +using System.Linq; using GTANetworkAPI; using ReallifeGamemode.Database.Entities; using ReallifeGamemode.Database.Models; using ReallifeGamemode.Server.Extensions; using ReallifeGamemode.Server.Types; using ReallifeGamemode.Server.Util; +using ReallifeGamemode.Server.WeaponDeal; namespace ReallifeGamemode.Server.Events { @@ -38,14 +40,8 @@ namespace ReallifeGamemode.Server.Events } else if (sV is FactionVehicle fV) { - if (fV.Model == VehicleHash.Burrito3 && u.FactionId == 1 - || fV.Model == VehicleHash.Burrito3 && u.FactionId == 3 - || fV.Model == VehicleHash.Burrito3 && u.FactionId == 7 - || fV.Model == VehicleHash.Burrito3 && u.FactionId == 8 - || fV.Model == VehicleHash.Policet && u.FactionId == 1 - || fV.Model == VehicleHash.Policet && u.FactionId == 3 - || fV.Model == VehicleHash.Policet && u.FactionId == 7 - || fV.Model == VehicleHash.Policet && u.FactionId == 8) + if ((fV.Model == WeaponDealManager.WEAPON_DEAL_GANG_VEHICLE_HASH || fV.Model == WeaponDealManager.WEAPON_DEAL_STAATSFRAK_VEHICLE_HASH) + && WeaponDealManager.WEAPON_DEAL_FACTIONS.Contains(u.FactionId ?? 0)) { VehicleStreaming.SetEngineState(v, !state); } diff --git a/ReallifeGamemode.Server/Extensions/VehicleExtension.cs b/ReallifeGamemode.Server/Extensions/VehicleExtension.cs index 06af94bf..e0f75f46 100644 --- a/ReallifeGamemode.Server/Extensions/VehicleExtension.cs +++ b/ReallifeGamemode.Server/Extensions/VehicleExtension.cs @@ -3,6 +3,7 @@ using GTANetworkAPI; using ReallifeGamemode.Database.Entities; using ReallifeGamemode.Database.Models; using ReallifeGamemode.Server.Managers; +using ReallifeGamemode.Server.WeaponDeal; namespace ReallifeGamemode.Server.Extensions { @@ -107,7 +108,7 @@ namespace ReallifeGamemode.Server.Extensions return 0; case 18: - if ((VehicleHash)vehicle.Model == VehicleHash.Policet) + if ((VehicleHash)vehicle.Model == WeaponDealManager.WEAPON_DEAL_STAATSFRAK_VEHICLE_HASH) return 1000 * 1000; else if ((VehicleHash)vehicle.Model == VehicleHash.Firetruk || (VehicleHash)vehicle.Model == VehicleHash.Pbus diff --git a/ReallifeGamemode.Server/Inventory/Items/WeaponDealItem.cs b/ReallifeGamemode.Server/Inventory/Items/WeaponDealItem.cs index fdaff5cd..d36904d7 100644 --- a/ReallifeGamemode.Server/Inventory/Items/WeaponDealItem.cs +++ b/ReallifeGamemode.Server/Inventory/Items/WeaponDealItem.cs @@ -2,6 +2,7 @@ using ReallifeGamemode.Database.Entities; using ReallifeGamemode.Server.Extensions; using ReallifeGamemode.Server.Inventory.Interfaces; +using ReallifeGamemode.Server.WeaponDeal; namespace ReallifeGamemode.Server.Inventory.Items { @@ -19,7 +20,7 @@ namespace ReallifeGamemode.Server.Inventory.Items { if (!fVeh.GetOwners().Contains(client.GetUser().FactionId ?? 0)) return false; - if (fVeh.Model != VehicleHash.Burrito3) + if (fVeh.Model != WeaponDealManager.WEAPON_DEAL_GANG_VEHICLE_HASH) return false; return true; diff --git a/ReallifeGamemode.Server/WeaponDeal/WeaponDealManager.cs b/ReallifeGamemode.Server/WeaponDeal/WeaponDealManager.cs index 560c4e4b..1b6c3231 100644 --- a/ReallifeGamemode.Server/WeaponDeal/WeaponDealManager.cs +++ b/ReallifeGamemode.Server/WeaponDeal/WeaponDealManager.cs @@ -12,6 +12,14 @@ namespace ReallifeGamemode.Server.WeaponDeal { public class WeaponDealManager : Script { + public static readonly int[] WEAPON_DEAL_GANG_IDS = new int[] { 5, 7, 8 }; + public static readonly int[] WEAPON_DEAL_STAATSFRAK_IDS = new int[] { 1, 3 }; + + public static int[] WEAPON_DEAL_FACTIONS => WEAPON_DEAL_GANG_IDS.Concat(WEAPON_DEAL_STAATSFRAK_IDS).Distinct().ToArray(); + + public static readonly VehicleHash WEAPON_DEAL_GANG_VEHICLE_HASH = VehicleHash.Burrito3; + public static readonly VehicleHash WEAPON_DEAL_STAATSFRAK_VEHICLE_HASH = VehicleHash.Policet; + private const int WEAPON_AMOUNT_GANG = 2; private const int WEAPON_AMOUNT_COP = 4; private const int WEAPON_AMOUNT_COP_STUNGUN = 4; @@ -30,14 +38,17 @@ namespace ReallifeGamemode.Server.WeaponDeal public void SrvEVENT_startWeaponDeal(Player client) { var user = client.GetUser(); - if(user == null || user.FactionId == null) + 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(); + FactionVehicle factionVehicle = context.FactionVehicles.Where(f => f.Model == WEAPON_DEAL_GANG_VEHICLE_HASH || f.Model == WEAPON_DEAL_STAATSFRAK_VEHICLE_HASH) + .ToList() + .Where(f => f.GetOwners().Contains(user.FactionId ?? 0)) + .FirstOrDefault(); if (factionVehicle == null) { @@ -54,7 +65,7 @@ namespace ReallifeGamemode.Server.WeaponDeal } float distance = fVeh.Position.DistanceTo2D(client.Position); - if ((distance > 80 && factionVehicle.Model == VehicleHash.Burrito3) || (distance > 400 && factionVehicle.Model == VehicleHash.Policet)) + if ((distance > 80 && factionVehicle.Model == WEAPON_DEAL_GANG_VEHICLE_HASH) || (distance > 400 && factionVehicle.Model == WEAPON_DEAL_STAATSFRAK_VEHICLE_HASH)) { ChatService.ErrorMessage(client, "Der Transporter ist zu weit entfernt"); return; @@ -175,7 +186,7 @@ namespace ReallifeGamemode.Server.WeaponDeal { return; } - if ((VehicleHash)veh.Model != VehicleHash.Burrito3 && (VehicleHash)veh.Model != VehicleHash.Policet) + if ((VehicleHash)veh.Model != WEAPON_DEAL_GANG_VEHICLE_HASH && (VehicleHash)veh.Model != WEAPON_DEAL_STAATSFRAK_VEHICLE_HASH) { return; } @@ -184,11 +195,13 @@ namespace ReallifeGamemode.Server.WeaponDeal using (var context = new DatabaseContext()) { FactionVehicle factionVehicle = context.FactionVehicles - .Where(f => f.Model == VehicleHash.Burrito3 || f.Model == VehicleHash.Policet) + .Where(f => f.Model == WEAPON_DEAL_GANG_VEHICLE_HASH || f.Model == WEAPON_DEAL_STAATSFRAK_VEHICLE_HASH) .ToList() .Where(f => f.GetOwners().Contains(user.FactionId ?? 0)) .FirstOrDefault(); + var owners = factionVehicle.GetOwners(); + Vehicle fVeh = VehicleManager.GetVehicleFromServerVehicle(factionVehicle); fVeh.SetData("weaponDeal", false); fVeh.SetData("WeaponDealLoad", true); @@ -198,7 +211,7 @@ namespace ReallifeGamemode.Server.WeaponDeal InventoryManager.RemoveAllItemsfromVehicleInventory(fVeh); int oMembers = NAPI.Pools.GetAllPlayers().Where(p => !p.IsAfk() && p.IsLoggedIn() && p.GetUser(context).FactionId == user.FactionId).Count(); - if (factionVehicle.GetOwners().Contains(8) || factionVehicle.GetOwners().Contains(7)) + if (owners.Any(o => WEAPON_DEAL_GANG_IDS.Contains(o))) // Gang WT { VehicleItem item = new VehicleItem() { ItemId = 2, VehicleId = factionVehicle.Id, Amount = WEAPON_AMOUNT_GANG * oMembers }; //pistol50 InventoryManager.AddItemToVehicleInventory(fVeh, item.ItemId, item.Amount); @@ -211,7 +224,7 @@ namespace ReallifeGamemode.Server.WeaponDeal VehicleItem item5 = new VehicleItem() { ItemId = 13, VehicleId = factionVehicle.Id, Amount = WEAPON_AMOUNT_GANG * oMembers }; //AssaultRifle InventoryManager.AddItemToVehicleInventory(fVeh, item5.ItemId, item5.Amount); } - else if (factionVehicle.GetOwners().Contains(1)) + else if (owners.Contains(1)) // LSPD { VehicleItem item = new VehicleItem() { ItemId = 1, VehicleId = factionVehicle.Id, Amount = WEAPON_AMOUNT_COP * oMembers }; //pistol InventoryManager.AddItemToVehicleInventory(fVeh, item.ItemId, item.Amount); @@ -228,7 +241,7 @@ namespace ReallifeGamemode.Server.WeaponDeal VehicleItem item7 = new VehicleItem() { ItemId = 14, VehicleId = factionVehicle.Id, Amount = WEAPON_AMOUNT_COP_STUNGUN * oMembers }; // AssaultSmg InventoryManager.AddItemToVehicleInventory(fVeh, item7.ItemId, item7.Amount); } - else if (factionVehicle.GetOwners().Contains(3)) + else if (owners.Contains(3)) // FIB { VehicleItem item = new VehicleItem() { ItemId = 3, VehicleId = factionVehicle.Id, Amount = WEAPON_AMOUNT_COP * oMembers }; //pistol_mk2 InventoryManager.AddItemToVehicleInventory(fVeh, item.ItemId, item.Amount);