This commit is contained in:
VegaZ
2021-04-15 22:43:43 +02:00
parent 98b5dc03f7
commit a95ec44baa
6 changed files with 75 additions and 33 deletions

View File

@@ -12,17 +12,56 @@ const Color = NativeUI.Color;
export default function ammunation(globalData: IGlobalData) { export default function ammunation(globalData: IGlobalData) {
var screenRes = mp.game.graphics.getScreenResolution(0, 0); var screenRes = mp.game.graphics.getScreenResolution(0, 0);
var weapons: Weapon[];
class Weapon { mp.events.add("AmmunationShop:LoadNativeUI", (weaponList: string) => {
mp.gui.chat.push("a "+ weaponList);
//mp.gui.chat.activate(false);
//globalData.InMenu = true;
weapons = JSON.parse(weaponList);
mp.gui.chat.push("b " +weapons.toString());
var menu = getAmmunationMenu();
//Schaut nach ob mindestens eine Waffe in weapons existiert welche die CategoryId beinhaltet
for (var c = 1; c < 9; c++) {
switch (c) {
case 1: {//Meelee
break;
}
case 2: {//Pistolen
if (weapons.find(w => w.CategoryId == c)) {
var pistolItem = new MenuItem("Pistolen", "",);
menu.AddItem(pistolItem);
menu.BindMenuToItem(getWeaponsFromCategory(menu, c, "Pistolen"),pistolItem);
}
break;
}
}
} }
mp.events.add("AmmunationShop:LoadNativeUI", (weapons: Weapon[]) => {
mp.gui.chat.activate(false);
globalData.InMenu = true;
mp.gui.chat.push(weapons.toString());
var ammunationMenu = new Menu("Ammunation", "", new Point(0, screenRes.y / 3), null, null);
}); });
function getAmmunationMenu(): NativeUI.Menu {
return new Menu("Ammunation", "", new Point(0, screenRes.y / 3), null, null);
}
function getWeaponsFromCategory(parentMenu: NativeUI.Menu, category: number, categoryName: string): NativeUI.Menu {
var categoryMenu = new Menu(categoryName, "", new Point(0, screenRes.y / 3), null, null);
var cWeapons: Weapon[] = weapons.filter(w => w.CategoryId == category);
cWeapons.forEach(weapon => {
var menuItem = new MenuItem(weapon.WeaponModel, "Munition: " + weapon.Ammo);
categoryMenu.AddItem(menuItem);
menuItem.SetRightLabel("~g~$~w~" + weapon.Price.toString());
})
return categoryMenu;
};
}; };

View File

