auto verkaufen

This commit is contained in:
hydrant
2020-04-02 22:29:27 +02:00
parent 85cd638a4c
commit a8994d9e4a
4 changed files with 92 additions and 10 deletions

View File

@@ -29,6 +29,7 @@ export default function (globalData: IGlobalData) {
var licenseItem = new UIMenuItem("Lizenzen", "Lizenzen Informationen");
var vehiclesItem = new UIMenuItem("Fahrzeuge", "Zeige deine Fahrzeuge an");
mp.events.add("SERVER:InteractionMenu_OpenMenu", (accountDataJson: string, faction: string, group: string, factionInvite: boolean, groupInvite: boolean) => {
var accountData: AccountData = JSON.parse(accountDataJson);
@@ -45,6 +46,12 @@ export default function (globalData: IGlobalData) {
menu.AddItem(licenseItem);
menu.BindMenuToItem(getLicenseMenu(accountData.licenses, menu), licenseItem);
var vehicles = accountData.vehicles;
if (vehicles.length > 0) {
menu.AddItem(vehiclesItem);
menu.BindMenuToItem(getVehiclesMenu(vehicles, menu), vehiclesItem);
}
if (faction) {
factionItem.SetRightLabel(faction);
menu.AddItem(factionItem);
@@ -106,7 +113,7 @@ export default function (globalData: IGlobalData) {
menu.ItemSelect.on((item: NativeUI.UIMenuItem, index: number) => {
if (item === acceptItem) {
mp.events.callRemote("CLIENT:InteractionMenu_AcceptInvite", acceptItem.SelectedValue);
menu.Close();
menu.Close(true);
}
});
@@ -199,7 +206,7 @@ export default function (globalData: IGlobalData) {
input.show();
input.getValue(name => {
mp.events.callRemote("CLIENT:InteractionMenu_Show", "License", name);
parentMenu.Close();
parentMenu.Close(true);
});
}
@@ -278,4 +285,30 @@ 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);
menu.Visible = false;
var collection = new ItemsCollection(["Finden", "Verkaufen"]);
vehicles.forEach(veh => {
var name: string = mp.game.vehicle.getDisplayNameFromVehicleModel(veh.Model);
var item = new UIMenuListItem(`${veh.Id.toString().padEnd(4)} | ${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("CLIENT:InteractionMenu_VehicleInteraction", id, selection);
parentMenu.Close(true);
});
return menu;
}
}

View File

@@ -1,4 +1,4 @@
declare interface IGlobalData {
declare type IGlobalData = {
InTuning: boolean,
HideGui: boolean,
InMenu: boolean,
@@ -7,7 +7,7 @@
InInput: boolean
}
declare interface AccountData {
declare type AccountData = {
regDate: string;
adminLevel: string;
faction: string;
@@ -17,9 +17,15 @@ declare interface AccountData {
job: string;
paycheck: Paycheck;
licenses: Licenses;
vehicles: VehicleData[];
}
declare interface Paycheck {
declare type VehicleData = {
Id: number;
Model: number;
};
declare type Paycheck = {
financialHelp: number;
financialInterest: number;
vehicleTaxation: number;
@@ -29,18 +35,18 @@ declare interface Paycheck {
rentalFees: number;
}
declare interface Licenses {
declare type Licenses = {
drivingLicenseCar: boolean;
drivingLicenseBike: boolean;
flightLicensePlane: boolean;
weaponLicense: boolean;
}
declare interface FactionRanks {
declare type FactionRanks = {
factionId: number,
ranks: FactionRank[]
}
declare interface FactionRank {
declare type FactionRank = {
}