From a2d6039736134993053d7d024f195827a9452d3f Mon Sep 17 00:00:00 2001 From: VegaZ Date: Thu, 8 Apr 2021 00:20:52 +0200 Subject: [PATCH] =?UTF-8?q?Move=20Job=20Infos=20Interaktionsmen=C3=BC=20in?= =?UTF-8?q?=20eigenes=20Men=C3=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Interaction/interactionmenu.ts | 74 +++++++++++++++++-- ReallifeGamemode.Client/global.d.ts | 10 ++- ReallifeGamemode.Server/Events/Key.cs | 11 ++- 3 files changed, 86 insertions(+), 9 deletions(-) diff --git a/ReallifeGamemode.Client/Interaction/interactionmenu.ts b/ReallifeGamemode.Client/Interaction/interactionmenu.ts index d664ecf3..53eddcd8 100644 --- a/ReallifeGamemode.Client/Interaction/interactionmenu.ts +++ b/ReallifeGamemode.Client/Interaction/interactionmenu.ts @@ -27,6 +27,8 @@ export default function (globalData: IGlobalData) { var groupItem = new UIMenuItem("Gruppe", "Verwalte deine Gruppe"); + var jobItem = new UIMenuItem("Job", "Infos zu deinem Job"); + var paycheckItem = new UIMenuItem("Gehaltsscheck", "Schaue dir deinen Verdienst der letzten Stunde an"); var licenseItem = new UIMenuItem("Lizenzen", "Lizenzen Informationen"); @@ -41,10 +43,11 @@ export default function (globalData: IGlobalData) { var groupRank = null; - mp.events.add("SERVER:InteractionMenu_OpenMenu", (accountDataJson: string, factionleader: string, faction: string, group: string, factionInvite: boolean, groupInvite: boolean, ticket_boolean: boolean, ticket_amount, house: boolean) => { + mp.events.add("SERVER:InteractionMenu_OpenMenu", (accountDataJson: string, factionleader: string, jobDataJson: string, faction: string, group: string, factionInvite: boolean, groupInvite: boolean, ticket_boolean: boolean, ticket_amount, house: boolean) => { var accountData: AccountData = JSON.parse(accountDataJson); + var jobData: JobData = JSON.parse(jobDataJson); //var ticket_amount = JSON.parse(ticket_amountJson); var menu = getInteractionMenu(); @@ -77,6 +80,8 @@ export default function (globalData: IGlobalData) { menu.AddItem(factionleaderItem); menu.BindMenuToItem(getFactionLeaderMenu(faction, accountData.factionVehicles, accountData.stateFaction, menu), factionleaderItem); } + menu.AddItem(jobItem); + menu.BindMenuToItem(getJobMenu(jobData, menu), jobItem); if (group) { groupItem.SetRightLabel(group); @@ -206,11 +211,7 @@ export default function (globalData: IGlobalData) { menuItem = new UIMenuItem("Fraktionsrang"); menuItem.SetRightLabel(data.factionRank); accountMenu.AddItem(menuItem); - } - - menuItem = new UIMenuItem("Job"); - menuItem.SetRightLabel(data.job); - accountMenu.AddItem(menuItem); + } if (data.group != null) { menuItem = new UIMenuItem("Gruppe"); @@ -365,6 +366,67 @@ export default function (globalData: IGlobalData) { return factionMenu; } + function getJobMenu(jobdata: JobData, parentMenu: NativeUI.Menu): NativeUI.Menu { + var jobMenu = new NativeUI.Menu("Job", "Job Infos / Skillpunkte", new Point(0, screenRes.y / 3), null, null); + + var pilotLevel; + var busLevel; + + if (jobdata.pilotskill >= 300) { + pilotLevel = 2; + } else { + pilotLevel = 1; + } + + if (jobdata.busskill >= 800) { + busLevel = 3; + } else if (jobdata.busskill >= 300) { + busLevel = 2; + } else { + busLevel = 1; + } + + var actJobItem = new UIMenuItem("Aktueller Job:"); + actJobItem.SetRightLabel(jobdata.job) + jobMenu.AddItem(actJobItem); + + var pilotSkillItem = new UIMenuItem("Pilot Skill (LVL " + pilotLevel + ")"); + switch (pilotLevel) { + case 1: + pilotSkillItem.SetRightLabel(jobdata.pilotskill + "/300") + break; + case 2: + pilotSkillItem.SetRightLabel(jobdata.pilotskill + "/MAX") + break; + } + jobMenu.AddItem(pilotSkillItem); + + var busSkillItem = new UIMenuItem("Bus Skill (LVL " + busLevel + ")"); + switch (busLevel) { + case 1: + busSkillItem.SetRightLabel(jobdata.busskill + "/300") + break; + case 2: + busSkillItem.SetRightLabel(jobdata.busskill + "/800") + break; + case 3: + busSkillItem.SetRightLabel(jobdata.busskill + "/MAX") + break; + } + jobMenu.AddItem(busSkillItem); + + var wageItem = new UIMenuItem("Verdienst"); + if (jobdata.wage > 0) { + wageItem.SetRightLabel("~g~$" + jobdata.wage.toString()) + } else { + wageItem.SetRightLabel("$" + jobdata.wage.toString()) + } + jobMenu.AddItem(wageItem); + jobMenu.Visible = false; + mp.gui.chat.show(false); + return jobMenu; + } + function getGroupMenu(group: string, parentMenu: NativeUI.Menu): NativeUI.Menu { var groupMenu = new NativeUI.Menu("Gruppe", group, new Point(0, screenRes.y / 3), null, null); if (groupRank == "Manager" || groupRank == "Besitzer") groupMenu.AddItem(new UIMenuItem("Spieler einladen")); diff --git a/ReallifeGamemode.Client/global.d.ts b/ReallifeGamemode.Client/global.d.ts index 266c36d6..118dc77c 100644 --- a/ReallifeGamemode.Client/global.d.ts +++ b/ReallifeGamemode.Client/global.d.ts @@ -14,7 +14,6 @@ declare type AccountData = { factionRank: string; group: string; groupRank: string; - job: string; paycheck: Paycheck; licenses: Licenses; vehicles: VehicleData[]; @@ -25,6 +24,13 @@ declare type AccountData = { userWarn: number; } +declare type JobData = { + job: string; + busskill: number; + pilotskill: number; + wage: number; +} + declare type VehicleData = { Id: number; Model: number; @@ -44,6 +50,8 @@ declare type Paycheck = { otheramount: number; } + + declare type Licenses = { drivingLicenseCar: boolean; drivingLicenseBike: boolean; diff --git a/ReallifeGamemode.Server/Events/Key.cs b/ReallifeGamemode.Server/Events/Key.cs index 8cba9c05..40621ae1 100644 --- a/ReallifeGamemode.Server/Events/Key.cs +++ b/ReallifeGamemode.Server/Events/Key.cs @@ -152,7 +152,6 @@ namespace ReallifeGamemode.Server.Events factionRank = u.GetFactionRank().RankName, group = u.Group?.Name ?? "Keine", groupRank = u.GroupRank.GetName(), - job = JobManager.GetJob(u.JobId ?? 0)?.Name ?? "Keiner", paycheck, licenses, vehicles, @@ -162,6 +161,14 @@ namespace ReallifeGamemode.Server.Events userWarn = u.warn, }; + var jobData = new + { + job = JobManager.GetJob(u.JobId ?? 0)?.Name ?? "Keiner", + busskill = u.BusSkill, + pilotskill = u.PilotSkill, + wage = u.Wage, + }; + string faction = u.Faction?.Name ?? "Zivilist"; string factionleader = u.FactionLeader ? u.Faction.Name : null; string group = u.Group != null ? u.Group.Name : null; @@ -187,7 +194,7 @@ namespace ReallifeGamemode.Server.Events pay_amount = player.GetData("pay_amount"); } - player.TriggerEvent("SERVER:InteractionMenu_OpenMenu", JsonConvert.SerializeObject(accountData), factionleader, faction, group, factionInvite, groupInvite, ticket_boolean, ticket_amount, pay_amount, house); + player.TriggerEvent("SERVER:InteractionMenu_OpenMenu", JsonConvert.SerializeObject(accountData), factionleader, JsonConvert.SerializeObject(jobData), faction, group, factionInvite, groupInvite, ticket_boolean, ticket_amount, pay_amount, house); } [RemoteEvent("keyPress:E")]