frakcar sellen

This commit is contained in:
hydrant
2020-05-06 21:56:54 +02:00
parent ce0eac5967
commit 89e341a4cd
10 changed files with 1952 additions and 14 deletions

View File

@@ -54,13 +54,13 @@ export default function (globalData: IGlobalData) {
var vehicles = accountData.vehicles;
if (vehicles.length > 0) {
menu.AddItem(vehiclesItem);
menu.BindMenuToItem(getVehiclesMenu(vehicles, menu), vehiclesItem);
menu.BindMenuToItem(getVehiclesMenu(vehicles, "CLIENT:InteractionMenu_PlayerVehicleInteraction", true, menu), vehiclesItem);
}
if (faction) {
factionItem.SetRightLabel(faction);
menu.AddItem(factionItem);
menu.BindMenuToItem(getFactionMenu(faction, menu), factionItem);
menu.BindMenuToItem(getFactionMenu(faction, accountData.factionVehicles, accountData.stateFaction, menu), factionItem);
}
if (group) {
@@ -252,12 +252,18 @@ export default function (globalData: IGlobalData) {
return licenseMenu;
}
function getFactionMenu(faction: string, parentMenu: NativeUI.Menu): NativeUI.Menu {
function getFactionMenu(faction: string, vehData: VehicleData[], stateFaction: boolean, parentMenu: NativeUI.Menu): NativeUI.Menu {
var factionMenu = new NativeUI.Menu("Fraktion", faction, new Point(50, 50), null, null);
factionMenu.AddItem(new UIMenuItem("Spieler einladen"));
factionMenu.AddItem(new UIMenuItem("Spieler rauswerfen"));
factionMenu.Visible = false;
if (vehData.length > 0) {
var factionVehicleItem = new UIMenuItem("Fraktionsfahrzeuge", "Finden oder verkaufen");
factionMenu.AddItem(factionVehicleItem);
factionMenu.BindMenuToItem(getVehiclesMenu(vehData, "CLIENT:InteractionMenu_FactionVehicleInteraction", !stateFaction, parentMenu), factionVehicleItem);
}
factionMenu.ItemSelect.on((item, index) => {
if (index === 0) { // Inviten
var input = new InputHelper("Welchen Spieler möchtest du inviten (Name / ID)?", globalData);
@@ -322,15 +328,26 @@ export default function (globalData: IGlobalData) {
return servicesMenu;
}
function getVehiclesMenu(vehicles: VehicleData[], parentMenu: NativeUI.Menu): NativeUI.Menu {
var menu = new Menu("Fahrzeuge", "Finde oder verkaufe deine Fahrzeuge", new Point(50, 50), null, null);
function getVehiclesMenu(vehicles: VehicleData[], eventName: string, allowSell: boolean, parentMenu: NativeUI.Menu): NativeUI.Menu {
var desc = "Finden";
if (allowSell) {
desc += " oder Verkaufen";
}
var collection = new ItemsCollection(["Finden", "Verkaufen"]);
var menu = new Menu("Fahrzeuge", desc, new Point(50, 50), null, null);
var items: string[] = ["Finden"];
if (allowSell) {
items.push("Verkaufen");
}
var collection = new ItemsCollection(items);
vehicles.forEach(veh => {
var name: string = mp.game.vehicle.getDisplayNameFromVehicleModel(veh.Model);
var name: string = mp.game.ui.getLabelText(mp.game.vehicle.getDisplayNameFromVehicleModel(veh.Model));
var item = new UIMenuListItem(`${veh.Id.toString().padEnd(4)} | ${name}`, "", collection, null, { id: veh.Id });
var item = new UIMenuListItem(`${veh.Id.toString().padEnd(5)} | ${name}`, "", collection, null, { id: veh.Id });
menu.AddItem(item);
});
@@ -371,7 +388,7 @@ export default function (globalData: IGlobalData) {
}
if (item == yesItem) {
mp.events.callRemote("CLIENT:InteractionMenu_VehicleInteraction", id, selection);
mp.events.callRemote(eventName, id, selection);
confirmMenu.Close();
parentMenu.Close(true);
closing = true;
@@ -393,7 +410,7 @@ export default function (globalData: IGlobalData) {
return;
}
mp.events.callRemote("CLIENT:InteractionMenu_VehicleInteraction", id, selection);
mp.events.callRemote(eventName, id, selection);
parentMenu.Close(true);
});