From f4e7aa619cef2d3ffb2e57b1e7caaf60dae03e34 Mon Sep 17 00:00:00 2001 From: kookroach Date: Thu, 8 Apr 2021 01:56:56 +0200 Subject: [PATCH 1/2] [HOTFIX] v0.0.3-h1 fix bug at LSED checkpoint fix Message for Cops --- .../Interaction/factioninteraction.ts | 45 +++++++------------ ReallifeGamemode.Server/Events/Death.cs | 19 ++++---- ReallifeGamemode.Server/Gangwar/Turf.cs | 10 +++-- 3 files changed, 34 insertions(+), 40 deletions(-) diff --git a/ReallifeGamemode.Client/Interaction/factioninteraction.ts b/ReallifeGamemode.Client/Interaction/factioninteraction.ts index facb710b..22948bf8 100644 --- a/ReallifeGamemode.Client/Interaction/factioninteraction.ts +++ b/ReallifeGamemode.Client/Interaction/factioninteraction.ts @@ -35,9 +35,7 @@ export default function factionInteraction(globalData: IGlobalData) { var reviveTaskMenuMedic; var insDate; /*mp.events.add("updateFactionBlips", (type, taskList) => { - }); - });*/ mp.events.add("showFactionInteractionLSPD", (userFactionId, isDuty, userFactionName, isFactionLeader) => { //LSPD @@ -64,8 +62,6 @@ export default function factionInteraction(globalData: IGlobalData) { TaskMenuLSPD.SetRightLabel(""); factionInteractionMenu.AddItem(TaskMenuLSPD);*/ //weiteres - - let cancelItem = new UIMenuItem("Schlie\u00dfen", "Schlie\u00dft die Fraktionsinteraktion."); cancelItem.BackColor = new Color(213, 0, 0); cancelItem.HighlightedBackColor = new Color(229, 57, 53); @@ -108,7 +104,7 @@ export default function factionInteraction(globalData: IGlobalData) { factionInteractionMenu.Visible = false; mp.gui.chat.activate(true); globalData.InMenu = false; - mp.events.callRemote("CLIENT:wantedlist"); + mp.events.callRemote("CLIENT:wantedlist"); break; } }); @@ -172,7 +168,6 @@ export default function factionInteraction(globalData: IGlobalData) { var wList; mp.events.add("showWantedlist", (playersJson) => { - if (wantedlistBrowser !== null) { wantedlistBrowser.destroy(); wantedlistBrowser = null; @@ -193,7 +188,6 @@ export default function factionInteraction(globalData: IGlobalData) { }); mp.events.add("removeWantedlist", () => { - if (wantedlistBrowser == null) { return; } @@ -212,7 +206,6 @@ export default function factionInteraction(globalData: IGlobalData) { mp.gui.chat.activate(false); globalData.InMenu = true; - var rPM = ((reviveTaskCountMedic === "0") ? "~r~" : "~g~"); var hPM = ((healTaskCountMedic === "0") ? "~r~" : "~g~"); var fPM = ((fireTaskCountMedic === "0") ? "~r~" : "~g~"); @@ -236,9 +229,8 @@ export default function factionInteraction(globalData: IGlobalData) { /*fireTaskMenuMedic = new UIMenuItem("Feuerauftr\u00e4ge"); //wenn die funktion dafür vorhanden ist wird das wieder eingebunden fireTaskMenuMedic.SetRightLabel(fPM + fireTaskCountMedic); - factionInteractionMenu.AddItem(fireTaskMenuMedic); + factionInteractionMenu.AddItem(fireTaskMenuMedic); */ - } } @@ -277,9 +269,7 @@ export default function factionInteraction(globalData: IGlobalData) { }); }); - mp.events.add("showMedicTasks", (type, taskList) => { - tasks = JSON.parse(taskList); //mp.events.call("sortFactionTasks", false); @@ -316,12 +306,12 @@ export default function factionInteraction(globalData: IGlobalData) { mp.events.callRemote("updateMedicTask", 0, tasks[index].Victim); mp.game.ui.setNewWaypoint(tasks[index].Position.x, tasks[index].Position.y); activeCheckpoint = mp.checkpoints.new(1, new mp.Vector3(tasks[index].Position.x, tasks[index].Position.y, tasks[index].Position.z - 2), 3.0, - { + { direction: new mp.Vector3(tasks[index].Position.x, tasks[index].Position.y, tasks[index].Position.z - 5), color: [255, 0, 0, 150], visible: true, dimension: 0 - }); + }); reviveTaskMenuMedic.Close(); mp.gui.chat.activate(true); globalData.InMenu = false; @@ -370,12 +360,12 @@ export default function factionInteraction(globalData: IGlobalData) { mp.events.callRemote("updateMedicTask", 1, tasks[index].Victim); mp.game.ui.setNewWaypoint(tasks[index].Position.x, tasks[index].Position.y); activeCheckpoint = mp.checkpoints.new(1, new mp.Vector3(tasks[index].Position.x, tasks[index].Position.y, tasks[index].Position.z - 2), 3.0, - { - direction: new mp.Vector3(tasks[index].Position.x, tasks[index].Position.y, tasks[index].Position.z - 5), - color: [255, 0, 0, 150], - visible: true, - dimension: 0 - }); + { + direction: new mp.Vector3(tasks[index].Position.x, tasks[index].Position.y, tasks[index].Position.z - 5), + color: [255, 0, 0, 150], + visible: true, + dimension: 0 + }); healTaskMenuMedic.Close(); mp.gui.chat.activate(true); globalData.InMenu = false; @@ -423,7 +413,7 @@ export default function factionInteraction(globalData: IGlobalData) { mp.events.call("showMedicTasks", 0, JSON.stringify(initTasks)); break; - case 1: //Sortierung nach Metern (aufsteigend) + case 1: //Sortierung nach Metern (aufsteigend) for (var d = 0; d < tasks.length; d++) { for (var e = 0; e < tasks.length - 1; e++) { if (getDistance1(e) > getDistance2(e + 1)) { @@ -440,7 +430,7 @@ export default function factionInteraction(globalData: IGlobalData) { mp.events.call("showMedicTasks", 0, JSON.stringify(tasks)); break; - //case 2: //Sortierung nach Metern (absteigend) + //case 2: //Sortierung nach Metern (absteigend) // mp.gui.chat.push("Sorting 2"); // sortText = "Entfernung absteigend"; // break; @@ -468,13 +458,13 @@ export default function factionInteraction(globalData: IGlobalData) { deadRespawned = true; }); - mp.events.add("destroyMedicTaskCheckpoint", () => { - if (activeCheckpoint) { - activeCheckpoint.destroy(); + mp.events.add("destroyMedicTaskCheckpoint", () => { + if (activeCheckpoint && mp.checkpoints.exists(activeCheckpoint)) { + activeCheckpoint.destroy(); activeCheckpoint = null; activeTask = null; timeLeft = null; - mp.events.callRemote("MedicTaskTimeout"); + mp.events.callRemote("MedicTaskTimeout"); } }); @@ -486,7 +476,7 @@ export default function factionInteraction(globalData: IGlobalData) { activeTask = null; deadRespawned = false; timeLeft = null; - } else if (activeTask.Type == 1){ + } else if (activeTask.Type == 1) { activeCheckpoint.destroy(); activeCheckpoint = null; mp.events.callRemote("delHealTaskAsMedic", activeTask.Victim); @@ -502,7 +492,6 @@ export default function factionInteraction(globalData: IGlobalData) { }); mp.events.add('render', () => { - if (activeTask) { rangeLeft = mp.game.gameplay.getDistanceBetweenCoords(player.position.x, player.position.y, player.position.z, taskFinish.x, taskFinish.y, taskFinish.z, true).toFixed(2); if (rangeLeft > 1.9) { diff --git a/ReallifeGamemode.Server/Events/Death.cs b/ReallifeGamemode.Server/Events/Death.cs index f6f0e0c6..60da325f 100644 --- a/ReallifeGamemode.Server/Events/Death.cs +++ b/ReallifeGamemode.Server/Events/Death.cs @@ -76,15 +76,18 @@ namespace ReallifeGamemode.Server.Events bool copNearby = NAPI.Pools.GetAllPlayers().Any(u => u.IsDuty() && u.IsAlive() && u.Position.DistanceToSquared(player.Position) <= 200 * 200); - if (copNearby) + if (user.Wanteds > 0) { - user.SetJailTime(true); - Jail.Check_PutBehindBars(user); - ChatService.HQMessage(user.Name + " wurde ins Gefängnis eingeliefert."); - } - else - { - ChatService.HQMessage(user.Name + " wurde soeben ins Krankenhaus eingeliefert."); + if (copNearby) + { + user.SetJailTime(true); + Jail.Check_PutBehindBars(user); + ChatService.HQMessage(user.Name + " wurde ins Gefängnis eingeliefert."); + } + else + { + ChatService.HQMessage(user.Name + " wurde soeben ins Krankenhaus eingeliefert."); + } } if (user.JailTime <= 0) diff --git a/ReallifeGamemode.Server/Gangwar/Turf.cs b/ReallifeGamemode.Server/Gangwar/Turf.cs index b7b46990..26ca2e86 100644 --- a/ReallifeGamemode.Server/Gangwar/Turf.cs +++ b/ReallifeGamemode.Server/Gangwar/Turf.cs @@ -120,7 +120,7 @@ namespace ReallifeGamemode.Server.Gangwar { Gangwar.loadTurfs(); Gangwar.loadTurfs_ToAllPlayers(); - }, delayTime: 2000); + }, delayTime: 2000); } private void Tick(object sender, System.Timers.ElapsedEventArgs e) @@ -272,18 +272,20 @@ namespace ReallifeGamemode.Server.Gangwar Player[] attackers = NAPI.Pools.GetAllPlayers().Where(c => c.IsLoggedIn() && c.GetUser().Faction.Name == this.Attacker).ToArray(); foreach (var o in owners) { - o.TriggerEvent("CLIENT:loose"); + if (o != null) + o.TriggerEvent("CLIENT:loose"); } foreach (var a in attackers) { - a.TriggerEvent("CLIENT:win"); + if (a != null) + a.TriggerEvent("CLIENT:win"); } this.Owner = FactionName; ChatService.BroadcastFaction("~y~[GANGWAR] ~w~Deine Fraktion konnte erfolgreich das Gebiet ~g~" + getName() + "~w~ erobern.", dbContext.Factions.Where(f => f.Name == getOwner()).FirstOrDefault()); dbContext.Factions.Include(f => f.BankAccount).Where(f => f.Name == getOwner()).First().BankAccount.Balance += 10000; Turfs turf = dbContext.Turfs.Where(t => t.Id == getId()).FirstOrDefault(); turf.Owner = this.Owner; - turf.FactionId = dbContext.Factions.Where(f => f.Name == this.Owner).FirstOrDefault().Id; + turf.FactionId = dbContext.Factions.Where(f => f.Name == this.Owner).FirstOrDefault().Id; } dbContext.SaveChanges(); } From a016a5e06509a0681eb5b5323167f7715bde72e3 Mon Sep 17 00:00:00 2001 From: kookroach Date: Thu, 8 Apr 2021 02:00:43 +0200 Subject: [PATCH 2/2] [Hotfix] Change Skill maximal to MAX instead of n/MAX --- .../Interaction/interactionmenu.ts | 41 ++++++------------- .../Commands/UserCommands.cs | 8 ---- 2 files changed, 13 insertions(+), 36 deletions(-) diff --git a/ReallifeGamemode.Client/Interaction/interactionmenu.ts b/ReallifeGamemode.Client/Interaction/interactionmenu.ts index 53eddcd8..2efdd786 100644 --- a/ReallifeGamemode.Client/Interaction/interactionmenu.ts +++ b/ReallifeGamemode.Client/Interaction/interactionmenu.ts @@ -14,7 +14,6 @@ let screenRes = mp.game.graphics.getScreenResolution(0, 0); import { getStreetName, getZoneName } from '../streetnames'; export default function (globalData: IGlobalData) { - var menuClose = false; var accountItem = new UIMenuItem("Account", "Account Informationen"); @@ -44,8 +43,6 @@ export default function (globalData: IGlobalData) { var groupRank = null; 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); @@ -80,7 +77,7 @@ export default function (globalData: IGlobalData) { menu.AddItem(factionleaderItem); menu.BindMenuToItem(getFactionLeaderMenu(faction, accountData.factionVehicles, accountData.stateFaction, menu), factionleaderItem); } - menu.AddItem(jobItem); + menu.AddItem(jobItem); menu.BindMenuToItem(getJobMenu(jobData, menu), jobItem); if (group) { @@ -88,10 +85,7 @@ export default function (globalData: IGlobalData) { menu.AddItem(groupItem); menu.BindMenuToItem(getGroupMenu(group, menu), groupItem); } - menu.AddItem(HouseItem); - - - + menu.AddItem(HouseItem); if (accountData.paycheck) { var p = accountData.paycheck; @@ -211,12 +205,12 @@ export default function (globalData: IGlobalData) { menuItem = new UIMenuItem("Fraktionsrang"); menuItem.SetRightLabel(data.factionRank); accountMenu.AddItem(menuItem); - } + } if (data.group != null) { menuItem = new UIMenuItem("Gruppe"); menuItem.SetRightLabel(data.group); - accountMenu.AddItem(menuItem); + accountMenu.AddItem(menuItem); menuItem = new UIMenuItem("Gruppenrang"); menuItem.SetRightLabel(data.groupRank); accountMenu.AddItem(menuItem); @@ -242,7 +236,7 @@ export default function (globalData: IGlobalData) { return accountMenu; } - function getLicenseMenu(accdata: AccountData, data: Licenses, parentMenu: NativeUI.Menu, ): NativeUI.Menu { + function getLicenseMenu(accdata: AccountData, data: Licenses, parentMenu: NativeUI.Menu,): NativeUI.Menu { var licenseMenu = new NativeUI.Menu("Lizenzen", mp.players.local.name, new Point(0, screenRes.y / 3), null, null); var menuItem = new UIMenuItem("Auto Führerschein"); @@ -305,17 +299,14 @@ export default function (globalData: IGlobalData) { globalData.InMenu = false; }); } - }); return licenseMenu; } function getFactionMenu(faction: string, vehData: VehicleData[], stateFaction: boolean, parentMenu: NativeUI.Menu): NativeUI.Menu { - var factionMenu = new NativeUI.Menu("Fraktion", faction, new Point(0, screenRes.y / 3), null, null); - - + factionMenu.Visible = false; if (vehData.length > 0) { @@ -327,7 +318,6 @@ export default function (globalData: IGlobalData) { return factionMenu; } function getFactionLeaderMenu(faction: string, vehData: VehicleData[], stateFaction: boolean, parentMenu: NativeUI.Menu): NativeUI.Menu { - var factionMenu = new NativeUI.Menu("Fraktion", faction, new Point(0, screenRes.y / 3), null, null); factionMenu.AddItem(new UIMenuItem("Spieler einladen")); @@ -340,7 +330,6 @@ export default function (globalData: IGlobalData) { factionMenu.BindMenuToItem(getVehiclesMenu(vehData, "CLIENT:InteractionMenu_FactionVehicleInteraction", !stateFaction, parentMenu), factionVehicleItem); } - factionMenu.ItemSelect.on((item, index) => { if (index === 0) { // Inviten globalData.InMenu = true; @@ -396,7 +385,7 @@ export default function (globalData: IGlobalData) { pilotSkillItem.SetRightLabel(jobdata.pilotskill + "/300") break; case 2: - pilotSkillItem.SetRightLabel(jobdata.pilotskill + "/MAX") + pilotSkillItem.SetRightLabel("MAX") break; } jobMenu.AddItem(pilotSkillItem); @@ -410,7 +399,7 @@ export default function (globalData: IGlobalData) { busSkillItem.SetRightLabel(jobdata.busskill + "/800") break; case 3: - busSkillItem.SetRightLabel(jobdata.busskill + "/MAX") + busSkillItem.SetRightLabel("MAX") break; } jobMenu.AddItem(busSkillItem); @@ -420,7 +409,7 @@ export default function (globalData: IGlobalData) { wageItem.SetRightLabel("~g~$" + jobdata.wage.toString()) } else { wageItem.SetRightLabel("$" + jobdata.wage.toString()) - } + } jobMenu.AddItem(wageItem); jobMenu.Visible = false; mp.gui.chat.show(false); @@ -480,7 +469,7 @@ export default function (globalData: IGlobalData) { groupMenu.Close(); mp.gui.chat.show(true); globalData.InMenu = false; - mp.events.callRemote("CLIENT:InteractionMenu_LeaveGroup", "Gruppe"); + mp.events.callRemote("CLIENT:InteractionMenu_LeaveGroup", "Gruppe"); break; case 5: //Gruppe löschen (als Leiter) @@ -490,7 +479,6 @@ export default function (globalData: IGlobalData) { mp.events.callRemote("CLIENT:InteractionMenu_DeleteGroup", "Gruppe"); break; } - }); return groupMenu; } @@ -505,11 +493,9 @@ export default function (globalData: IGlobalData) { servicesMenu.ItemSelect.on((item, index) => { if (index === 0) { // Taxi mp.events.callRemote("CLIENT:InteractionMenu_CallService_Taxi", getStreetName(), getZoneName()); - } else if (index === 1) { // Sanitäter mp.events.callRemote("CLIENT:InteractionMenu_CallService_Sani"); - } parentMenu.Close(true); }); @@ -551,7 +537,6 @@ export default function (globalData: IGlobalData) { function getVehiclesMenuFaction(vehicles: VehicleData[], eventName: string, allowSell: boolean, parentMenu: NativeUI.Menu): NativeUI.Menu { var desc = "Finden"; - var menu = new Menu("Fahrzeuge", desc, new Point(0, screenRes.y / 3), null, null); var items: string[] = ["Finden"]; @@ -577,7 +562,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(0, screenRes.y / 3), null, null); ticketMenu.AddItem(new UIMenuItem("Ticket annehmen")); @@ -599,7 +584,7 @@ export default function (globalData: IGlobalData) { return ticketMenu; } - + mp.events.add("CLIENT:InteractionMenu_Pay_Name", (name) => { payName = name; globalData.InMenu = true; @@ -612,4 +597,4 @@ export default function (globalData: IGlobalData) { globalData.InMenu = false; }); }); -} +} \ No newline at end of file diff --git a/ReallifeGamemode.Server/Commands/UserCommands.cs b/ReallifeGamemode.Server/Commands/UserCommands.cs index d4dde10e..3c2bf091 100644 --- a/ReallifeGamemode.Server/Commands/UserCommands.cs +++ b/ReallifeGamemode.Server/Commands/UserCommands.cs @@ -16,14 +16,6 @@ namespace ReallifeGamemode.Server.Commands { internal class UserCommands : Script { - [Command("skill")] - public void CmdUserSkill(Player player) - { - User user = player.GetUser(new DatabaseContext()); - - player.SendChatMessage($"~c~BusSkill = {user.BusSkill}/800, PilotSkill = {user.PilotSkill}/300."); - } - [Command("id", "~m~Benutzung: ~s~/id [Name]")] public void CmdUserId(Player player, String targetname) {