From 5fbceb88a35af5ffe994c66b76ed2b53dd3c8922 Mon Sep 17 00:00:00 2001 From: Michael Date: Thu, 17 Sep 2020 17:13:53 +0200 Subject: [PATCH] add find haus in interactionMenu & fix after revive db dead = false --- .../Interaction/interactionmenu.ts | 14 +++++++++++-- .../Commands/AdminCommands.cs | 14 +++++++++++++ .../Commands/FactionCommands.cs | 7 +++++++ ReallifeGamemode.Server/Events/Death.cs | 7 +++++++ ReallifeGamemode.Server/Events/Key.cs | 8 ++++++- .../Managers/InteractionManager.cs | 21 ++++++++++++++++++- 6 files changed, 67 insertions(+), 4 deletions(-) diff --git a/ReallifeGamemode.Client/Interaction/interactionmenu.ts b/ReallifeGamemode.Client/Interaction/interactionmenu.ts index 429e3b85..08d8eb4c 100644 --- a/ReallifeGamemode.Client/Interaction/interactionmenu.ts +++ b/ReallifeGamemode.Client/Interaction/interactionmenu.ts @@ -33,11 +33,13 @@ export default function (globalData: IGlobalData) { var vehiclesItem = new UIMenuItem("Fahrzeuge", "Zeige deine Fahrzeuge an"); + var HouseItem = new UIMenuItem("Haus", "Finde dein Haus"); + var ticketItem = new UIMenuItem("Strafticket", "Strafticket annehmen/ablehnen"); var payName: string; - mp.events.add("SERVER:InteractionMenu_OpenMenu", (accountDataJson: string, factionleader: string, faction: string, group: string, factionInvite: boolean, groupInvite: boolean, ticket_boolean: boolean, ticket_amount) => { + 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) => { var accountData: AccountData = JSON.parse(accountDataJson); @@ -55,6 +57,8 @@ export default function (globalData: IGlobalData) { menu.AddItem(licenseItem); menu.BindMenuToItem(getLicenseMenu(accountData, accountData.licenses, menu), licenseItem); + + var vehicles = accountData.vehicles; if (vehicles.length > 0) { menu.AddItem(vehiclesItem); @@ -77,6 +81,7 @@ export default function (globalData: IGlobalData) { menu.AddItem(groupItem); menu.BindMenuToItem(getGroupMenu(group, menu), groupItem); } + menu.AddItem(HouseItem); @@ -169,9 +174,14 @@ export default function (globalData: IGlobalData) { input.getValue(name => { mp.events.call("CLIENT:InteractionMenu_Pay_Name", name); mp.gui.cursor.show(false, false); - menu.Close(true); + menu.Close(true); globalData.InInput = false; }); + } else if (item == HouseItem) { + mp.events.callRemote("CLIENT:InteractionMenu_FindHouse"); + mp.gui.cursor.show(false, false); + menu.Close(true); + globalData.InInput = false; } }); diff --git a/ReallifeGamemode.Server/Commands/AdminCommands.cs b/ReallifeGamemode.Server/Commands/AdminCommands.cs index 1d1aafaf..761dd5fa 100644 --- a/ReallifeGamemode.Server/Commands/AdminCommands.cs +++ b/ReallifeGamemode.Server/Commands/AdminCommands.cs @@ -1408,6 +1408,13 @@ namespace ReallifeGamemode.Server.Commands target.TriggerEvent("onPlayerRevived"); target.SendNotification("Du wurdest von Admin ~y~" + player.Name + "~s~ wiederbelebt."); target.SetData("isDead", false); + using (var dbContext = new DatabaseContext()) + { + User u; + u = target.GetUser(dbContext); + u.Dead = false; + dbContext.SaveChanges(); + } NAPI.Player.SpawnPlayer(target, target.Position); target.Health = 100; @@ -2162,6 +2169,13 @@ namespace ReallifeGamemode.Server.Commands managedPlayer.TriggerEvent("onPlayerRevived"); managedPlayer.SetData("isDead", false); + using (var dbContext = new DatabaseContext()) + { + User u; + u = managedPlayer.GetUser(dbContext); + u.Dead = false; + dbContext.SaveChanges(); + } managedPlayer.SendNotification(toPlayerNotification); ChatService.SendMessage(managedPlayer, toPlayerChat); diff --git a/ReallifeGamemode.Server/Commands/FactionCommands.cs b/ReallifeGamemode.Server/Commands/FactionCommands.cs index 0a7dce3c..20276e80 100644 --- a/ReallifeGamemode.Server/Commands/FactionCommands.cs +++ b/ReallifeGamemode.Server/Commands/FactionCommands.cs @@ -294,6 +294,13 @@ namespace ReallifeGamemode.Server.Commands deadPlayer.SendNotification($"Du wurdest von ~y~{player.Name}~s~ für ~g~{100.ToMoneyString()} ~s~wiederbelebt."); player.SendNotification($"Du hast ~y~{deadPlayer.Name}~s~ wiederbelebt."); deadPlayer.SetData("isDead", false); + using (var dbContext1 = new DatabaseContext()) + { + User u; + u = deadPlayer.GetUser(dbContext1); + u.Dead = false; + dbContext.SaveChanges(); + } NAPI.Player.SpawnPlayer(deadPlayer, deadPlayer.Position); deadPlayer.Health = 50; diff --git a/ReallifeGamemode.Server/Events/Death.cs b/ReallifeGamemode.Server/Events/Death.cs index a3a596a2..a2279adc 100644 --- a/ReallifeGamemode.Server/Events/Death.cs +++ b/ReallifeGamemode.Server/Events/Death.cs @@ -223,6 +223,13 @@ namespace ReallifeGamemode.Server.Events public void RespawnPlayerAtHospital(Player player) { player.SetData("isDead", false); + using (var dbContext = new DatabaseContext()) + { + User u; + u = player.GetUser(dbContext); + u.Dead = false; + dbContext.SaveChanges(); + } player.RemoveAllWeapons(); NAPI.Player.SpawnPlayer(player, new Vector3(-495.45, -336.33, 34.5), -98.36f); diff --git a/ReallifeGamemode.Server/Events/Key.cs b/ReallifeGamemode.Server/Events/Key.cs index 4c7d81c7..960471d3 100644 --- a/ReallifeGamemode.Server/Events/Key.cs +++ b/ReallifeGamemode.Server/Events/Key.cs @@ -164,6 +164,12 @@ namespace ReallifeGamemode.Server.Events bool ticket_boolean = player.HasData("ticket_boolean"); int ticket_amount = 0; int pay_amount = 0; + bool house = false; + + if(u.House != null) + { + house = true; + } if (player.HasData("ticket_amount")) { @@ -175,7 +181,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); + player.TriggerEvent("SERVER:InteractionMenu_OpenMenu", JsonConvert.SerializeObject(accountData), factionleader, faction, group, factionInvite, groupInvite, ticket_boolean, ticket_amount, pay_amount, house); } diff --git a/ReallifeGamemode.Server/Managers/InteractionManager.cs b/ReallifeGamemode.Server/Managers/InteractionManager.cs index be36ba27..0e05dbef 100644 --- a/ReallifeGamemode.Server/Managers/InteractionManager.cs +++ b/ReallifeGamemode.Server/Managers/InteractionManager.cs @@ -14,6 +14,7 @@ using System.Buffers; using Microsoft.EntityFrameworkCore; using ReallifeGamemode.Server.Events; using System; +using ReallifeGamemode.Server.Core.API; /** * @overview Life of German Reallife - Managers Interaction (InteractionManager.cs) @@ -670,10 +671,28 @@ namespace ReallifeGamemode.Server.Managers } } + [RemoteEvent("CLIENT:InteractionMenu_FindHouse")] + public void InteractionMenu_House(Player player) + { + using (var dbContext = new DatabaseContext()) + { + User user = player.GetUser(dbContext); + if (user.House == null) + { + player.SendNotification("~r~[Fehler] ~w~Du besitzt kein Haus!"); + return; + } + else + { + player.TriggerEvent("SERVER:Util_setWaypoint", user.House.Position.X, user.House.Position.Y); + } + } + } + #endregion Eigeninteraktionen PFEILTASTE-RUNTER - #region Spielerinteraktionen PFEILTASTE-LINKS + #region Spielerinteraktionen PFEILTASTE-LINKS [RemoteEvent("openTradeInventory")] public void OpenTradeInventory(Player player, string targetPlayer)