diff --git a/ReallifeGamemode.Client/Player/weaponlist.ts b/ReallifeGamemode.Client/Player/weaponlist.ts index 1627b91e..49f640c0 100644 --- a/ReallifeGamemode.Client/Player/weaponlist.ts +++ b/ReallifeGamemode.Client/Player/weaponlist.ts @@ -44,7 +44,7 @@ export default function weaponList(globalData: IGlobalData) { //Weapon Menu - mp.events.add('showWeaponMenu', (primariesArr, secondariesArr, meleesArr, specialsArr, armorArr, jsonTime, pistol_Amount, pistol50_Amount, Pistol_mk2_Amount, Combatpistol_Amount, SMG_Amount, Carbinerifle_Amount, Compactrifle_Amount, sniperrifle_Amount, Pumpshotgun_Amount, Schutzweste_Amount, Stungun_Amount, CombatPDW_Amount, assaultrifle_Amount) => { + mp.events.add('showWeaponMenu', (primariesArr, secondariesArr, meleesArr, specialsArr, armorArr, jsonTime, jsonAmountInfos) => { if (!globalData.InMenu) { globalData.InMenu = true; @@ -118,45 +118,13 @@ export default function weaponList(globalData: IGlobalData) { function getWeaponStockMenu(parentMenu: NativeUI.Menu, ): NativeUI.Menu { var weaponStockMenu = new NativeUI.Menu("Bestand","", new Point(0, screenRes.y / 3), 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("Combat PDW"); - menuItem.SetRightLabel(CombatPDW_Amount); - weaponStockMenu.AddItem(menuItem); - var menuItem = new UIMenuItem("Carbinerifle"); - menuItem.SetRightLabel(Carbinerifle_Amount); - weaponStockMenu.AddItem(menuItem); - var menuItem = new UIMenuItem("Assaultrifle"); - menuItem.SetRightLabel(assaultrifle_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); + var amountInfos: { WeaponModel: string, Amount: number }[] = JSON.parse(jsonAmountInfos); + amountInfos.forEach(amount => { + var amountItem = new NativeUI.UIMenuItem(amount.WeaponModel); + amountItem.SetRightLabel(amount.Amount.toString()); + weaponStockMenu.AddItem(amountItem); + }); + weaponStockMenu.Visible = false; return weaponStockMenu; } diff --git a/ReallifeGamemode.Server/Events/Key.cs b/ReallifeGamemode.Server/Events/Key.cs index 2ad267b7..6520c391 100644 --- a/ReallifeGamemode.Server/Events/Key.cs +++ b/ReallifeGamemode.Server/Events/Key.cs @@ -359,19 +359,6 @@ namespace ReallifeGamemode.Server.Events List specials = new List(); List armor = 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; - int CombatPDW_Amount = 0; - int Assaultrifle_Amount = 0; string dealTime = "Starten"; primarys.Add("Keine"); secondarys.Add("Keine"); @@ -454,64 +441,31 @@ namespace ReallifeGamemode.Server.Events 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; - } - else if (weapon.WeaponModel == "assaultrifle") - { - Assaultrifle_Amount = weapon.Ammount; - } - else if (weapon.WeaponModel == "CombatPDW") - { - CombatPDW_Amount = weapon.Ammount; - } - } - } - player.TriggerEvent("showWeaponMenu", primarys.ToArray(), secondarys.ToArray(), melees.ToArray(), specials.ToArray(), armor.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(), CombatPDW_Amount.ToString(), Assaultrifle_Amount.ToString()); ; + List allWeapons = context.FactionWeapons.Select(w => w.WeaponModel).Distinct().ToList(); + List amountInfos = new List(); + + foreach (var weapon in allWeapons) + { + int amount = 0; + + var tempFactionWeapon = weapons.Where(f => f.WeaponModel == weapon).FirstOrDefault(); + if(tempFactionWeapon != null) + { + amount = tempFactionWeapon.Ammount; + } + + amountInfos.Add(new WeaponRackWeaponAmountInfo() + { + WeaponModel = weapon, + Amount = amount + }); + } + + + player.TriggerEvent("showWeaponMenu", primarys.ToArray(), secondarys.ToArray(), melees.ToArray(), specials.ToArray(), armor.ToArray(), JsonConvert.SerializeObject(timer.ToArray()), JsonConvert.SerializeObject(amountInfos)); + + } } if (nearestJailReleasePoint != null) {