@@ -78,8 +78,13 @@ declare type FactionRank = {
declare type Weapon = { declare type Weapon = {
WeaponModel: string; WeaponModel: string;
Category: number; CategoryId: number;
SlotID: number; SlotID: number;
Ammo: number; Ammo: number;
Price: number; Price: number;
} }
declare type WeaponCategory = {
Category: number;
Weapons: Weapon[];
}

View File

@@ -258,6 +258,9 @@ animationSync();
import antiCheat from './admin/anticheat'; import antiCheat from './admin/anticheat';
antiCheat(globalData); antiCheat(globalData);
import ammunation from './Interaction/ammunation/ammunation';
ammunation(globalData);
require('./Gui/policedepartment'); require('./Gui/policedepartment');
require('./Gui/helptext'); require('./Gui/helptext');

View File

@@ -518,9 +518,16 @@ namespace ReallifeGamemode.Server.Events
nearestFriseurPoint.friseurShop.LoadShopNUI(player); nearestFriseurPoint.friseurShop.LoadShopNUI(player);
} }
if (nearestAmmunationPoint != null) if (nearestAmmunationPoint != null)
{
if (!user.WeaponLicense)
{
player.SendNotification("~r~Du besitzt keinen Waffenschein");
}
else
{ {
nearestAmmunationPoint.Ammunation.LoadShopNUI(player); nearestAmmunationPoint.Ammunation.LoadShopNUI(player);
} }
}
if (user.FactionLeader) if (user.FactionLeader)
{ {
player.TriggerEvent("CLIENT:StartGangwar"); player.TriggerEvent("CLIENT:StartGangwar");

View File

@@ -283,11 +283,18 @@ namespace ReallifeGamemode.Server.Managers
NAPI.TextLabel.CreateTextLabel("24/7 - Dr\u00fccke ~y~E", s.Position, 7, 1, 0, new Color(255, 255, 255), false, 0); NAPI.TextLabel.CreateTextLabel("24/7 - Dr\u00fccke ~y~E", s.Position, 7, 1, 0, new Color(255, 255, 255), false, 0);
} }
foreach (AmmunationPoint s in AmmunationPoints) foreach (Ammunation s in ShopManager.Ammunations)
{ {
NAPI.Marker.CreateMarker(1, new Vector3(s.Position.X, s.Position.Y, s.Position.Z - 2), new Vector3(s.Position.X, s.Position.Y, s.Position.Z + 1), NAPI.Marker.CreateMarker(1, new Vector3(s.vector.X, s.vector.Y, s.vector.Z - 2), new Vector3(s.vector.X, s.vector.Y, s.vector.Z + 1),
new Vector3(0, 0, 0), 2, new Color(255, 255, 255, 50), false, 0); new Vector3(0, 0, 0), 2, new Color(255, 255, 255, 50), false, 0);
NAPI.TextLabel.CreateTextLabel("Ammunation - Dr\u00fccke ~y~E", s.Position, 7, 1, 0, new Color(255, 255, 255), false, 0); NAPI.TextLabel.CreateTextLabel("Ammunation - Dr\u00fccke ~y~E", s.vector, 7, 1, 0, new Color(255, 255, 255), false, 0);
AmmunationPoint ammuShop = new AmmunationPoint
{
Position = s.vector,
Ammunation = s
};
AmmunationPoints.Add(ammuShop);
} }
#endregion Shops #endregion Shops

View File

@@ -17,7 +17,7 @@ namespace ReallifeGamemode.Server.Shop.Ammunation
public Ammunation(Vector3 position) public Ammunation(Vector3 position)
{ {
this.vector = vector; this.vector = position;
LoadWeapons(); LoadWeapons();
} }
@@ -30,27 +30,8 @@ namespace ReallifeGamemode.Server.Shop.Ammunation
} }
public void LoadShopNUI(Player client) public void LoadShopNUI(Player client)
{ {
User u = client.GetUser();
if (u == null) List<Weapon> shopWeapons = weaponList.ToList();
{
return;
}
//List<Weapon> melee = weaponList.ToList().FindAll(w => w.Category == "Nahkampfwaffen"); //1
List<Weapon> handguns = weaponList.ToList().FindAll(w => w.CategoryId == 2); //2
//List<Weapon> smgs = weaponList.ToList().FindAll(w => w.Category == "Maschinenpistolen"); //3
//List<Weapon> shotguns = weaponList.ToList().FindAll(w => w.Category == "Schrotflinten"); //4
//List<Weapon> assaultrifles = weaponList.ToList().FindAll(w => w.Category == "Sturmgewehre"); //5
//List<Weapon> lmgs = weaponList.ToList().FindAll(w => w.Category == "Leichte Maschinengewehre"); //6
//List<Weapon> sniperrifles = weaponList.ToList().FindAll(w => w.Category == "Scharfschützengewehre"); //7
//List<Weapon> heavyweapons = weaponList.ToList().FindAll(w => w.Category == "Schwere Waffen"); //8
//List<Weapon> throwables = weaponList.ToList().FindAll(w => w.Category == "Werfbare Waffen"); //9
List<Array> shopWeapons = new List<Array>
{
handguns.ToArray(),
};
client.TriggerEvent("AmmunationShop:LoadNativeUI", JsonConvert.SerializeObject(shopWeapons)); client.TriggerEvent("AmmunationShop:LoadNativeUI", JsonConvert.SerializeObject(shopWeapons));
} }
} }