From 9f52b2b559a01d464d0bb4f01346fd1576fee380 Mon Sep 17 00:00:00 2001 From: Michael Date: Tue, 2 Jun 2020 19:24:54 +0200 Subject: [PATCH] fix privatcar sell & and make something smarter --- .../Interaction/interactionmenu.ts | 131 +++++------------- .../Managers/InteractionManager.cs | 6 +- 2 files changed, 39 insertions(+), 98 deletions(-) diff --git a/ReallifeGamemode.Client/Interaction/interactionmenu.ts b/ReallifeGamemode.Client/Interaction/interactionmenu.ts index eaa5fd12..5c752e4c 100644 --- a/ReallifeGamemode.Client/Interaction/interactionmenu.ts +++ b/ReallifeGamemode.Client/Interaction/interactionmenu.ts @@ -288,7 +288,7 @@ export default function (globalData: IGlobalData) { if (vehData.length > 0) { var factionVehicleItem = new UIMenuItem("Fahrzeuge Finden", "Finden"); 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; @@ -302,17 +302,11 @@ export default function (globalData: IGlobalData) { factionMenu.Visible = false; if (vehData.length > 0) { - var factionVehicleItem = new UIMenuItem("Fahrzeuge Finden", "Finden"); + var factionVehicleItem = new UIMenuItem("Fahrzeuge", "Finden oder Verkaufen"); 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 @@ -380,12 +374,43 @@ 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", "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 items: string[] = ["Finden"]; - var collection = new ItemsCollection(items); vehicles.forEach(veh => { @@ -407,93 +432,7 @@ export default function (globalData: IGlobalData) { 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 { 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")); diff --git a/ReallifeGamemode.Server/Managers/InteractionManager.cs b/ReallifeGamemode.Server/Managers/InteractionManager.cs index 7ef938e0..61a36e97 100644 --- a/ReallifeGamemode.Server/Managers/InteractionManager.cs +++ b/ReallifeGamemode.Server/Managers/InteractionManager.cs @@ -610,8 +610,7 @@ namespace ReallifeGamemode.Server.Managers string nameOrId = (string)JsonConvert.DeserializeObject(jsonNameOrId); int amount = Int32.Parse(stringAmount); Player target = PlayerService.GetPlayerByNameOrId(nameOrId); - string playername = NAPI.Player.GetPlayerName(player); - string targetname = NAPI.Player.GetPlayerName(target); + if (target == null || !target.IsLoggedIn()) { ChatService.PlayerNotFound(player); @@ -623,6 +622,9 @@ namespace ReallifeGamemode.Server.Managers } else { + string playername = NAPI.Player.GetPlayerName(player); + string targetname = NAPI.Player.GetPlayerName(target); + if (amount > 0 && amount <= 5000) { player.SendNotification($"~w~Du hast ~y~{targetname} ~w~ ${amount} gegeben.");