fix privatcar sell & and make something smarter

This commit is contained in:
Michael
2020-06-02 19:24:54 +02:00
parent 98a2f35613
commit 9f52b2b559
2 changed files with 39 additions and 98 deletions

View File

@@ -288,7 +288,7 @@ export default function (globalData: IGlobalData) {
if (vehData.length > 0) { if (vehData.length > 0) {
var factionVehicleItem = new UIMenuItem("Fahrzeuge Finden", "Finden"); var factionVehicleItem = new UIMenuItem("Fahrzeuge Finden", "Finden");
factionMenu.AddItem(factionVehicleItem); factionMenu.AddItem(factionVehicleItem);
factionMenu.BindMenuToItem(getVehiclesMenu(vehData, "CLIENT:InteractionMenu_FactionVehicleInteraction", !stateFaction, parentMenu), factionVehicleItem); factionMenu.BindMenuToItem(getVehiclesMenuFaction(vehData, "CLIENT:InteractionMenu_FactionVehicleInteraction", !stateFaction, parentMenu), factionVehicleItem);
} }
return factionMenu; return factionMenu;
@@ -302,17 +302,11 @@ export default function (globalData: IGlobalData) {
factionMenu.Visible = false; factionMenu.Visible = false;
if (vehData.length > 0) { if (vehData.length > 0) {
var factionVehicleItem = new UIMenuItem("Fahrzeuge Finden", "Finden"); var factionVehicleItem = new UIMenuItem("Fahrzeuge", "Finden oder Verkaufen");
factionMenu.AddItem(factionVehicleItem); factionMenu.AddItem(factionVehicleItem);
factionMenu.BindMenuToItem(getVehiclesMenu(vehData, "CLIENT:InteractionMenu_FactionVehicleInteraction", !stateFaction, parentMenu), 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) => { factionMenu.ItemSelect.on((item, index) => {
if (index === 0) { // Inviten if (index === 0) { // Inviten
@@ -380,12 +374,43 @@ export default function (globalData: IGlobalData) {
function getVehiclesMenu(vehicles: VehicleData[], eventName: string, allowSell: boolean, parentMenu: NativeUI.Menu): NativeUI.Menu { function getVehiclesMenu(vehicles: VehicleData[], eventName: string, allowSell: boolean, parentMenu: NativeUI.Menu): NativeUI.Menu {
var desc = "Finden"; var desc = "Finden";
if (allowSell) {
desc += " oder Verkaufen";
}
var menu = new Menu("Fahrzeuge", desc, new Point(50, 50), null, null);
var items: string[] = ["Finden", "Verkaufen"];
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 getVehiclesMenuFaction(vehicles: VehicleData[], eventName: string, allowSell: boolean, parentMenu: NativeUI.Menu): NativeUI.Menu {
var desc = "Finden";
var menu = new Menu("Fahrzeuge", desc, new Point(50, 50), null, null); var menu = new Menu("Fahrzeuge", desc, new Point(50, 50), null, null);
var items: string[] = ["Finden"]; var items: string[] = ["Finden"];
var collection = new ItemsCollection(items); var collection = new ItemsCollection(items);
vehicles.forEach(veh => { vehicles.forEach(veh => {
@@ -408,92 +433,6 @@ export default function (globalData: IGlobalData) {
return menu; return menu;
} }
function getVehiclesMenu2(vehicles: VehicleData[], eventName: string, allowSell: boolean, parentMenu: NativeUI.Menu): NativeUI.Menu {
var desc = "Verkaufen";
if (allowSell) {
desc;
}
var menu = new Menu("Fahrzeuge", desc, new Point(50, 50), null, null);
var items: string[] = ["Verkaufen"];
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;
if (selection === "Verkaufen") {
var confirmMenu = new Menu("Fahrzeug verkaufen", "Bist du sicher?", new Point(50, 50));
menu.Visible = false;
var descItem = new UIMenuItem("Willst du das Auto wirklich verkaufen?");
confirmMenu.AddItem(descItem);
var priceItem = new UIMenuItem("Verkaufspreis");
priceItem.SetRightLabel("~g~$ " + moneyFormat(vehicles.find(x => x.Id == id).Price));
confirmMenu.AddItem(priceItem);
var yesItem = new UIMenuItem("Verkaufen");
yesItem.BackColor = new Color(0, 100, 0);
yesItem.HighlightedBackColor = new Color(0, 150, 0);
confirmMenu.AddItem(yesItem);
var cancelItem = new UIMenuItem("Abbrechen");
cancelItem.BackColor = new Color(213, 0, 0);
cancelItem.HighlightedBackColor = new Color(229, 57, 53);
confirmMenu.AddItem(cancelItem);
confirmMenu.Open();
var closing = false;
confirmMenu.ItemSelect.on((item, index) => {
if (item != yesItem && item != cancelItem) {
return;
}
if (item == yesItem) {
mp.events.callRemote(eventName, id, selection);
confirmMenu.Close();
parentMenu.Close(true);
closing = true;
return;
}
confirmMenu.Close();
menu.Visible = true;
});
confirmMenu.MenuClose.on(() => {
if (closing) {
return;
}
menu.Visible = true;
})
return;
}
mp.events.callRemote(eventName, id, selection);
parentMenu.Close(true);
});
return menu;
}
function getTicketMenu(ticket_amount: number, parentMenu: NativeUI.Menu): NativeUI.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); 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")); ticketMenu.AddItem(new UIMenuItem("Ticket annehmen"));

View File

@@ -610,8 +610,7 @@ namespace ReallifeGamemode.Server.Managers
string nameOrId = (string)JsonConvert.DeserializeObject(jsonNameOrId); string nameOrId = (string)JsonConvert.DeserializeObject(jsonNameOrId);
int amount = Int32.Parse(stringAmount); int amount = Int32.Parse(stringAmount);
Player target = PlayerService.GetPlayerByNameOrId(nameOrId); Player target = PlayerService.GetPlayerByNameOrId(nameOrId);
string playername = NAPI.Player.GetPlayerName(player);
string targetname = NAPI.Player.GetPlayerName(target);
if (target == null || !target.IsLoggedIn()) if (target == null || !target.IsLoggedIn())
{ {
ChatService.PlayerNotFound(player); ChatService.PlayerNotFound(player);
@@ -623,6 +622,9 @@ namespace ReallifeGamemode.Server.Managers
} }
else else
{ {
string playername = NAPI.Player.GetPlayerName(player);
string targetname = NAPI.Player.GetPlayerName(target);
if (amount > 0 && amount <= 5000) if (amount > 0 && amount <= 5000)
{ {
player.SendNotification($"~w~Du hast ~y~{targetname} ~w~ ${amount} gegeben."); player.SendNotification($"~w~Du hast ~y~{targetname} ~w~ ${amount} gegeben.");