diff --git a/ReallifeGamemode.Client/Player/weaponlist.ts b/ReallifeGamemode.Client/Player/weaponlist.ts index d9dbd111..e2803897 100644 --- a/ReallifeGamemode.Client/Player/weaponlist.ts +++ b/ReallifeGamemode.Client/Player/weaponlist.ts @@ -18,25 +18,32 @@ let cancelItem = new UIMenuItem("Abbrechen", ""); cancelItem.BackColor = new Color(213, 0, 0); cancelItem.HighlightedBackColor = new Color(229, 57, 53); +let WeaponStockItem = new UIMenuItem("Bestand", "Waffenbestand anzeigen"); +WeaponStockItem.BackColor = new Color(94, 94, 94); +WeaponStockItem.HighlightedBackColor = new Color(105, 105, 105); + export default function weaponList(globalData: IGlobalData) { var weaponMenu: NativeUI.Menu; + + var primaries; var secondaries; var melees; var specialsWep; var time; - + var primary = ""; var secondary = ""; var melee = ""; var specialWep = ""; var timer = ""; + //Weapon Menu - mp.events.add('showWeaponMenu', (primariesArr, secondariesArr, meleesArr, specialsArr, jsonTime) => { + mp.events.add('showWeaponMenu', (primariesArr, secondariesArr, meleesArr, specialsArr, jsonTime, pistol_Amount, pistol50_Amount, Pistol_mk2_Amount, Combatpistol_Amount, SMG_Amount, Carbinerifle_Amount, Compactrifle_Amount, sniperrifle_Amount, Pumpshotgun_Amount, Schutzweste_Amount, Stungun_Amount) => { if (!globalData.InMenu) { globalData.InMenu = true; @@ -46,6 +53,7 @@ export default function weaponList(globalData: IGlobalData) { melees = meleesArr; specialsWep = specialsArr; time = JSON.parse(jsonTime); + let dealItem = new UIMenuListItem("Waffentransport", "", new ItemsCollection(time)); dealItem.BackColor = new Color(204, 170, 0); @@ -57,6 +65,8 @@ export default function weaponList(globalData: IGlobalData) { weaponMenu.AddItem(new UIMenuListItem("Sekundäre", "", new ItemsCollection(primaries))); weaponMenu.AddItem(new UIMenuListItem("Nahkampf", "", new ItemsCollection(melees))); weaponMenu.AddItem(new UIMenuListItem("Spezial", "", new ItemsCollection(specialsWep))); + weaponMenu.AddItem(WeaponStockItem); + weaponMenu.BindMenuToItem(getWeaponStockMenu(weaponMenu), WeaponStockItem); weaponMenu.AddItem(dealItem); weaponMenu.AddItem(saveItem); weaponMenu.AddItem(cancelItem); @@ -95,6 +105,48 @@ export default function weaponList(globalData: IGlobalData) { } }); + + function getWeaponStockMenu(parentMenu: NativeUI.Menu, ): NativeUI.Menu { + var weaponStockMenu = new NativeUI.Menu("Bestand","", new Point(50, 50), null, null); + + var menuItem = new UIMenuItem("Pistol"); + menuItem.SetRightLabel(pistol_Amount); + weaponStockMenu.AddItem(menuItem); + var menuItem = new UIMenuItem("Pistol50"); + menuItem.SetRightLabel(pistol50_Amount); + weaponStockMenu.AddItem(menuItem); + var menuItem = new UIMenuItem("Pistol_mk2"); + menuItem.SetRightLabel(Pistol_mk2_Amount); + weaponStockMenu.AddItem(menuItem); + var menuItem = new UIMenuItem("Combatpistol"); + menuItem.SetRightLabel(Combatpistol_Amount); + weaponStockMenu.AddItem(menuItem); + var menuItem = new UIMenuItem("SMG"); + menuItem.SetRightLabel(SMG_Amount); + weaponStockMenu.AddItem(menuItem); + var menuItem = new UIMenuItem("Carbinerifle"); + menuItem.SetRightLabel(Carbinerifle_Amount); + weaponStockMenu.AddItem(menuItem); + var menuItem = new UIMenuItem("Compactrifle"); + menuItem.SetRightLabel(Compactrifle_Amount); + weaponStockMenu.AddItem(menuItem); + var menuItem = new UIMenuItem("Sniperrifle"); + menuItem.SetRightLabel(sniperrifle_Amount); + weaponStockMenu.AddItem(menuItem); + var menuItem = new UIMenuItem("Pumpshotgun"); + menuItem.SetRightLabel(Pumpshotgun_Amount); + weaponStockMenu.AddItem(menuItem); + var menuItem = new UIMenuItem("Schutzweste"); + menuItem.SetRightLabel(Schutzweste_Amount); + weaponStockMenu.AddItem(menuItem); + var menuItem = new UIMenuItem("Stungun"); + menuItem.SetRightLabel(Stungun_Amount); + weaponStockMenu.AddItem(menuItem); + weaponStockMenu.Visible = false; + return weaponStockMenu; + } + + weaponMenu.ItemSelect.on((item) => { if (item.Text === "Waffen Nehmen") { mp.events.callRemote("saveWeaponSelection", primary, secondary, melee, specialWep); diff --git a/ReallifeGamemode.Server/Events/Key.cs b/ReallifeGamemode.Server/Events/Key.cs index 0dba8dc0..5b949673 100644 --- a/ReallifeGamemode.Server/Events/Key.cs +++ b/ReallifeGamemode.Server/Events/Key.cs @@ -342,6 +342,17 @@ namespace ReallifeGamemode.Server.Events List melees = new List(); List specials = new List(); List timer = new List(); + int pistol_Amount = 0; + int pistol50_Amount = 0; + int Pistol_mk2_Amount = 0; + int Combatpistol_Amount = 0; + int SMG_Amount = 0; + int Carbinerifle_Amount = 0; + int Compactrifle_Amount = 0; + int sniperrifle_Amount = 0; + int Pumpshotgun_Amount = 0; + int Schutzweste_Amount = 0; + int Stungun_Amount = 0; string dealTime = "Starten"; primarys.Add("Keine"); secondarys.Add("Keine"); @@ -386,7 +397,7 @@ namespace ReallifeGamemode.Server.Events List weapons = context.FactionWeapons.Where(w => w.FactionId == user.FactionId).ToList(); Database.Entities.Faction faction = context.Factions.Where(fac => fac.Id == user.FactionId).FirstOrDefault(); - + if (faction.WeaponDealTime > 0) dealTime = "noch " + faction.WeaponDealTime.ToString() + " min. übrig"; @@ -418,10 +429,56 @@ namespace ReallifeGamemode.Server.Events specials.Add(weapon.WeaponModel.ToString()); break; } + + } + foreach (var weapon in weapons) + { + if (weapon.WeaponModel == "Pistol") + { + pistol_Amount = weapon.Ammount; + } + else if(weapon.WeaponModel == "Pistol50"){ + pistol50_Amount = weapon.Ammount; + } + else if(weapon.WeaponModel == "Pistol_MK2") { + Pistol_mk2_Amount = weapon.Ammount; + } + else if (weapon.WeaponModel == "Combatpistol") + { + Combatpistol_Amount = weapon.Ammount; + } + else if (weapon.WeaponModel == "SMG") + { + SMG_Amount = weapon.Ammount; + } + else if (weapon.WeaponModel == "CarbineRifle") + { + Carbinerifle_Amount = weapon.Ammount; + } + else if (weapon.WeaponModel == "CompactRifle") + { + Compactrifle_Amount = weapon.Ammount; + } + else if (weapon.WeaponModel == "sniperrifle") + { + sniperrifle_Amount = weapon.Ammount; + } + else if (weapon.WeaponModel == "PumpShotgun") + { + Pumpshotgun_Amount = weapon.Ammount; + } + else if (weapon.WeaponModel == "Schutzweste") + { + Schutzweste_Amount = weapon.Ammount; + } + else if (weapon.WeaponModel == "Stungun") + { + Stungun_Amount = weapon.Ammount; + } } } - player.TriggerEvent("showWeaponMenu", primarys.ToArray(), secondarys.ToArray(), melees.ToArray(), specials.ToArray(), JsonConvert.SerializeObject(timer.ToArray())); + player.TriggerEvent("showWeaponMenu", primarys.ToArray(), secondarys.ToArray(), melees.ToArray(), specials.ToArray(), JsonConvert.SerializeObject(timer.ToArray()), pistol_Amount.ToString(), pistol50_Amount.ToString(), Pistol_mk2_Amount.ToString(), Combatpistol_Amount.ToString(), SMG_Amount.ToString(), Carbinerifle_Amount.ToString(), Compactrifle_Amount.ToString(), sniperrifle_Amount.ToString(), Pumpshotgun_Amount.ToString(), Schutzweste_Amount.ToString(), Stungun_Amount.ToString()); } if (nearestJailReleasePoint != null) { diff --git a/ReallifeGamemode.Server/Events/UpdateCharacterWeapon.cs b/ReallifeGamemode.Server/Events/UpdateCharacterWeapon.cs index af29a00d..db66e986 100644 --- a/ReallifeGamemode.Server/Events/UpdateCharacterWeapon.cs +++ b/ReallifeGamemode.Server/Events/UpdateCharacterWeapon.cs @@ -1,4 +1,4 @@ -using System.Linq; +using System.Linq; using GTANetworkAPI; using ReallifeGamemode.Database.Entities; using ReallifeGamemode.Database.Models; @@ -67,8 +67,8 @@ namespace ReallifeGamemode.Server.Events melee = NAPI.Util.GetHashKey($"weapon_{meleeModel}"); } - client.GiveWeapon((WeaponHash)primary, 50); - client.GiveWeapon((WeaponHash)secondary, 150); + client.GiveWeapon((WeaponHash)primary, 300); + client.GiveWeapon((WeaponHash)secondary, 100); client.GiveWeapon((WeaponHash)melee, 1); if (specialModel != "Schutzweste") { @@ -78,11 +78,11 @@ namespace ReallifeGamemode.Server.Events if (specialModel.Contains("mk2") && !specialModel.Contains("_mk2")) specialModel = specialModel.Replace("mk2", "_mk2"); special = NAPI.Util.GetHashKey($"weapon_{specialModel}"); } - client.GiveWeapon((WeaponHash)special, 50); + client.GiveWeapon((WeaponHash)special, 30); } else { - client.Armor = 50; + client.Armor = 100; } using (var context = new DatabaseContext())