From d99f3ad6d5f58c48db597e43b7ef06d887c3783b Mon Sep 17 00:00:00 2001 From: Fabian Wessels Date: Thu, 8 Apr 2021 10:17:51 +0200 Subject: [PATCH 01/27] =?UTF-8?q?komplexit=C3=A4t=20verringert?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ReallifeGamemode.Server/Events/Login.cs | 202 ++++++++++++------------ 1 file changed, 100 insertions(+), 102 deletions(-) diff --git a/ReallifeGamemode.Server/Events/Login.cs b/ReallifeGamemode.Server/Events/Login.cs index 1da5ec9f..ca32c326 100644 --- a/ReallifeGamemode.Server/Events/Login.cs +++ b/ReallifeGamemode.Server/Events/Login.cs @@ -37,117 +37,115 @@ namespace ReallifeGamemode.Server.Events if (user == null) { player.TriggerEvent("SERVER:Login_Error", "Der Benutzer existiert nicht! Registriere dich zuerst!"); + return; + } + + if (user.SocialClubName != player.SocialClubName && user.Password == NAPI.Util.GetHashSha256(password)) + { + player.TriggerEvent("SERVER:Login_Error", "Dieser Benutzer gehört dir nicht!"); + //TODO ?? Log einbauen für den bösen Bub. + player.Kick(); + return; + } + + if (user.Password != NAPI.Util.GetHashSha256(password)) + { + player.TriggerEvent("SERVER:Login_Error", "Passwort inkorrekt!"); + return; + } + + player.SetData("dbId", user.Id); + player.Name = username; + player.TriggerEvent("SERVER:Login_Success"); + player.TriggerEvent("CLIENT:StopSound"); + player.SetData("isLoggedIn", true); + player.SetSharedData("isLoggedIn", JsonConvert.SerializeObject(true)); + player.SetData("spec", true); + player.SetData("duty", false); + player.SetData("Adminduty", false); + player.TriggerEvent("SERVER:SET_HANDMONEY", user.Handmoney, 0); + player.TriggerEvent("headshotoff"); + Gangwar.Gangwar.loadPlayer(player); + if (user.FactionLeader) + { + player.TriggerEvent("CLIENT:Turf_LoadLeaderBlip"); + } + if (user.IsAdmin(AdminLevel.HEADADMIN)) + { + player.SetData("editmode", false); + player.SetData("quicksavemode", "none"); + } + + var userBankAccount = user.BankAccount; + userBankAccount.Balance = userBankAccount.Balance; + + user.Wanteds = user.Wanteds; + + + if (user.Group != null) + { + string msg = $"{player.Name} ist wieder online."; + ChatService.BroadcastGroup(msg, user.Group); + } + + if (GlobalHelper.CustomJoinMessages.ContainsKey(player.SocialClubName)) + { + ChatService.BroadcastAdmin("!{#FFFF00}*** " + GlobalHelper.CustomJoinMessages[player.SocialClubName] + " [ID: " + player.Handle.Value + "] (" + user.AdminLevel.GetName() + ")", AdminLevel.MAPPING); + } + else if (user.IsAdmin(AdminLevel.MAPPING)) + { + 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); + + user.SetBlipAndNametagColor(); + + if (user.CharacterId == null) + { + var currentPlayerCreatorDimension = (uint)NAPI.Data.GetWorldData("playerCreatorDimension"); + currentPlayerCreatorDimension++; + NAPI.Data.SetWorldData("playerCreatorDimension", currentPlayerCreatorDimension); + player.Dimension = NAPI.Data.GetWorldData("playerCreatorDimension"); + player.Position = new Vector3(402.8664, -996.4108, -99.00027); + player.Rotation = new Vector3(0, 0, 180); + player.TriggerEvent("toggleCreator"); } else { - if (user.SocialClubName != player.SocialClubName && user.Password == NAPI.Util.GetHashSha256(password)) + CharacterCreator.ApplyCharacter(player); + UpdateCharacterCloth.LoadCharacterDefaults(player); + if (user.JailTime <= 0) { - player.TriggerEvent("SERVER:Login_Error", "Dieser Benutzer gehört dir nicht!"); - //TODO ?? Log einbauen für den bösen Bub. - player.Kick(); - return; - } - - if (user.Password != NAPI.Util.GetHashSha256(password)) - { - player.TriggerEvent("SERVER:Login_Error", "Passwort inkorrekt!"); + NAPI.Player.SpawnPlayer(player, new Vector3(user.PositionX, user.PositionY, user.PositionZ), 0); } else { - player.SetData("dbId", user.Id); - player.Name = username; - player.TriggerEvent("SERVER:Login_Success"); - player.TriggerEvent("CLIENT:StopSound"); - player.SetData("isLoggedIn", true); - player.SetSharedData("isLoggedIn", JsonConvert.SerializeObject(true)); - player.SetData("spec", true); - player.SetData("duty", false); - player.SetData("Adminduty", false); - player.TriggerEvent("SERVER:SET_HANDMONEY", user.Handmoney, 0); - player.TriggerEvent("headshotoff"); - Gangwar.Gangwar.loadPlayer(player); - if (user.FactionLeader) - { - player.TriggerEvent("CLIENT:Turf_LoadLeaderBlip"); - } - if (user.IsAdmin(AdminLevel.HEADADMIN)) - { - player.SetData("editmode", false); - player.SetData("quicksavemode", "none"); - } - - var userBankAccount = user.BankAccount; - userBankAccount.Balance = userBankAccount.Balance; - - user.Wanteds = user.Wanteds; - - - if (user.Group != null) - { - string msg = $"{player.Name} ist wieder online."; - ChatService.BroadcastGroup(msg, user.Group); - } - - if (GlobalHelper.CustomJoinMessages.ContainsKey(player.SocialClubName)) - { - ChatService.BroadcastAdmin("!{#FFFF00}*** " + GlobalHelper.CustomJoinMessages[player.SocialClubName] + " [ID: " + player.Handle.Value + "] (" + user.AdminLevel.GetName() + ")", AdminLevel.MAPPING); - } - else if (user.IsAdmin(AdminLevel.MAPPING)) - { - 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); - - user.SetBlipAndNametagColor(); - - if (user.CharacterId == null) - { - var currentPlayerCreatorDimension = (uint)NAPI.Data.GetWorldData("playerCreatorDimension"); - currentPlayerCreatorDimension++; - NAPI.Data.SetWorldData("playerCreatorDimension", currentPlayerCreatorDimension); - player.Dimension = NAPI.Data.GetWorldData("playerCreatorDimension"); - player.Position = new Vector3(402.8664, -996.4108, -99.00027); - player.Rotation = new Vector3(0, 0, 180); - player.TriggerEvent("toggleCreator"); - } - else - { - CharacterCreator.ApplyCharacter(player); - UpdateCharacterCloth.LoadCharacterDefaults(player); - if (user.JailTime <= 0) - { - NAPI.Player.SpawnPlayer(player, new Vector3(user.PositionX, user.PositionY, user.PositionZ), 0); - } - else - { - Jail.Check_PutBehindBars(user); - } - } - - player.TriggerEvent("draw", player.Name, player.Handle.Value); - if (user.Dead == true) - { - if (user.IsAdmin(AdminLevel.ADMIN) == true) - { - player.TriggerEvent("startDeathTimer", true); - player.Health = 0; - } - else - { - player.TriggerEvent("startDeathTimer", false); - player.Health = 0; - } - player.SetData("isDead", true); - } - else - { - player.SetData("isDead", false); - } + Jail.Check_PutBehindBars(user); } } + + player.TriggerEvent("draw", player.Name, player.Handle.Value); + if (user.Dead == true) + { + if (user.IsAdmin(AdminLevel.ADMIN) == true) + { + player.TriggerEvent("startDeathTimer", true); + player.Health = 0; + } + else + { + player.TriggerEvent("startDeathTimer", false); + player.Health = 0; + } + player.SetData("isDead", true); + } + else + { + player.SetData("isDead", false); + } } } } From 1df41de58fec3b9a50ce3f108e5784d2f87b1920 Mon Sep 17 00:00:00 2001 From: Fabian Wessels Date: Thu, 8 Apr 2021 10:23:58 +0200 Subject: [PATCH 02/27] ja --- ReallifeGamemode.Server/Events/Login.cs | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/ReallifeGamemode.Server/Events/Login.cs b/ReallifeGamemode.Server/Events/Login.cs index ca32c326..d260ffee 100644 --- a/ReallifeGamemode.Server/Events/Login.cs +++ b/ReallifeGamemode.Server/Events/Login.cs @@ -133,13 +133,12 @@ namespace ReallifeGamemode.Server.Events if (user.IsAdmin(AdminLevel.ADMIN) == true) { player.TriggerEvent("startDeathTimer", true); - player.Health = 0; } else { player.TriggerEvent("startDeathTimer", false); - player.Health = 0; } + player.Health = 0; player.SetData("isDead", true); } else From 8f25fe9248868726e71db1ed9c67192bc99f1188 Mon Sep 17 00:00:00 2001 From: Fabian Date: Thu, 8 Apr 2021 17:53:56 +0200 Subject: [PATCH 03/27] hq message beim connecten und disconnecten von wanteds --- ReallifeGamemode.Server/Events/Disconnect.cs | 7 +++++++ ReallifeGamemode.Server/Events/Login.cs | 4 ++++ 2 files changed, 11 insertions(+) diff --git a/ReallifeGamemode.Server/Events/Disconnect.cs b/ReallifeGamemode.Server/Events/Disconnect.cs index 00e16acc..52e40a1d 100644 --- a/ReallifeGamemode.Server/Events/Disconnect.cs +++ b/ReallifeGamemode.Server/Events/Disconnect.cs @@ -133,6 +133,13 @@ namespace ReallifeGamemode.Server.Events saveUser.SaveChanges(); user.Dead = player.HasData("isDead") ? (bool)player.GetData("isDead") : false; } + + if (player.GetUser().Wanteds > 0) + { + ChatService.HQMessage("!{#FFFF00}** Der Straftäter " + player.GetUser().Name + " ist vom Radar verschwunden"); + NAPI.Util.ConsoleOutput("!{#FFFF00}** Der Straftäter " + player.GetUser().Name + " ist vom Radar verschwunden"); + } + player.SetData("isLoggedIn", false); player.TriggerEvent("CLIENT:DestroyPed", 1); player.TriggerEvent("CLIENT:DestroyPed", 2); diff --git a/ReallifeGamemode.Server/Events/Login.cs b/ReallifeGamemode.Server/Events/Login.cs index d260ffee..4e768976 100644 --- a/ReallifeGamemode.Server/Events/Login.cs +++ b/ReallifeGamemode.Server/Events/Login.cs @@ -81,6 +81,10 @@ namespace ReallifeGamemode.Server.Events user.Wanteds = user.Wanteds; + if (user.Wanteds > 0) + { + ChatService.HQMessage("!{#FFFF00}** Der Straftäter" + user.Name + " hat sich mit " + user.Wanteds + " Wanteds eingeloggt."); + } if (user.Group != null) { From 7eb14f1014d4ae18085697ca4ca48a33eaa8dec4 Mon Sep 17 00:00:00 2001 From: Fabian Date: Thu, 8 Apr 2021 17:54:26 +0200 Subject: [PATCH 04/27] ups --- ReallifeGamemode.Server/Events/Disconnect.cs | 1 - 1 file changed, 1 deletion(-) diff --git a/ReallifeGamemode.Server/Events/Disconnect.cs b/ReallifeGamemode.Server/Events/Disconnect.cs index 52e40a1d..e666723d 100644 --- a/ReallifeGamemode.Server/Events/Disconnect.cs +++ b/ReallifeGamemode.Server/Events/Disconnect.cs @@ -137,7 +137,6 @@ namespace ReallifeGamemode.Server.Events if (player.GetUser().Wanteds > 0) { ChatService.HQMessage("!{#FFFF00}** Der Straftäter " + player.GetUser().Name + " ist vom Radar verschwunden"); - NAPI.Util.ConsoleOutput("!{#FFFF00}** Der Straftäter " + player.GetUser().Name + " ist vom Radar verschwunden"); } player.SetData("isLoggedIn", false); From 28bd83240dd19f546474e20fb7583de708a4fc03 Mon Sep 17 00:00:00 2001 From: Fabian Date: Thu, 8 Apr 2021 18:27:45 +0200 Subject: [PATCH 05/27] =?UTF-8?q?danke=20meister=20hidrant=20f=C3=BCr=20di?= =?UTF-8?q?e=20belehrung?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ReallifeGamemode.Server/Events/Disconnect.cs | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/ReallifeGamemode.Server/Events/Disconnect.cs b/ReallifeGamemode.Server/Events/Disconnect.cs index e666723d..0aabb128 100644 --- a/ReallifeGamemode.Server/Events/Disconnect.cs +++ b/ReallifeGamemode.Server/Events/Disconnect.cs @@ -48,11 +48,7 @@ namespace ReallifeGamemode.Server.Events { GlobalHelper.DutyAdmins.Remove(player); }*/ - - if (player.GetUser().IsAdmin(AdminLevel.MAPPING)) - { - ChatService.BroadcastAdmin("!{#FFFF00}*** " + player.Name + " hat den Server verlassen", AdminLevel.MAPPING); - } + /* TaxiDriverJob taxiJob = JobManager.GetJob(); TaxiContract taxiContract = taxiJob.TaxiContracts.Where(t => t.Name == player.Name).FirstOrDefault(); @@ -132,11 +128,16 @@ namespace ReallifeGamemode.Server.Events user.PositionZ = pos.Z; saveUser.SaveChanges(); user.Dead = player.HasData("isDead") ? (bool)player.GetData("isDead") : false; - } - if (player.GetUser().Wanteds > 0) - { - ChatService.HQMessage("!{#FFFF00}** Der Straftäter " + player.GetUser().Name + " ist vom Radar verschwunden"); + if (user.IsAdmin(AdminLevel.MAPPING)) + { + ChatService.BroadcastAdmin("!{#FFFF00}*** " + player.Name + " hat den Server verlassen", AdminLevel.MAPPING); + } + + if (user.Wanteds > 0) + { + ChatService.HQMessage("!{#FFFF00}** Der Straftäter " + player.GetUser().Name + " ist vom Radar verschwunden"); + } } player.SetData("isLoggedIn", false); From 6509e43d188b62524e0bcd11f2fd6402af037da6 Mon Sep 17 00:00:00 2001 From: Fabian Date: Thu, 8 Apr 2021 18:55:50 +0200 Subject: [PATCH 06/27] =?UTF-8?q?chatmessage=20f=C3=BCr=20gekickte=20und?= =?UTF-8?q?=20gebannte=20spieler=20+=20kurzes=20delay?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Commands/AdminCommands.cs | 30 ++++++++++++++----- 1 file changed, 22 insertions(+), 8 deletions(-) diff --git a/ReallifeGamemode.Server/Commands/AdminCommands.cs b/ReallifeGamemode.Server/Commands/AdminCommands.cs index 041f31dc..f6a425a6 100644 --- a/ReallifeGamemode.Server/Commands/AdminCommands.cs +++ b/ReallifeGamemode.Server/Commands/AdminCommands.cs @@ -471,13 +471,14 @@ namespace ReallifeGamemode.Server.Commands Medic.UpdateDutyMedics(-1); } - string targetPlayername = NAPI.Player.GetPlayerName(target); string adminPlayername = NAPI.Player.GetPlayerName(player); - ChatService.SendMessage(target, "~r~KICKINFO: ~w~Du wurdest von " + adminPlayername + " vom Server gekickt: " + reason); - target.Kick(); - ChatService.BroadcastAdmin("~y~SKICK: ~w~" + targetPlayername + " wurde von " + player.GetUser().AdminLevel.GetName() + " " + adminPlayername + " gekickt: " + reason, AdminLevel.SUPPORTER); + NAPI.Task.Run(() => { + target.Kick(); + }, 2500); + + ChatService.BroadcastAdmin("~y~SKICK: ~w~" + targetname + " wurde von " + player.GetUser().AdminLevel.GetName() + " " + adminPlayername + " gekickt: " + reason, AdminLevel.SUPPORTER); } [Command("clearchat", "~m~Benutzung: ~s~/clearchat")] @@ -785,14 +786,15 @@ namespace ReallifeGamemode.Server.Commands Medic.UpdateDutyMedics(-1); } - string targetPlayername = NAPI.Player.GetPlayerName(target); string adminPlayername = NAPI.Player.GetPlayerName(player); ChatService.SendMessage(target, "~r~KICKINFO: ~w~Du wurdest von " + adminPlayername + " vom Server gekickt: " + reason); - target.Kick(); + NAPI.Task.Run(() => { + target.Kick(); + }, 2500); - ChatService.Broadcast("~y~INFO: ~w~" + targetPlayername + " wurde von " + player.GetUser().AdminLevel.GetName() + " " + adminPlayername + " gekickt: " + reason); + ChatService.Broadcast("~y~INFO: ~w~" + targetname + " wurde von " + player.GetUser().AdminLevel.GetName() + " " + adminPlayername + " gekickt: " + reason); } [Command("warn", "~m~Benutzung: ~s~/warn [Player] [Grund]", GreedyArg = true)] @@ -874,7 +876,19 @@ namespace ReallifeGamemode.Server.Commands reason = Regex.Replace(reason, "(~[a-zA-Z]~)|(!{(.*)})", ""); - target.GetUser().BanPlayer(admin, reason, mins); + string adminPlayername = NAPI.Player.GetPlayerName(admin); + String banMessage = "~r~BANINFO: ~w~Du wurdest von " + adminPlayername + " vom Server gebannt: " + reason; + + if (mins > 0) + { + banMessage = "~r~BANINFO: ~w~Du wurdest von " + adminPlayername + " für " + mins + " Minuten vom Server gebannt: " + reason; + } + + ChatService.SendMessage(target, banMessage); + + NAPI.Task.Run(() => { + target.GetUser().BanPlayer(admin, reason, mins); + }, 2500); } [Command("unban", "~m~Benutzung: ~s~/unban [Name] ")] From fa0c4b1ba75c133de3a95b83a7af74522c8fe661 Mon Sep 17 00:00:00 2001 From: VegaZ Date: Thu, 8 Apr 2021 19:08:58 +0200 Subject: [PATCH 07/27] Fix Remove Task from List when Hospital --- ReallifeGamemode.Server/Events/Death.cs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/ReallifeGamemode.Server/Events/Death.cs b/ReallifeGamemode.Server/Events/Death.cs index 60da325f..dacb3cb9 100644 --- a/ReallifeGamemode.Server/Events/Death.cs +++ b/ReallifeGamemode.Server/Events/Death.cs @@ -233,7 +233,9 @@ namespace ReallifeGamemode.Server.Events dbContext.SaveChanges(); } player.RemoveAllWeapons(); - //Medic.delReviveTask(player); + MedicTask task = Medic.ReviveTasks.FirstOrDefault(t => t.Victim == player.Name); + Medic.RemoveTaskFromList(task); + NAPI.Player.SpawnPlayer(player, new Vector3(-495.45, -336.33, 34.5), -98.36f); } } From bfb539a6c3b8a432359c54139977a0e251476cf3 Mon Sep 17 00:00:00 2001 From: Fabian Date: Thu, 8 Apr 2021 19:30:38 +0200 Subject: [PATCH 08/27] vllt fix report system, auch wenn das keine fehler hat --- ReallifeGamemode.Server/Events/Disconnect.cs | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/ReallifeGamemode.Server/Events/Disconnect.cs b/ReallifeGamemode.Server/Events/Disconnect.cs index 0aabb128..060305e5 100644 --- a/ReallifeGamemode.Server/Events/Disconnect.cs +++ b/ReallifeGamemode.Server/Events/Disconnect.cs @@ -61,14 +61,14 @@ namespace ReallifeGamemode.Server.Events } } */ - var listReports = Report.Report.listReports; + ReportManage temp; - for (int a = 0; a < listReports.Count; a++) + for (int a = 0; a < Report.Report.listReports.Count; a++) { - temp = listReports[a]; + temp = Report.Report.listReports[a]; if (temp.getAdmin().Equals(player.Name)) { - listReports.Remove(temp); + Report.Report.listReports.Remove(temp); Player user = PlayerService.GetPlayerByNameOrId(temp.getUser()); user.SendChatMessage("!{#008fff}[REPORT]!{#FFFFFF} Chat beendet. Der Admin hat den Server verlassen"); @@ -77,7 +77,7 @@ namespace ReallifeGamemode.Server.Events if (temp.getUser().Equals(player.Name)) { - listReports.Remove(temp); + Report.Report.listReports.Remove(temp); Player admin = PlayerService.GetPlayerByNameOrId(temp.getAdmin()); admin.SendChatMessage("!{#008fff}[REPORT]!{#FFFFFF} Chat beendet. Der User hat den Server verlassen"); From fb647e1274045556feb2b27db9708cca869f8362 Mon Sep 17 00:00:00 2001 From: Fabian Date: Thu, 8 Apr 2021 19:38:17 +0200 Subject: [PATCH 09/27] tst --- ReallifeGamemode.Server/Events/Disconnect.cs | 27 ++++++++------------ 1 file changed, 10 insertions(+), 17 deletions(-) diff --git a/ReallifeGamemode.Server/Events/Disconnect.cs b/ReallifeGamemode.Server/Events/Disconnect.cs index 060305e5..00e16acc 100644 --- a/ReallifeGamemode.Server/Events/Disconnect.cs +++ b/ReallifeGamemode.Server/Events/Disconnect.cs @@ -48,7 +48,11 @@ namespace ReallifeGamemode.Server.Events { GlobalHelper.DutyAdmins.Remove(player); }*/ - + + if (player.GetUser().IsAdmin(AdminLevel.MAPPING)) + { + ChatService.BroadcastAdmin("!{#FFFF00}*** " + player.Name + " hat den Server verlassen", AdminLevel.MAPPING); + } /* TaxiDriverJob taxiJob = JobManager.GetJob(); TaxiContract taxiContract = taxiJob.TaxiContracts.Where(t => t.Name == player.Name).FirstOrDefault(); @@ -61,14 +65,14 @@ namespace ReallifeGamemode.Server.Events } } */ - + var listReports = Report.Report.listReports; ReportManage temp; - for (int a = 0; a < Report.Report.listReports.Count; a++) + for (int a = 0; a < listReports.Count; a++) { - temp = Report.Report.listReports[a]; + temp = listReports[a]; if (temp.getAdmin().Equals(player.Name)) { - Report.Report.listReports.Remove(temp); + listReports.Remove(temp); Player user = PlayerService.GetPlayerByNameOrId(temp.getUser()); user.SendChatMessage("!{#008fff}[REPORT]!{#FFFFFF} Chat beendet. Der Admin hat den Server verlassen"); @@ -77,7 +81,7 @@ namespace ReallifeGamemode.Server.Events if (temp.getUser().Equals(player.Name)) { - Report.Report.listReports.Remove(temp); + listReports.Remove(temp); Player admin = PlayerService.GetPlayerByNameOrId(temp.getAdmin()); admin.SendChatMessage("!{#008fff}[REPORT]!{#FFFFFF} Chat beendet. Der User hat den Server verlassen"); @@ -128,18 +132,7 @@ namespace ReallifeGamemode.Server.Events user.PositionZ = pos.Z; saveUser.SaveChanges(); user.Dead = player.HasData("isDead") ? (bool)player.GetData("isDead") : false; - - if (user.IsAdmin(AdminLevel.MAPPING)) - { - ChatService.BroadcastAdmin("!{#FFFF00}*** " + player.Name + " hat den Server verlassen", AdminLevel.MAPPING); - } - - if (user.Wanteds > 0) - { - ChatService.HQMessage("!{#FFFF00}** Der Straftäter " + player.GetUser().Name + " ist vom Radar verschwunden"); - } } - player.SetData("isLoggedIn", false); player.TriggerEvent("CLIENT:DestroyPed", 1); player.TriggerEvent("CLIENT:DestroyPed", 2); From 9ef406e6734f3b08270098b8898125936ef6bc8c Mon Sep 17 00:00:00 2001 From: Fabian Date: Thu, 8 Apr 2021 19:41:13 +0200 Subject: [PATCH 10/27] tst --- ReallifeGamemode.Server/Events/Disconnect.cs | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/ReallifeGamemode.Server/Events/Disconnect.cs b/ReallifeGamemode.Server/Events/Disconnect.cs index 00e16acc..79acc3c6 100644 --- a/ReallifeGamemode.Server/Events/Disconnect.cs +++ b/ReallifeGamemode.Server/Events/Disconnect.cs @@ -65,14 +65,13 @@ namespace ReallifeGamemode.Server.Events } } */ - var listReports = Report.Report.listReports; ReportManage temp; - for (int a = 0; a < listReports.Count; a++) + for (int a = 0; a < Report.Report.listReports.Count; a++) { - temp = listReports[a]; + temp = Report.Report.listReports[a]; if (temp.getAdmin().Equals(player.Name)) { - listReports.Remove(temp); + Report.Report.listReports.Remove(temp); Player user = PlayerService.GetPlayerByNameOrId(temp.getUser()); user.SendChatMessage("!{#008fff}[REPORT]!{#FFFFFF} Chat beendet. Der Admin hat den Server verlassen"); @@ -81,7 +80,7 @@ namespace ReallifeGamemode.Server.Events if (temp.getUser().Equals(player.Name)) { - listReports.Remove(temp); + Report.Report.listReports.Remove(temp); Player admin = PlayerService.GetPlayerByNameOrId(temp.getAdmin()); admin.SendChatMessage("!{#008fff}[REPORT]!{#FFFFFF} Chat beendet. Der User hat den Server verlassen"); From 152a49231d04abc00c089f95ef958b500d1177d4 Mon Sep 17 00:00:00 2001 From: Fabian Date: Thu, 8 Apr 2021 19:44:08 +0200 Subject: [PATCH 11/27] tst --- ReallifeGamemode.Server/Events/Disconnect.cs | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/ReallifeGamemode.Server/Events/Disconnect.cs b/ReallifeGamemode.Server/Events/Disconnect.cs index 79acc3c6..218fb269 100644 --- a/ReallifeGamemode.Server/Events/Disconnect.cs +++ b/ReallifeGamemode.Server/Events/Disconnect.cs @@ -69,6 +69,12 @@ namespace ReallifeGamemode.Server.Events for (int a = 0; a < Report.Report.listReports.Count; a++) { temp = Report.Report.listReports[a]; + + if (!temp.isAssigned()) + { + continue; + } + if (temp.getAdmin().Equals(player.Name)) { Report.Report.listReports.Remove(temp); From c732d0887b1eaf4e1cbfafb6c11efda79ecaeae8 Mon Sep 17 00:00:00 2001 From: Fabian Date: Thu, 8 Apr 2021 19:54:04 +0200 Subject: [PATCH 12/27] test --- ReallifeGamemode.Server/Events/Disconnect.cs | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/ReallifeGamemode.Server/Events/Disconnect.cs b/ReallifeGamemode.Server/Events/Disconnect.cs index 218fb269..4465ba1d 100644 --- a/ReallifeGamemode.Server/Events/Disconnect.cs +++ b/ReallifeGamemode.Server/Events/Disconnect.cs @@ -70,11 +70,6 @@ namespace ReallifeGamemode.Server.Events { temp = Report.Report.listReports[a]; - if (!temp.isAssigned()) - { - continue; - } - if (temp.getAdmin().Equals(player.Name)) { Report.Report.listReports.Remove(temp); @@ -86,10 +81,12 @@ namespace ReallifeGamemode.Server.Events if (temp.getUser().Equals(player.Name)) { - Report.Report.listReports.Remove(temp); - Player admin = PlayerService.GetPlayerByNameOrId(temp.getAdmin()); - admin.SendChatMessage("!{#008fff}[REPORT]!{#FFFFFF} Chat beendet. Der User hat den Server verlassen"); + if (admin != null) + { + admin.SendChatMessage("!{#008fff}[REPORT]!{#FFFFFF} Chat beendet. Der User hat den Server verlassen"); + Report.Report.listReports.Remove(temp); + } break; } } From 6730bb049eaea6e75fd0f916e51239a22889fcf4 Mon Sep 17 00:00:00 2001 From: Fabian Date: Thu, 8 Apr 2021 19:59:54 +0200 Subject: [PATCH 13/27] fix juhuu --- ReallifeGamemode.Server/Events/Disconnect.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ReallifeGamemode.Server/Events/Disconnect.cs b/ReallifeGamemode.Server/Events/Disconnect.cs index 4465ba1d..6b502572 100644 --- a/ReallifeGamemode.Server/Events/Disconnect.cs +++ b/ReallifeGamemode.Server/Events/Disconnect.cs @@ -85,8 +85,8 @@ namespace ReallifeGamemode.Server.Events if (admin != null) { admin.SendChatMessage("!{#008fff}[REPORT]!{#FFFFFF} Chat beendet. Der User hat den Server verlassen"); - Report.Report.listReports.Remove(temp); } + Report.Report.listReports.Remove(temp); break; } } From 5d207d22e49e4838ec02eebceefd7ccf1cf459b9 Mon Sep 17 00:00:00 2001 From: Fabian Date: Thu, 8 Apr 2021 20:01:17 +0200 Subject: [PATCH 14/27] fix report wenn user offline geht --- ReallifeGamemode.Server/Events/Disconnect.cs | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/ReallifeGamemode.Server/Events/Disconnect.cs b/ReallifeGamemode.Server/Events/Disconnect.cs index 00e16acc..6b502572 100644 --- a/ReallifeGamemode.Server/Events/Disconnect.cs +++ b/ReallifeGamemode.Server/Events/Disconnect.cs @@ -65,14 +65,14 @@ namespace ReallifeGamemode.Server.Events } } */ - var listReports = Report.Report.listReports; ReportManage temp; - for (int a = 0; a < listReports.Count; a++) + for (int a = 0; a < Report.Report.listReports.Count; a++) { - temp = listReports[a]; + temp = Report.Report.listReports[a]; + if (temp.getAdmin().Equals(player.Name)) { - listReports.Remove(temp); + Report.Report.listReports.Remove(temp); Player user = PlayerService.GetPlayerByNameOrId(temp.getUser()); user.SendChatMessage("!{#008fff}[REPORT]!{#FFFFFF} Chat beendet. Der Admin hat den Server verlassen"); @@ -81,10 +81,12 @@ namespace ReallifeGamemode.Server.Events if (temp.getUser().Equals(player.Name)) { - listReports.Remove(temp); - Player admin = PlayerService.GetPlayerByNameOrId(temp.getAdmin()); - admin.SendChatMessage("!{#008fff}[REPORT]!{#FFFFFF} Chat beendet. Der User hat den Server verlassen"); + if (admin != null) + { + admin.SendChatMessage("!{#008fff}[REPORT]!{#FFFFFF} Chat beendet. Der User hat den Server verlassen"); + } + Report.Report.listReports.Remove(temp); break; } } From 9f3aee57c1a7780a39d45ad169cc6358f73a30ce Mon Sep 17 00:00:00 2001 From: Fabian Date: Thu, 8 Apr 2021 20:20:21 +0200 Subject: [PATCH 15/27] rechtschreibfehler --- ReallifeGamemode.Server/Events/Disconnect.cs | 6 ++++++ ReallifeGamemode.Server/Events/Login.cs | 2 +- ReallifeGamemode.Server/Extensions/ClientExtension.cs | 2 +- 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/ReallifeGamemode.Server/Events/Disconnect.cs b/ReallifeGamemode.Server/Events/Disconnect.cs index 6b502572..264812cd 100644 --- a/ReallifeGamemode.Server/Events/Disconnect.cs +++ b/ReallifeGamemode.Server/Events/Disconnect.cs @@ -134,6 +134,12 @@ namespace ReallifeGamemode.Server.Events user.PositionZ = pos.Z; saveUser.SaveChanges(); user.Dead = player.HasData("isDead") ? (bool)player.GetData("isDead") : false; + + if (user.Wanteds > 0) + { + ChatService.HQMessage("Der Straftäter " + player.GetUser().Name + " ist vom Radar verschwunden"); + } + } player.SetData("isLoggedIn", false); player.TriggerEvent("CLIENT:DestroyPed", 1); diff --git a/ReallifeGamemode.Server/Events/Login.cs b/ReallifeGamemode.Server/Events/Login.cs index 4e768976..2c4d7f1e 100644 --- a/ReallifeGamemode.Server/Events/Login.cs +++ b/ReallifeGamemode.Server/Events/Login.cs @@ -83,7 +83,7 @@ namespace ReallifeGamemode.Server.Events if (user.Wanteds > 0) { - ChatService.HQMessage("!{#FFFF00}** Der Straftäter" + user.Name + " hat sich mit " + user.Wanteds + " Wanteds eingeloggt."); + ChatService.HQMessage("Der Straftäter" + user.Name + " hat sich mit " + user.Wanteds + " Wanteds eingeloggt."); } if (user.Group != null) diff --git a/ReallifeGamemode.Server/Extensions/ClientExtension.cs b/ReallifeGamemode.Server/Extensions/ClientExtension.cs index e20a998e..3853d13b 100644 --- a/ReallifeGamemode.Server/Extensions/ClientExtension.cs +++ b/ReallifeGamemode.Server/Extensions/ClientExtension.cs @@ -179,7 +179,7 @@ namespace ReallifeGamemode.Server.Extensions dbContext.SaveChanges(); } ChatService.SendMessage(user.Player, "!{#FF614A}Du hast ein Verbrechen begangen: " + reason + "" + (cop != null ? " | Gemeldet von: " + cop.Name + "." : "")); - ChatService.SendMessage(user.Player, " !{#FFFF00}Fahnundgslevel:~s~ " + newWanteds); + ChatService.SendMessage(user.Player, " !{#FFFF00}Fahndungslevel:~s~ " + newWanteds); foreach (var copPlayer in NAPI.Pools.GetAllPlayers()) { From 739faa92854caf7b38bb7a9fdcc51f946786b800 Mon Sep 17 00:00:00 2001 From: Fabian Date: Thu, 8 Apr 2021 20:25:09 +0200 Subject: [PATCH 16/27] hqmessage wenn wanteds komplett abgetaucht --- ReallifeGamemode.Server/Wanted/WantedEscapeTimer.cs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/ReallifeGamemode.Server/Wanted/WantedEscapeTimer.cs b/ReallifeGamemode.Server/Wanted/WantedEscapeTimer.cs index a9640a8b..ab02d365 100644 --- a/ReallifeGamemode.Server/Wanted/WantedEscapeTimer.cs +++ b/ReallifeGamemode.Server/Wanted/WantedEscapeTimer.cs @@ -9,6 +9,7 @@ using GTANetworkAPI; using ReallifeGamemode.Database.Entities; using ReallifeGamemode.Database.Models; using ReallifeGamemode.Server.Extensions; +using ReallifeGamemode.Server.Services; namespace ReallifeGamemode.Server.Wanted { @@ -68,10 +69,11 @@ namespace ReallifeGamemode.Server.Wanted if (waTimer[user.Id] <= 0) { ResetWantedTimeToElapse(player); - player.SendChatMessage("~y~Du hast erfolgtreich einen Wanted abgetaucht."); + player.SendChatMessage("~y~Du hast erfolgreich einen Wanted abgetaucht."); user.Wanteds -= 1; if (user.Wanteds == 0) { + ChatService.HQMessage(player.Name + " konnte solange abtauchen, sodass er nicht mehr gesucht wird."); user.SetBlipAndNametagColor(); dbContext.SaveChanges(); } From 805a65261dc36dd7614c55b54d60e455408e9b5c Mon Sep 17 00:00:00 2001 From: VegaZ Date: Thu, 8 Apr 2021 20:27:09 +0200 Subject: [PATCH 17/27] Medic Fix die 10241581259 --- .../Interaction/factioninteraction.ts | 104 ++---------------- ReallifeGamemode.Server/Events/Death.cs | 2 + .../Factions/Medic/Medic.cs | 48 +------- 3 files changed, 16 insertions(+), 138 deletions(-) diff --git a/ReallifeGamemode.Client/Interaction/factioninteraction.ts b/ReallifeGamemode.Client/Interaction/factioninteraction.ts index 22948bf8..87892495 100644 --- a/ReallifeGamemode.Client/Interaction/factioninteraction.ts +++ b/ReallifeGamemode.Client/Interaction/factioninteraction.ts @@ -389,73 +389,13 @@ export default function factionInteraction(globalData: IGlobalData) { } }); - /* - mp.events.add("sortFactionTasks", (sortByKey) => { - if (firstSorting) { - sortText = "Nach Uhrzeit"; - firstSorting = false; - //mp.gui.chat.push("Init Sort"); - return; - } else { - if (sortByKey) { - if (sorting < 1) { - sorting++; - } else { - sorting = 0; - } - - switch (sorting) { - case 0: //Standartsortierung - - reviveTaskMenuMedic.Close(); - factionInteractionMenu.Close(); - sortText = "Nach Uhrzeit"; - mp.events.call("showMedicTasks", 0, JSON.stringify(initTasks)); - break; - - 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)) { - var tempTask = tasks[e]; - tasks[e] = tasks[e + 1]; - tasks[e + 1] = tempTask; - mp.gui.chat.push("SWITCH"); - } - } - } - reviveTaskMenuMedic.Close(); - factionInteractionMenu.Close(); - sortText = "Entfernung aufsteigend"; - mp.events.call("showMedicTasks", 0, JSON.stringify(tasks)); - break; - - //case 2: //Sortierung nach Metern (absteigend) - // mp.gui.chat.push("Sorting 2"); - // sortText = "Entfernung absteigend"; - // break; - //case 3: //Sortierung nach Zeit (aufsteigend) - // mp.gui.chat.push("Sorting 3"); - // sortText = "Restzeit aufsteigend"; - // break; - //case 4: //Sortierung nach Zeit (absteigend) - // mp.gui.chat.push("Sorting 4"); - // sortText = "Restzeit absteigend"; - // break; - } - } + mp.events.add('playerEnterCheckpoint', (activeCheckpoint) => { + if (activeTask.Type == 1) { + activeCheckpoint.destroy(); + activeCheckpoint = null; + activeTask = null; + timeLeft = null; } - });*/ - - function getDistance1(index) { - return mp.game.gameplay.getDistanceBetweenCoords(player.position.x, player.position.y, player.position.z, newTasks[index].Position.x, newTasks[index].Position.y, newTasks[index].Position.z, true).toFixed(2); - } - function getDistance2(index) { - return mp.game.gameplay.getDistanceBetweenCoords(player.position.x, player.position.y, player.position.z, newTasks[index].Position.x, newTasks[index].Position.y, newTasks[index].Position.z, true).toFixed(2); - } - - mp.events.add("cutMedicEarnings", () => { - deadRespawned = true; }); mp.events.add("destroyMedicTaskCheckpoint", () => { @@ -464,24 +404,6 @@ export default function factionInteraction(globalData: IGlobalData) { activeCheckpoint = null; activeTask = null; timeLeft = null; - mp.events.callRemote("MedicTaskTimeout"); - } - }); - - mp.events.add('playerEnterCheckpoint', (activeCheckpoint) => { - if (deadRespawned == true) { - activeCheckpoint.destroy(); - activeCheckpoint = null; - mp.events.callRemote("PayCutMedicEarnings"); - activeTask = null; - deadRespawned = false; - timeLeft = null; - } else if (activeTask.Type == 1) { - activeCheckpoint.destroy(); - activeCheckpoint = null; - mp.events.callRemote("delHealTaskAsMedic", activeTask.Victim); - activeTask = null; - timeLeft = null; } }); @@ -491,7 +413,7 @@ export default function factionInteraction(globalData: IGlobalData) { } }); - mp.events.add('render', () => { + function renderMedicGui() { 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) { @@ -513,18 +435,10 @@ export default function factionInteraction(globalData: IGlobalData) { } } - var currentDate = new Date(); - if (timeLeft != null) { if (deadRespawned == false) { - //timeLeft = Math.round(Math.abs(Math.floor(currentDate.getTime() / 1000) - activeTask.TimeLeft - 60)); - if (timeLeft < 120) mp.events.call("cutMedicEarnings"); - } else { - //timeLeft = Math.round(Math.abs(Math.floor(currentDate.getTime() / 1000) - activeTask.TimeLeft - 120)); if (timeLeft < 1) mp.events.call("destroyMedicTaskCheckpoint"); - } - if (deadRespawned == false) { mp.game.graphics.drawText(timeLeft + "s", [0.5, 0.85], { font: 7, color: [60, 179, 113, 255], @@ -545,5 +459,9 @@ export default function factionInteraction(globalData: IGlobalData) { } } } + } + + mp.events.add('render', () => { + renderMedicGui(); }); } \ No newline at end of file diff --git a/ReallifeGamemode.Server/Events/Death.cs b/ReallifeGamemode.Server/Events/Death.cs index dacb3cb9..3d8993d1 100644 --- a/ReallifeGamemode.Server/Events/Death.cs +++ b/ReallifeGamemode.Server/Events/Death.cs @@ -13,6 +13,7 @@ using ReallifeGamemode.Server.Services; using ReallifeGamemode.Server.Types; using ReallifeGamemode.Server.Util; using ReallifeGamemode.Server.Wanted; +using ReallifeGamemode.Services; /** * @overview Life of German Reallife - Events Death (Death.cs) @@ -234,6 +235,7 @@ namespace ReallifeGamemode.Server.Events } player.RemoveAllWeapons(); MedicTask task = Medic.ReviveTasks.FirstOrDefault(t => t.Victim == player.Name); + Player medicPlayer = PlayerService.GetPlayerByNameOrId(task.MedicName); Medic.RemoveTaskFromList(task); NAPI.Player.SpawnPlayer(player, new Vector3(-495.45, -336.33, 34.5), -98.36f); diff --git a/ReallifeGamemode.Server/Factions/Medic/Medic.cs b/ReallifeGamemode.Server/Factions/Medic/Medic.cs index 41447614..a779696b 100644 --- a/ReallifeGamemode.Server/Factions/Medic/Medic.cs +++ b/ReallifeGamemode.Server/Factions/Medic/Medic.cs @@ -26,7 +26,7 @@ namespace ReallifeGamemode.Server.Factions.Medic public static List HealDecisions = new List(); public static int ReviveIncome = 100; public static int dutyMedics = 0; - public static int reviveTaskTime = 240; + public static int reviveTaskTime = 120; public class HealDecision { @@ -156,14 +156,14 @@ namespace ReallifeGamemode.Server.Factions.Medic public static void UpdateTaskTimeLeft() { - DateTime actualTime = DateTime.Now; if (ReviveTasks.Count != 0) { + DateTime actualTime = DateTime.Now; foreach (var task in ReviveTasks) { if (task.MedicName != null) { - var taskTimeLeft = Math.Abs((Int32)(((DateTimeOffset)actualTime).ToUnixTimeSeconds() - ((DateTimeOffset)task.Time).ToUnixTimeSeconds() - reviveTaskTime)); + var taskTimeLeft = Math.Abs((int)(((DateTimeOffset)actualTime).ToUnixTimeSeconds() - ((DateTimeOffset)task.Time).ToUnixTimeSeconds() - reviveTaskTime)); task.TimeLeft = taskTimeLeft; var medic = PlayerService.GetPlayerByNameOrId(task.MedicName); if(medic != null) medic.TriggerEvent("setTaskTimeLeft", taskTimeLeft); @@ -239,48 +239,6 @@ namespace ReallifeGamemode.Server.Factions.Medic MedicTask task = ReviveTasks.FirstOrDefault(t => t.Victim == player.Name); RemoveTaskFromList(task); } - [RemoteEvent("delReviveTaskMedic")] - public static void delReviveTaskMedic(Player player) - { - MedicTask task = ReviveTasks.FirstOrDefault(t => t.MedicName == player.Name); - RemoveTaskFromList(task); - } - - [RemoteEvent("CutMedicEarnings")] - public void CutMedicEarnings(Player player) - { - MedicTask task = ReviveTasks.FirstOrDefault(t => t.Victim == player.Name); - var medic = PlayerService.GetPlayerByNameOrId(task.MedicName); - medic.TriggerEvent("cutMedicEarnings"); - } - [RemoteEvent("PayCutMedicEarnings")] - public void PayCutMedicEarnings(Player player) - { - using var dbContext = new DatabaseContext(); - { - dbContext.Factions.Include(f => f.BankAccount).Where(f => f.Id == 2).First().BankAccount.Balance += Medic.ReviveIncome / 4; - player.SendNotification($"Du hast den Einsatzort erreicht und ~g~{Medic.ReviveIncome / 4}$ ~s~für die Fraktion verdient."); - Medic.delReviveTaskMedic(player); - dbContext.SaveChanges(); - } - } - - [RemoteEvent("MedicTaskTimeout")] - public void RemoveMedicTask(Player player) - { - Medic.delReviveTaskMedic(player); - } - - [RemoteEvent("getTaskTimeLeft")] - public void GetTaskTimeLeft(Player player, string victimName) - { - using var dbContext = new DatabaseContext(); - { - var activeTaskTime = ReviveTasks.FirstOrDefault(t => t.MedicName == player.Name && t.Victim == victimName).TimeLeft; - - player.TriggerEvent("setTaskTimeLeft", activeTaskTime); - } - } public static void UpdateDutyMedics(int modifier) { From 1e6303c234af65c8c8b0bee701f793aacc13531e Mon Sep 17 00:00:00 2001 From: VegaZ Date: Thu, 8 Apr 2021 21:06:47 +0200 Subject: [PATCH 18/27] Fix Respawnposition while Dead --- ReallifeGamemode.Server/Events/Login.cs | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/ReallifeGamemode.Server/Events/Login.cs b/ReallifeGamemode.Server/Events/Login.cs index 2c4d7f1e..95b25e83 100644 --- a/ReallifeGamemode.Server/Events/Login.cs +++ b/ReallifeGamemode.Server/Events/Login.cs @@ -132,23 +132,26 @@ namespace ReallifeGamemode.Server.Events } player.TriggerEvent("draw", player.Name, player.Handle.Value); - if (user.Dead == true) + NAPI.Task.Run(() => { - if (user.IsAdmin(AdminLevel.ADMIN) == true) + if (user.Dead == true) { - player.TriggerEvent("startDeathTimer", true); + if (user.IsAdmin(AdminLevel.ADMIN) == true) + { + player.TriggerEvent("startDeathTimer", true); + } + else + { + player.TriggerEvent("startDeathTimer", false); + } + player.Health = 0; + player.SetData("isDead", true); } else { - player.TriggerEvent("startDeathTimer", false); + player.SetData("isDead", false); } - player.Health = 0; - player.SetData("isDead", true); - } - else - { - player.SetData("isDead", false); - } + }, delayTime: 1000); } } } From c49e1af6c797ce020be178a271ae9d6b4c75d630 Mon Sep 17 00:00:00 2001 From: VegaZ Date: Thu, 8 Apr 2021 21:31:16 +0200 Subject: [PATCH 19/27] Fix HealPoint --- .../Interaction/factioninteraction.ts | 11 +++++++++++ ReallifeGamemode.Server/Events/Disconnect.cs | 7 ++++++- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/ReallifeGamemode.Client/Interaction/factioninteraction.ts b/ReallifeGamemode.Client/Interaction/factioninteraction.ts index 87892495..27c56ed3 100644 --- a/ReallifeGamemode.Client/Interaction/factioninteraction.ts +++ b/ReallifeGamemode.Client/Interaction/factioninteraction.ts @@ -216,6 +216,7 @@ export default function factionInteraction(globalData: IGlobalData) { let reviveTaskMenuMedic; let healTaskMenuMedic; let fireTaskMenuMedic; + let deleteCheckpointItem; if (userFactionId == 2) { if (isDuty) { @@ -231,6 +232,10 @@ export default function factionInteraction(globalData: IGlobalData) { fireTaskMenuMedic.SetRightLabel(fPM + fireTaskCountMedic); factionInteractionMenu.AddItem(fireTaskMenuMedic); */ + if (activeTask.Type == 1 && activeCheckpoint && mp.checkpoints.exists(activeCheckpoint)) { + deleteCheckpointItem = new UIMenuItem("~r~Checkpoint löschen"); + + } } } @@ -260,6 +265,12 @@ export default function factionInteraction(globalData: IGlobalData) { mp.gui.chat.activate(true); globalData.InMenu = false; break; + case deleteCheckpointItem: + factionInteractionMenu.Close(); + mp.gui.chat.activate(true); + globalData.InMenu = false; + break; + } }); diff --git a/ReallifeGamemode.Server/Events/Disconnect.cs b/ReallifeGamemode.Server/Events/Disconnect.cs index 264812cd..6d3c6eb8 100644 --- a/ReallifeGamemode.Server/Events/Disconnect.cs +++ b/ReallifeGamemode.Server/Events/Disconnect.cs @@ -144,8 +144,13 @@ namespace ReallifeGamemode.Server.Events player.SetData("isLoggedIn", false); player.TriggerEvent("CLIENT:DestroyPed", 1); player.TriggerEvent("CLIENT:DestroyPed", 2); - player.TriggerEvent("CLIENT:DestroyPed", 3); + player.TriggerEvent("CLIENT:DestroyPed", 3); player.TriggerEvent("CLIENT:DestroyPed", 4); + + MedicTask task = Medic.ReviveTasks.FirstOrDefault(t => t.Victim == player.Name); + Player medicPlayer = PlayerService.GetPlayerByNameOrId(task.MedicName); + medicPlayer.TriggerEvent("destroyMedicTaskCheckpoint"); + Medic.delHealTask(player); Medic.delReviveTask(player); if (player.GetData("duty") == true) From eea9f9dc3844ac453d488dfe379c06e426490e10 Mon Sep 17 00:00:00 2001 From: VegaZ Date: Thu, 8 Apr 2021 21:35:00 +0200 Subject: [PATCH 20/27] Fix again --- ReallifeGamemode.Client/Interaction/factioninteraction.ts | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/ReallifeGamemode.Client/Interaction/factioninteraction.ts b/ReallifeGamemode.Client/Interaction/factioninteraction.ts index 27c56ed3..4074d49f 100644 --- a/ReallifeGamemode.Client/Interaction/factioninteraction.ts +++ b/ReallifeGamemode.Client/Interaction/factioninteraction.ts @@ -232,9 +232,10 @@ export default function factionInteraction(globalData: IGlobalData) { fireTaskMenuMedic.SetRightLabel(fPM + fireTaskCountMedic); factionInteractionMenu.AddItem(fireTaskMenuMedic); */ - if (activeTask.Type == 1 && activeCheckpoint && mp.checkpoints.exists(activeCheckpoint)) { - deleteCheckpointItem = new UIMenuItem("~r~Checkpoint löschen"); - + if (activeTask != null) { + if (activeTask.Type == 1 && activeCheckpoint && mp.checkpoints.exists(activeCheckpoint)) { + deleteCheckpointItem = new UIMenuItem("~r~Checkpoint löschen"); + } } } } From 654c17e20cfbeec59ff5190880acdf8ebe4c156e Mon Sep 17 00:00:00 2001 From: VegaZ Date: Thu, 8 Apr 2021 22:51:11 +0200 Subject: [PATCH 21/27] Fix Medic System 3 --- .../Interaction/factioninteraction.ts | 2 ++ ReallifeGamemode.Server/Events/Disconnect.cs | 4 ---- ReallifeGamemode.Server/Factions/Medic/Medic.cs | 17 ++++++++++++++--- 3 files changed, 16 insertions(+), 7 deletions(-) diff --git a/ReallifeGamemode.Client/Interaction/factioninteraction.ts b/ReallifeGamemode.Client/Interaction/factioninteraction.ts index 4074d49f..c2489d92 100644 --- a/ReallifeGamemode.Client/Interaction/factioninteraction.ts +++ b/ReallifeGamemode.Client/Interaction/factioninteraction.ts @@ -235,6 +235,7 @@ export default function factionInteraction(globalData: IGlobalData) { if (activeTask != null) { if (activeTask.Type == 1 && activeCheckpoint && mp.checkpoints.exists(activeCheckpoint)) { deleteCheckpointItem = new UIMenuItem("~r~Checkpoint löschen"); + factionInteractionMenu.AddItem(deleteCheckpointItem); } } } @@ -270,6 +271,7 @@ export default function factionInteraction(globalData: IGlobalData) { factionInteractionMenu.Close(); mp.gui.chat.activate(true); globalData.InMenu = false; + mp.events.call("destroyMedicTaskCheckpoint"); break; } diff --git a/ReallifeGamemode.Server/Events/Disconnect.cs b/ReallifeGamemode.Server/Events/Disconnect.cs index 6d3c6eb8..886357c5 100644 --- a/ReallifeGamemode.Server/Events/Disconnect.cs +++ b/ReallifeGamemode.Server/Events/Disconnect.cs @@ -147,10 +147,6 @@ namespace ReallifeGamemode.Server.Events player.TriggerEvent("CLIENT:DestroyPed", 3); player.TriggerEvent("CLIENT:DestroyPed", 4); - MedicTask task = Medic.ReviveTasks.FirstOrDefault(t => t.Victim == player.Name); - Player medicPlayer = PlayerService.GetPlayerByNameOrId(task.MedicName); - medicPlayer.TriggerEvent("destroyMedicTaskCheckpoint"); - Medic.delHealTask(player); Medic.delReviveTask(player); if (player.GetData("duty") == true) diff --git a/ReallifeGamemode.Server/Factions/Medic/Medic.cs b/ReallifeGamemode.Server/Factions/Medic/Medic.cs index a779696b..679bec9a 100644 --- a/ReallifeGamemode.Server/Factions/Medic/Medic.cs +++ b/ReallifeGamemode.Server/Factions/Medic/Medic.cs @@ -221,8 +221,13 @@ namespace ReallifeGamemode.Server.Factions.Medic public static void delHealTask(Player player) { MedicTask task = HealTasks.FirstOrDefault(t => t.Victim == player.Name); - if(task != null) RemoveTaskFromList(task); - player.SetData("healauftrag", false); + if (task != null) + { + RemoveTaskFromList(task); + player.SetData("healauftrag", false); + var medicPlayer = PlayerService.GetPlayerByNameOrId(task.MedicName); + medicPlayer.TriggerEvent("destroyMedicTaskCheckpoint"); + } } [RemoteEvent("delHealTaskAsMedic")] @@ -231,13 +236,19 @@ namespace ReallifeGamemode.Server.Factions.Medic MedicTask task = HealTasks.FirstOrDefault(t => t.Victim == victimName); RemoveTaskFromList(task); player.SetData("healauftrag", false); + } [RemoteEvent("delReviveTask")] public static void delReviveTask(Player player) { MedicTask task = ReviveTasks.FirstOrDefault(t => t.Victim == player.Name); - RemoveTaskFromList(task); + if (task != null) + { + var medicPlayer = PlayerService.GetPlayerByNameOrId(task.MedicName); + medicPlayer.TriggerEvent("destroyMedicTaskCheckpoint"); + RemoveTaskFromList(task); + } } public static void UpdateDutyMedics(int modifier) From 459022afb591f031e6427f218197e81dcd202acf Mon Sep 17 00:00:00 2001 From: hydrant Date: Thu, 8 Apr 2021 23:18:32 +0200 Subject: [PATCH 22/27] [HOTFIX] Fix server crash when gangwar player leaves server --- ReallifeGamemode.Server/Gangwar/Turf.cs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/ReallifeGamemode.Server/Gangwar/Turf.cs b/ReallifeGamemode.Server/Gangwar/Turf.cs index 26ca2e86..62321bcc 100644 --- a/ReallifeGamemode.Server/Gangwar/Turf.cs +++ b/ReallifeGamemode.Server/Gangwar/Turf.cs @@ -210,11 +210,12 @@ namespace ReallifeGamemode.Server.Gangwar public void enter(Player client) { + User user = client.GetUser(); if (this.status == "attack") { - if (client.GetUser().Faction.Name != getOwner() && client.GetUser().Faction.Name != getAttacker()) + if (user.Faction.Name != getOwner() && user.Faction.Name != getAttacker()) return; - Player gPlayer = playerInGangwar.Where(c => c.GetUser().Id == client.GetUser().Id).FirstOrDefault(); + Player gPlayer = playerInGangwar.Where(c => c != null && !c.Handle.IsNull && c.IsLoggedIn() && c.GetUser().Id == user.Id).FirstOrDefault(); if (gPlayer == null) { using (var dbContext = new DatabaseContext()) @@ -226,6 +227,7 @@ namespace ReallifeGamemode.Server.Gangwar } } + if (playerInside.Find(c => c == client) == null) { playerInside.Add(client); From f139dfdab7266da1499853ecc8002e4dace560d9 Mon Sep 17 00:00:00 2001 From: VegaZ Date: Thu, 8 Apr 2021 23:33:19 +0200 Subject: [PATCH 23/27] add Checkpoint Update Sani --- .../Interaction/factioninteraction.ts | 9 +++++++- .../Commands/FactionCommands.cs | 1 + .../Factions/Medic/Medic.cs | 21 +++++++++++++++++-- ReallifeGamemode.Server/Util/ThreadTimers.cs | 13 ++++++++++++ 4 files changed, 41 insertions(+), 3 deletions(-) diff --git a/ReallifeGamemode.Client/Interaction/factioninteraction.ts b/ReallifeGamemode.Client/Interaction/factioninteraction.ts index c2489d92..54642ae2 100644 --- a/ReallifeGamemode.Client/Interaction/factioninteraction.ts +++ b/ReallifeGamemode.Client/Interaction/factioninteraction.ts @@ -17,7 +17,7 @@ export default function factionInteraction(globalData: IGlobalData) { var sorting = 0; var firstSorting = true; var activeTask = null; - var activeCheckpoint; + var activeCheckpoint: CheckpointMp; var taskStart; var taskFinish; var taskRange; @@ -427,6 +427,13 @@ export default function factionInteraction(globalData: IGlobalData) { } }); + mp.events.add('updateHealCheckpoint', (xPos, yPos, zPos) => { + if (activeTask && activeTask.Type == 1) { + activeCheckpoint.setCoords(xPos, yPos, zPos, false, false, false, false); + mp.game.ui.setNewWaypoint(xPos, yPos); + } + }); + function renderMedicGui() { 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); diff --git a/ReallifeGamemode.Server/Commands/FactionCommands.cs b/ReallifeGamemode.Server/Commands/FactionCommands.cs index 358cb273..eec24506 100644 --- a/ReallifeGamemode.Server/Commands/FactionCommands.cs +++ b/ReallifeGamemode.Server/Commands/FactionCommands.cs @@ -398,6 +398,7 @@ namespace ReallifeGamemode.Server.Commands ChatService.SendMessage(target, "~g~" + player.Name + " ~s~möchte dich für ~g~$" + price + " ~s~heilen. Drücke ~g~J~s~ zum Erlauben oder ~r~N ~s~zum Verbieten"); player.SendNotification("Du hast " + target.Name + " einen Heal angeboten", false); target.SetData("healDecision", true); + Medic.delHealTask(target); Medic.HealDecisions.Add(new Medic.HealDecision { dMedic = player, dTarget = target, dPrice = price }); } diff --git a/ReallifeGamemode.Server/Factions/Medic/Medic.cs b/ReallifeGamemode.Server/Factions/Medic/Medic.cs index 679bec9a..4b5e634f 100644 --- a/ReallifeGamemode.Server/Factions/Medic/Medic.cs +++ b/ReallifeGamemode.Server/Factions/Medic/Medic.cs @@ -149,7 +149,7 @@ namespace ReallifeGamemode.Server.Factions.Medic activeDecision.dTarget.Health = 100; activeDecision.dTarget.SendNotification($"Du wurdest von ~g~{activeDecision.dMedic.Name} ~s~ für ~g~{activeDecision.dPrice.ToMoneyString()} geheilt", false); activeDecision.dMedic.SendNotification($"Du hast ~g~{activeDecision.dTarget.Name} ~s~ für {activeDecision.dPrice.ToMoneyString()} geheilt", false); - delHealTask(activeDecision.dTarget); + delHealTask(activeDecision.dTarget); } HealDecisions.Remove(activeDecision); } @@ -161,7 +161,7 @@ namespace ReallifeGamemode.Server.Factions.Medic DateTime actualTime = DateTime.Now; foreach (var task in ReviveTasks) { - if (task.MedicName != null) + if (task.MedicName != "none") { var taskTimeLeft = Math.Abs((int)(((DateTimeOffset)actualTime).ToUnixTimeSeconds() - ((DateTimeOffset)task.Time).ToUnixTimeSeconds() - reviveTaskTime)); task.TimeLeft = taskTimeLeft; @@ -172,6 +172,23 @@ namespace ReallifeGamemode.Server.Factions.Medic } } + public static void UpdateHealTaskCheckpoint() + { + if (HealTasks.Count != 0) + { + foreach(var task in HealTasks) + { + if(task.MedicName != "none") + { + var medic = PlayerService.GetPlayerByNameOrId(task.MedicName); + var victim = PlayerService.GetPlayerByNameOrId(task.Victim); + task.Position = victim.Position; + medic.TriggerEvent("updateHealCheckpoint", victim.Position.X, victim.Position.Y, victim.Position.Z); + } + } + } + } + [RemoteEvent("loadMedicTasks")] public void LoadMedicTasks(Player player, int type) { diff --git a/ReallifeGamemode.Server/Util/ThreadTimers.cs b/ReallifeGamemode.Server/Util/ThreadTimers.cs index 1d79d970..f0b2a057 100644 --- a/ReallifeGamemode.Server/Util/ThreadTimers.cs +++ b/ReallifeGamemode.Server/Util/ThreadTimers.cs @@ -14,6 +14,7 @@ namespace ReallifeGamemode.Server.Util private static Timer timer500 = new Timer(500); //0.5 seconds timer private static Timer timer1000 = new Timer(1000); //1 seconds timer private static Timer timer2500 = new Timer(2500); //2.5 seconds timer + private static Timer timer5000 = new Timer(5000); //5 seconds timer private static Timer timer10000 = new Timer(10000); // 10 second timer private static Timer timer60000 = new Timer(60000); //60 seconds timer @@ -28,6 +29,9 @@ namespace ReallifeGamemode.Server.Util timer2500.Start(); timer2500.Elapsed += Timer2500_Elapsed; + timer5000.Start(); + timer5000.Elapsed += Timer5000_Elapsed; + timer10000.Start(); timer10000.Elapsed += Timer10000_Elapsed; @@ -53,6 +57,15 @@ namespace ReallifeGamemode.Server.Util }); } + private static void Timer5000_Elapsed(object sender, ElapsedEventArgs e) + { + NAPI.Task.Run(() => + { + Medic.UpdateHealTaskCheckpoint(); + }); + } + + private static void Timer60000_Elapsed(object sender, ElapsedEventArgs e) { NAPI.Task.Run(() => From 850d05b4f1bd5fca23d56daad309e7755bd09476 Mon Sep 17 00:00:00 2001 From: VegaZ Date: Thu, 8 Apr 2021 23:48:06 +0200 Subject: [PATCH 24/27] Sani Sicherheitscheck eingebaut --- .../Interaction/factioninteraction.ts | 3 ++- ReallifeGamemode.Server/Factions/Medic/Medic.cs | 14 ++++++++++---- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/ReallifeGamemode.Client/Interaction/factioninteraction.ts b/ReallifeGamemode.Client/Interaction/factioninteraction.ts index 54642ae2..f691f9fa 100644 --- a/ReallifeGamemode.Client/Interaction/factioninteraction.ts +++ b/ReallifeGamemode.Client/Interaction/factioninteraction.ts @@ -1,5 +1,6 @@ import * as NativeUI from '../libs/NativeUI'; import InputHelper from '../inputhelper'; +import relativeVector from '../util/relativevector'; const Menu = NativeUI.Menu; const UIMenuItem = NativeUI.UIMenuItem; const UIMenuListItem = NativeUI.UIMenuListItem; @@ -429,7 +430,7 @@ export default function factionInteraction(globalData: IGlobalData) { mp.events.add('updateHealCheckpoint', (xPos, yPos, zPos) => { if (activeTask && activeTask.Type == 1) { - activeCheckpoint.setCoords(xPos, yPos, zPos, false, false, false, false); + activeCheckpoint.setCoords2(xPos, yPos, zPos, 0, 0, 0, false); mp.game.ui.setNewWaypoint(xPos, yPos); } }); diff --git a/ReallifeGamemode.Server/Factions/Medic/Medic.cs b/ReallifeGamemode.Server/Factions/Medic/Medic.cs index 4b5e634f..89c8fbe7 100644 --- a/ReallifeGamemode.Server/Factions/Medic/Medic.cs +++ b/ReallifeGamemode.Server/Factions/Medic/Medic.cs @@ -239,11 +239,14 @@ namespace ReallifeGamemode.Server.Factions.Medic { MedicTask task = HealTasks.FirstOrDefault(t => t.Victim == player.Name); if (task != null) - { - RemoveTaskFromList(task); + { player.SetData("healauftrag", false); var medicPlayer = PlayerService.GetPlayerByNameOrId(task.MedicName); - medicPlayer.TriggerEvent("destroyMedicTaskCheckpoint"); + if (task.MedicName != "none") + { + medicPlayer.TriggerEvent("destroyMedicTaskCheckpoint"); + } + RemoveTaskFromList(task); } } @@ -263,7 +266,10 @@ namespace ReallifeGamemode.Server.Factions.Medic if (task != null) { var medicPlayer = PlayerService.GetPlayerByNameOrId(task.MedicName); - medicPlayer.TriggerEvent("destroyMedicTaskCheckpoint"); + if (task.MedicName != "none") + { + medicPlayer.TriggerEvent("destroyMedicTaskCheckpoint"); + } RemoveTaskFromList(task); } } From 163f9ea6895eae8073e777acb4a4621b894b176b Mon Sep 17 00:00:00 2001 From: hydrant Date: Thu, 8 Apr 2021 23:57:05 +0200 Subject: [PATCH 25/27] copmord 14 autowanted --- ReallifeGamemode.Server/Wanted/Autowanted.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ReallifeGamemode.Server/Wanted/Autowanted.cs b/ReallifeGamemode.Server/Wanted/Autowanted.cs index 6ca6db5a..f24841dc 100644 --- a/ReallifeGamemode.Server/Wanted/Autowanted.cs +++ b/ReallifeGamemode.Server/Wanted/Autowanted.cs @@ -28,7 +28,7 @@ namespace ReallifeGamemode.Server.Wanted using (var dbContext = new DatabaseContext()) { killer = killerPlayer.GetUser(dbContext); - killer.GiveWanteds(copPlayer, 10, "Beamten-Mord"); + killer.GiveWanteds(copPlayer, 14, "Beamten-Mord"); dbContext.SaveChanges(); } } From 7f875c3c920dae68f99a8910eed98cc7ae5810ab Mon Sep 17 00:00:00 2001 From: VegaZ Date: Fri, 9 Apr 2021 00:05:46 +0200 Subject: [PATCH 26/27] Fix Client Medic Checkpoint --- .../Interaction/factioninteraction.ts | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/ReallifeGamemode.Client/Interaction/factioninteraction.ts b/ReallifeGamemode.Client/Interaction/factioninteraction.ts index f691f9fa..6f73e988 100644 --- a/ReallifeGamemode.Client/Interaction/factioninteraction.ts +++ b/ReallifeGamemode.Client/Interaction/factioninteraction.ts @@ -320,7 +320,7 @@ export default function factionInteraction(globalData: IGlobalData) { mp.game.graphics.requestStreamedTextureDict("medicimages", true); 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, + activeCheckpoint = mp.checkpoints.new(41, 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], @@ -374,7 +374,7 @@ export default function factionInteraction(globalData: IGlobalData) { mp.game.graphics.requestStreamedTextureDict("medicimages", true); 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, + activeCheckpoint = mp.checkpoints.new(41, 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], @@ -430,7 +430,16 @@ export default function factionInteraction(globalData: IGlobalData) { mp.events.add('updateHealCheckpoint', (xPos, yPos, zPos) => { if (activeTask && activeTask.Type == 1) { - activeCheckpoint.setCoords2(xPos, yPos, zPos, 0, 0, 0, false); + activeCheckpoint.destroy(); + activeCheckpoint = null; + activeCheckpoint = mp.checkpoints.new(41, new mp.Vector3(xPos, yPos, zPos - 2), 3.0, + { + direction: new mp.Vector3(xPos, yPos, zPos - 5), + color: [255, 0, 0, 150], + visible: true, + dimension: 0 + }); + mp.game.ui.setNewWaypoint(xPos, yPos); } }); From 0080461f07be0526a5286e377184cf1038ac6fc6 Mon Sep 17 00:00:00 2001 From: VegaZ Date: Fri, 9 Apr 2021 00:08:43 +0200 Subject: [PATCH 27/27] Fix Client Medic Checkpoint --- ReallifeGamemode.Client/Interaction/factioninteraction.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/ReallifeGamemode.Client/Interaction/factioninteraction.ts b/ReallifeGamemode.Client/Interaction/factioninteraction.ts index 6f73e988..f10a8a11 100644 --- a/ReallifeGamemode.Client/Interaction/factioninteraction.ts +++ b/ReallifeGamemode.Client/Interaction/factioninteraction.ts @@ -320,7 +320,7 @@ export default function factionInteraction(globalData: IGlobalData) { mp.game.graphics.requestStreamedTextureDict("medicimages", true); mp.events.callRemote("updateMedicTask", 0, tasks[index].Victim); mp.game.ui.setNewWaypoint(tasks[index].Position.x, tasks[index].Position.y); - activeCheckpoint = mp.checkpoints.new(41, new mp.Vector3(tasks[index].Position.x, tasks[index].Position.y, tasks[index].Position.z - 2), 3.0, + activeCheckpoint = mp.checkpoints.new(4, 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], @@ -374,7 +374,7 @@ export default function factionInteraction(globalData: IGlobalData) { mp.game.graphics.requestStreamedTextureDict("medicimages", true); mp.events.callRemote("updateMedicTask", 1, tasks[index].Victim); mp.game.ui.setNewWaypoint(tasks[index].Position.x, tasks[index].Position.y); - activeCheckpoint = mp.checkpoints.new(41, new mp.Vector3(tasks[index].Position.x, tasks[index].Position.y, tasks[index].Position.z - 2), 3.0, + activeCheckpoint = mp.checkpoints.new(4, 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], @@ -432,7 +432,7 @@ export default function factionInteraction(globalData: IGlobalData) { if (activeTask && activeTask.Type == 1) { activeCheckpoint.destroy(); activeCheckpoint = null; - activeCheckpoint = mp.checkpoints.new(41, new mp.Vector3(xPos, yPos, zPos - 2), 3.0, + activeCheckpoint = mp.checkpoints.new(4, new mp.Vector3(xPos, yPos, zPos - 2), 3.0, { direction: new mp.Vector3(xPos, yPos, zPos - 5), color: [255, 0, 0, 150],