From c895280114760ed1026718df26637a7cfc9d2359 Mon Sep 17 00:00:00 2001 From: Michael Date: Wed, 16 Sep 2020 16:24:21 +0200 Subject: [PATCH] fix respawn(dead) after relog --- ReallifeGamemode.Server/Events/Connect.cs | 1 + ReallifeGamemode.Server/Events/Death.cs | 13 ++++++++++++- ReallifeGamemode.Server/Events/Login.cs | 6 ++++++ 3 files changed, 19 insertions(+), 1 deletion(-) diff --git a/ReallifeGamemode.Server/Events/Connect.cs b/ReallifeGamemode.Server/Events/Connect.cs index 11ef46a6..2d8e94ab 100644 --- a/ReallifeGamemode.Server/Events/Connect.cs +++ b/ReallifeGamemode.Server/Events/Connect.cs @@ -63,6 +63,7 @@ namespace ReallifeGamemode.Server.Events player.TriggerEvent("SERVER:Login_ShowBrowser", registered, disableLightMode); string msg = "~m~*** " + player.Name + " [" + player.SocialClubName + "] [ID: " + player.Handle.Value + "] (" + player.Address + ")"; ChatService.BroadcastAdmin(msg, AdminLevel.ADMIN); + } private bool IsPlayerBanned(Player player) diff --git a/ReallifeGamemode.Server/Events/Death.cs b/ReallifeGamemode.Server/Events/Death.cs index bc3e8c50..a3a596a2 100644 --- a/ReallifeGamemode.Server/Events/Death.cs +++ b/ReallifeGamemode.Server/Events/Death.cs @@ -25,7 +25,7 @@ namespace ReallifeGamemode.Server.Events public class Death : Script { [ServerEvent(Event.PlayerDeath)] - public void OnPlayerDeath(Player player, Player killer, uint reason) + public void OnPlayerDeath(Player player, Player killer, uint reason ) { if (!player.IsLoggedIn()) { @@ -34,6 +34,17 @@ namespace ReallifeGamemode.Server.Events } player.SetData("isDead", true); + + using (var userDeath = new DatabaseContext()) + { + User userisdead = player.GetUser(userDeath); + userisdead.Dead = true; + userDeath.SaveChanges(); + } + + + + //TODO: Zum Full Release entfernen ChatService.SendMessage(player, "Du bist durch " + (killer?.Name ?? "Niemanden") + " gestorben: " + reason.ToString()); diff --git a/ReallifeGamemode.Server/Events/Login.cs b/ReallifeGamemode.Server/Events/Login.cs index 17d268e0..7f4951a5 100644 --- a/ReallifeGamemode.Server/Events/Login.cs +++ b/ReallifeGamemode.Server/Events/Login.cs @@ -9,6 +9,8 @@ using ReallifeGamemode.Server.Services; using ReallifeGamemode.Server.Types; using ReallifeGamemode.Server.Util; using ReallifeGamemode.Server.Wanted; +using ReallifeGamemode.Database.Entities; + /** * @overview Life of German Reallife - Event Login (Login.cs) @@ -77,6 +79,7 @@ namespace ReallifeGamemode.Server.Events user.Wanteds = user.Wanteds; + if (user.Group != null) { string msg = $"{player.Name} ist wieder online."; @@ -92,6 +95,7 @@ namespace ReallifeGamemode.Server.Events ChatService.BroadcastAdmin("!{#FFFF00}*** " + user.Name + " [ID: " + player.Handle.Value + "]" + " hat sich als " + user.AdminLevel.GetName() + " eingeloggt!", AdminLevel.MAPPING); } + var userItems = dbContext.UserItems.Where(u => u.UserId == user.Id).ToList(); player.SetData("items", userItems); @@ -116,6 +120,8 @@ namespace ReallifeGamemode.Server.Events player.SetSharedData("blipColor", 25); break; } + + if (user.CharacterId == null) {