add interactionmenu find cars as member & add funcation give money

This commit is contained in:
Michael
2020-06-02 14:40:54 +02:00
parent 499dced44e
commit 32540c4aa9
3 changed files with 167 additions and 11 deletions

View File

@@ -21,7 +21,9 @@ export default function (globalData: IGlobalData) {
var serviceItem = new UIMenuItem("Service rufen", "Rufe einen Dienstleister an");
var factionItem = new UIMenuItem("Fraktion", "Verwalte deine Fraktion");
var factionItem = new UIMenuItem("Fraktion", "Fraktionsfahrzeug finden");
var factionleaderItem = new UIMenuItem("Fraktion", "Verwalte deine Fraktion");
var groupItem = new UIMenuItem("Gruppe", "Verwalte deine Gruppe");
@@ -33,7 +35,9 @@ export default function (globalData: IGlobalData) {
var ticketItem = new UIMenuItem("Strafticket", "Strafticket annehmen/ablehnen");
mp.events.add("SERVER:InteractionMenu_OpenMenu", (accountDataJson: string, faction: string, group: string, factionInvite: boolean, groupInvite: boolean, ticket_boolean: boolean, ticket_amount) => {
var payName: string;
mp.events.add("SERVER:InteractionMenu_OpenMenu", (accountDataJson: string, factionleader: string, faction: string, group: string, factionInvite: boolean, groupInvite: boolean, ticket_boolean: boolean, ticket_amount, pay_amount) => {
var accountData: AccountData = JSON.parse(accountDataJson);
@@ -57,11 +61,16 @@ export default function (globalData: IGlobalData) {
menu.BindMenuToItem(getVehiclesMenu(vehicles, "CLIENT:InteractionMenu_PlayerVehicleInteraction", true, menu), vehiclesItem);
}
if (faction) {
if (faction && !factionleader) {
factionItem.SetRightLabel(faction);
menu.AddItem(factionItem);
menu.BindMenuToItem(getFactionMenu(faction, accountData.factionVehicles, accountData.stateFaction, menu), factionItem);
}
if (faction && factionleader) {
factionleaderItem.SetRightLabel(factionleader);
menu.AddItem(factionleaderItem);
menu.BindMenuToItem(getFactionLeaderMenu(faction, accountData.factionVehicles, accountData.stateFaction, menu), factionleaderItem);
}
if (group) {
groupItem.SetRightLabel(group);
@@ -69,6 +78,9 @@ export default function (globalData: IGlobalData) {
menu.BindMenuToItem(getGroupMenu(group, menu), groupItem);
}
if (accountData.paycheck) {
var p = accountData.paycheck;
var paycheckMenu = new Menu("Gehaltsscheck", "Dein Verdienst der letzten Stunde", new Point(50, 50), null, null);
@@ -112,6 +124,9 @@ export default function (globalData: IGlobalData) {
menu.BindMenuToItem(paycheckMenu, paycheckItem);
}
var payItem = new UIMenuItem("Geld geben");
menu.AddItem(payItem);
var nextPaydayItem = new UIMenuItem("Nächster PayDay");
nextPaydayItem.SetRightLabel(`${accountData.nextPayday} Minuten`);
menu.AddItem(nextPaydayItem);
@@ -138,6 +153,17 @@ export default function (globalData: IGlobalData) {
if (item === acceptItem) {
mp.events.callRemote("CLIENT:InteractionMenu_AcceptInvite", acceptItem.SelectedValue);
menu.Close(true);
} else if (item === payItem) {
mp.gui.chat.activate(true);
mp.gui.cursor.show(true, true);
globalData.InMenu = false;
var input = new InputHelper("Welchem Spieler möchtest du Geld geben (Name / ID)?", globalData);
input.show();
input.getValue(name => {
mp.events.call("CLIENT:InteractionMenu_Pay_Name", name);
menu.Close(true);
mp.gui.cursor.show(false, false);
});
}
});
@@ -253,17 +279,41 @@ export default function (globalData: IGlobalData) {
}
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.Visible = false;
if (vehData.length > 0) {
var factionVehicleItem = new UIMenuItem("Fahrzeuge Finden", "Finden");
factionMenu.AddItem(factionVehicleItem);
factionMenu.BindMenuToItem(getVehiclesMenu(vehData, "CLIENT:InteractionMenu_FactionVehicleInteraction", !stateFaction, parentMenu), factionVehicleItem);
}
return factionMenu;
}
function getFactionLeaderMenu(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");
var factionVehicleItem = new UIMenuItem("Fahrzeuge Finden", "Finden");
factionMenu.AddItem(factionVehicleItem);
factionMenu.BindMenuToItem(getVehiclesMenu(vehData, "CLIENT:InteractionMenu_FactionVehicleInteraction", !stateFaction, parentMenu), factionVehicleItem);
}
if (vehData.length > 0) {
var factionVehicleItem2 = new UIMenuItem("Fahrzeuge Verkaufen", "Verkaufen");
factionMenu.AddItem(factionVehicleItem2);
factionMenu.BindMenuToItem(getVehiclesMenu2(vehData, "CLIENT:InteractionMenu_FactionVehicleInteractionSell", !stateFaction, parentMenu), factionVehicleItem2);
}
factionMenu.ItemSelect.on((item, index) => {
if (index === 0) { // Inviten
var input = new InputHelper("Welchen Spieler möchtest du inviten (Name / ID)?", globalData);
@@ -330,17 +380,42 @@ export default function (globalData: IGlobalData) {
function getVehiclesMenu(vehicles: VehicleData[], eventName: string, allowSell: boolean, parentMenu: NativeUI.Menu): NativeUI.Menu {
var desc = "Finden";
if (allowSell) {
desc += " oder Verkaufen";
}
var menu = new Menu("Fahrzeuge", desc, new Point(50, 50), null, null);
var items: string[] = ["Finden"];
var collection = new ItemsCollection(items);
vehicles.forEach(veh => {
var name: string = mp.game.ui.getLabelText(mp.game.vehicle.getDisplayNameFromVehicleModel(veh.Model));
var item = new UIMenuListItem(`${veh.Id.toString().padEnd(5)} | ${name}`, "", collection, null, { id: veh.Id });
menu.AddItem(item);
});
menu.ItemSelect.on((item: NativeUI.UIMenuListItem, index: number) => {
var id = item.Data.id;
var selection = item.SelectedValue;
mp.events.callRemote(eventName, id, selection);
parentMenu.Close(true);
});
return menu;
}
function getVehiclesMenu2(vehicles: VehicleData[], eventName: string, allowSell: boolean, parentMenu: NativeUI.Menu): NativeUI.Menu {
var desc = "";
if (allowSell) {
items.push("Verkaufen");
desc += " Verkaufen";
}
var menu = new Menu("Fahrzeuge", desc, new Point(50, 50), null, null);
var items: string[] = ["Verkaufen"];
var collection = new ItemsCollection(items);
@@ -418,6 +493,7 @@ export default function (globalData: IGlobalData) {
return menu;
}
function getTicketMenu(ticket_amount: number, parentMenu: NativeUI.Menu): NativeUI.Menu {
var ticketMenu = new NativeUI.Menu("Ticket", `Ticket in Höhe von ${ticket_amount}$`, new Point(50, 50), null, null);
ticketMenu.AddItem(new UIMenuItem("Ticket annehmen"));
@@ -440,4 +516,14 @@ export default function (globalData: IGlobalData) {
return ticketMenu;
}
mp.events.add("CLIENT:InteractionMenu_Pay_Name", (name) => {
payName = name;
var input = new InputHelper("Wie viel?", globalData);
mp.gui.cursor.show(true, true);
input.show();
input.getValue(amount => {
mp.events.callRemote("CLIENT:InteractionMenu_Pay", JSON.stringify(payName), amount);
mp.gui.cursor.show(false, false);
});
});
}