From 49255eafd20e79a5f868ed1c2d4437cd2953a473 Mon Sep 17 00:00:00 2001 From: hydrant Date: Sun, 25 Apr 2021 13:33:06 +0200 Subject: [PATCH 001/114] Gangwar: Meldung an alle bei Start/Ende --- ReallifeGamemode.Server/Gangwar/Turf.cs | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/ReallifeGamemode.Server/Gangwar/Turf.cs b/ReallifeGamemode.Server/Gangwar/Turf.cs index 8f0466c5..9d6e011e 100644 --- a/ReallifeGamemode.Server/Gangwar/Turf.cs +++ b/ReallifeGamemode.Server/Gangwar/Turf.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; @@ -259,10 +259,13 @@ namespace ReallifeGamemode.Server.Gangwar return; } + string takeOverMessage = string.Empty; + if (getOwner() == FactionName) { - ChatService.BroadcastFaction("~y~[GANGWAR] ~w~Deine Fraktion hat erfolgreich das Gebiet ~g~" + getName() + "~w~ verteidigt.", ownerFaction); - ChatService.BroadcastFaction("~y~[GANGWAR] ~w~Deine Fraktion hat den Angrif auf das Gebiet ~r~" + getName() + "~w~ verloren.", attackerFaction); + takeOverMessage = $"~y~[GANGWAR] ~w~Die {getOwner()} konnten ihr Gebiet ~g~{getName()} ~w~ erfolgreich gegen die {getAttacker()} verteidigen."; + //ChatService.BroadcastFaction("~y~[GANGWAR] ~w~Deine Fraktion hat erfolgreich das Gebiet ~g~" + getName() + "~w~ verteidigt.", ownerFaction); + //ChatService.BroadcastFaction("~y~[GANGWAR] ~w~Deine Fraktion hat den Angrif auf das Gebiet ~r~" + getName() + "~w~ verloren.", attackerFaction); foreach (var o in owners) { @@ -276,8 +279,9 @@ namespace ReallifeGamemode.Server.Gangwar } else if (getOwner() != FactionName) { - ChatService.BroadcastFaction("~y~[GANGWAR] ~w~Deine Fraktion konnte das Gebiet ~r~" + getName() + "~w~ nicht verteidigen.", ownerFaction); - ChatService.BroadcastFaction("~y~[GANGWAR] ~w~Deine Fraktion konnte erfolgreich das Gebiet ~g~" + getName() + "~w~ erobern.", attackerFaction); + takeOverMessage = $"~y~[GANGWAR] ~w~Die {getAttacker()} konnten das Gebiet ~g~{getName()} ~w~ der {getAttacker()} erfolgreich erobern."; + //ChatService.BroadcastFaction("~y~[GANGWAR] ~w~Deine Fraktion konnte das Gebiet ~r~" + getName() + "~w~ nicht verteidigen.", ownerFaction); + //ChatService.BroadcastFaction("~y~[GANGWAR] ~w~Deine Fraktion konnte erfolgreich das Gebiet ~g~" + getName() + "~w~ erobern.", attackerFaction); foreach (var o in owners) { if (o != null) @@ -294,6 +298,7 @@ namespace ReallifeGamemode.Server.Gangwar turf.Owner = this.Owner; turf.FactionId = attackerFaction.Id; } + ChatService.Broadcast(takeOverMessage); dbContext.SaveChanges(); } this.Attacker = null; @@ -358,9 +363,11 @@ namespace ReallifeGamemode.Server.Gangwar u.TriggerEvent("CLIENT:setAttackBlip", true, TurfID); u.TriggerEvent("GangwarScore", this.Attacker, this.Owner, this.Att_Score, this.Def_Score); u.SetData("inGangWar", getId()); - ChatService.SendMessage(u, "~y~[GANGWAR]~w~ Die " + getAttacker() + " haben das Gebiet ~y~" + TurfName + "~w~ der " + getOwner() + " angegriffen."); clientsInGangwar.Add(u); } + + ChatService.Broadcast("~y~[GANGWAR]~w~ Die " + getAttacker() + " haben das Gebiet ~y~" + TurfName + "~w~ der " + getOwner() + " angegriffen."); + playerInGangwar = clientsInGangwar.ToArray(); NAPI.ClientEvent.TriggerClientEventForAll("CLIENT:Turf_Update", JsonConvert.SerializeObject(this.TurfID), JsonConvert.SerializeObject(this.status), JsonConvert.SerializeObject(this.Owner), JsonConvert.SerializeObject(this.Attacker)); this.TurfTick(); From fa03d86d3f6beda0c97fb548ee5a0ccda175b2cd Mon Sep 17 00:00:00 2001 From: Fabian Date: Sun, 25 Apr 2021 17:15:44 +0200 Subject: [PATCH 002/114] first draft eventport --- .../Commands/UserCommands.cs | 49 ++++++++++++++++++- .../Managers/PositionManager.cs | 3 ++ 2 files changed, 51 insertions(+), 1 deletion(-) diff --git a/ReallifeGamemode.Server/Commands/UserCommands.cs b/ReallifeGamemode.Server/Commands/UserCommands.cs index 1afc483c..18ce329f 100644 --- a/ReallifeGamemode.Server/Commands/UserCommands.cs +++ b/ReallifeGamemode.Server/Commands/UserCommands.cs @@ -16,7 +16,54 @@ using ReallifeGamemode.Services; namespace ReallifeGamemode.Server.Commands { internal class UserCommands : Script - { + { + [Command("eventport", "~m~eventport")] + public void CmdUserEventport(Player player, String option = "") + { + if (!player.IsLoggedIn()) return; + + if (option == "on") + { + if (!player.GetUser()?.IsAdmin(AdminLevel.ADMIN) ?? true) + { + return; + } + PositionManager.eventportPosition = player.Position; + PositionManager.eventportActive = true; + player.SendChatMessage("~y~Du hast hier erfolgreich einen Eventport gesetzt."); + return; + } + + if (option == "off") + { + if (!player.GetUser()?.IsAdmin(AdminLevel.ADMIN) ?? true) + { + return; + } + PositionManager.eventportActive = false; + player.SendChatMessage("Du hast den Eventport deaktiviert."); + return; + } + + if (!PositionManager.eventportActive || PositionManager.eventportPosition == null) + { + player.SendChatMessage("Im Moment ist kein Eventport aktiv."); + return; + } + + using (var dbContext = new DatabaseContext()) + { + User user = player.GetUser(dbContext); + if (user.Wanteds > 0 || user.JailTime > 0 || player.HasData("inGangWar") || !player.IsAlive()) + { + ChatService.ErrorMessage(player, "Momentan kannst du keinen Eventport nutzen"); + return; + } + } + + player.SafeTeleport(PositionManager.eventportPosition); + } + [Command("look", "~m~look")] public void CmdUserLook(Player player) { diff --git a/ReallifeGamemode.Server/Managers/PositionManager.cs b/ReallifeGamemode.Server/Managers/PositionManager.cs index 7a3c8c05..c23a06b3 100644 --- a/ReallifeGamemode.Server/Managers/PositionManager.cs +++ b/ReallifeGamemode.Server/Managers/PositionManager.cs @@ -32,6 +32,9 @@ namespace ReallifeGamemode.Server.Managers public static List AmmunationPoints = new List(); + public static Vector3 eventportPosition; + public static bool eventportActive = false; + public static void LoadPositionManager() { #region DutyPoints From 7ca92cbafb06b13bb6136e2c8e8e60ea594dca5e Mon Sep 17 00:00:00 2001 From: Fabian Date: Sun, 25 Apr 2021 17:31:21 +0200 Subject: [PATCH 003/114] eventport position immer leicht versetzt --- ReallifeGamemode.Server/Commands/UserCommands.cs | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/ReallifeGamemode.Server/Commands/UserCommands.cs b/ReallifeGamemode.Server/Commands/UserCommands.cs index 18ce329f..09c8dd44 100644 --- a/ReallifeGamemode.Server/Commands/UserCommands.cs +++ b/ReallifeGamemode.Server/Commands/UserCommands.cs @@ -41,13 +41,13 @@ namespace ReallifeGamemode.Server.Commands return; } PositionManager.eventportActive = false; - player.SendChatMessage("Du hast den Eventport deaktiviert."); + player.SendChatMessage("~y~Du hast den Eventport deaktiviert."); return; } if (!PositionManager.eventportActive || PositionManager.eventportPosition == null) { - player.SendChatMessage("Im Moment ist kein Eventport aktiv."); + player.SendChatMessage("~y~Im Moment ist kein Eventport aktiv."); return; } @@ -61,7 +61,14 @@ namespace ReallifeGamemode.Server.Commands } } - player.SafeTeleport(PositionManager.eventportPosition); + Random rnd = new Random(); + int randomX = rnd.Next(-5, 5); + int randomY = rnd.Next(-5, 5); + + Vector3 teleportPosition = new Vector3(PositionManager.eventportPosition.X + randomX, PositionManager.eventportPosition.Y + randomY, PositionManager.eventportPosition.Z); + + player.SafeTeleport(teleportPosition); + player.SendNotification("Du hast dich zum Event teleportiert"); } [Command("look", "~m~look")] From 1eb10c6fbf2bab7eb9d30ba8af43b57e669f1944 Mon Sep 17 00:00:00 2001 From: Fabian Date: Sun, 25 Apr 2021 17:34:35 +0200 Subject: [PATCH 004/114] eventport position angepasst --- ReallifeGamemode.Server/Commands/UserCommands.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ReallifeGamemode.Server/Commands/UserCommands.cs b/ReallifeGamemode.Server/Commands/UserCommands.cs index 09c8dd44..f9718c59 100644 --- a/ReallifeGamemode.Server/Commands/UserCommands.cs +++ b/ReallifeGamemode.Server/Commands/UserCommands.cs @@ -62,8 +62,8 @@ namespace ReallifeGamemode.Server.Commands } Random rnd = new Random(); - int randomX = rnd.Next(-5, 5); - int randomY = rnd.Next(-5, 5); + int randomX = rnd.Next(-3, 3); + int randomY = rnd.Next(-3, 3); Vector3 teleportPosition = new Vector3(PositionManager.eventportPosition.X + randomX, PositionManager.eventportPosition.Y + randomY, PositionManager.eventportPosition.Z); From 8c71f10d73bd58974fe06c66a7ce700c677c7423 Mon Sep 17 00:00:00 2001 From: Luke Date: Sun, 25 Apr 2021 17:37:44 +0000 Subject: [PATCH 005/114] Kolorierung der Online-Liste angepasst --- ReallifeGamemode.Client/assets/css/onlinelist/style.css | 4 ++-- ReallifeGamemode.Client/assets/css/onlinelist/style.css.map | 2 +- ReallifeGamemode.Client/assets/css/onlinelist/style.scss | 6 +++--- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/ReallifeGamemode.Client/assets/css/onlinelist/style.css b/ReallifeGamemode.Client/assets/css/onlinelist/style.css index a60e49cf..8685b32e 100644 --- a/ReallifeGamemode.Client/assets/css/onlinelist/style.css +++ b/ReallifeGamemode.Client/assets/css/onlinelist/style.css @@ -59,7 +59,7 @@ h2 { top: 0; z-index: 3; font-size: .9em; - background-color: black; + background-color: #404040; padding: 1em 0; } @@ -87,7 +87,7 @@ table th { top: 3em; text-align: left; z-index: 2; - background-color: black; + background-color: #404040; } table th:first-child { diff --git a/ReallifeGamemode.Client/assets/css/onlinelist/style.css.map b/ReallifeGamemode.Client/assets/css/onlinelist/style.css.map index 3f63b940..840f5837 100644 --- a/ReallifeGamemode.Client/assets/css/onlinelist/style.css.map +++ b/ReallifeGamemode.Client/assets/css/onlinelist/style.css.map @@ -1,6 +1,6 @@ { "version": 3, - "mappings": "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", + "mappings": "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", "sources": [ "style.scss" ], diff --git a/ReallifeGamemode.Client/assets/css/onlinelist/style.scss b/ReallifeGamemode.Client/assets/css/onlinelist/style.scss index 305684ad..5c816498 100644 --- a/ReallifeGamemode.Client/assets/css/onlinelist/style.scss +++ b/ReallifeGamemode.Client/assets/css/onlinelist/style.scss @@ -40,7 +40,7 @@ h2 { font-size: 1.125em; } z-index: 3; font-size: .9em; - background-color: black; + background-color: #404040; padding: 1em 0; } @@ -67,7 +67,7 @@ table { text-align: left; z-index: 2; - background-color: black; + background-color: #404040; &:first-child { border-top-left-radius: .25em; } &:last-child { border-top-right-radius: .25em; } @@ -142,4 +142,4 @@ ol.inline.stats { justify-content: center; abbr { text-decoration: none; } -} \ No newline at end of file +} From 6d5a11130171d2cfbcc81b032625bfce3f7a08c8 Mon Sep 17 00:00:00 2001 From: Luke Date: Sun, 25 Apr 2021 17:48:37 +0000 Subject: [PATCH 006/114] =?UTF-8?q?Chat=20weniger=20breit,=20Text=20in=20E?= =?UTF-8?q?ingabefeld=20fett=20und=20Abst=C3=A4nde=20angepassert=20getan?= =?UTF-8?q?=20tun?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ReallifeGamemode.Client/assets/css/chat/main.css | 9 +++++---- ReallifeGamemode.Client/assets/css/chat/main.css.map | 4 ++-- ReallifeGamemode.Client/assets/css/chat/main.scss | 7 ++++--- 3 files changed, 11 insertions(+), 9 deletions(-) diff --git a/ReallifeGamemode.Client/assets/css/chat/main.css b/ReallifeGamemode.Client/assets/css/chat/main.css index 3b563634..7bffa96d 100644 --- a/ReallifeGamemode.Client/assets/css/chat/main.css +++ b/ReallifeGamemode.Client/assets/css/chat/main.css @@ -59,7 +59,7 @@ a { #chat ul#chat_messages { height: 16.45em; min-width: 50ch; - max-width: calc(60vw + 10px); + max-width: calc(45vw + 10px); -webkit-transform: rotate(0deg); transform: rotate(0deg); overflow-y: auto; @@ -80,16 +80,17 @@ a { } #chat input#chat_msg { - width: 60vw; + width: 45vw; outline: 0; border: none; border-radius: 3px; + font-family: inherit; font-size: inherit; font-weight: inherit; line-height: inherit; color: white; background: rgba(0, 0, 0, 0.5); - padding: .5em; + padding: .5em .75em .65em; } ::-webkit-scrollbar { @@ -104,4 +105,4 @@ a { ::-webkit-scrollbar-thumb:hover { background: rgba(255, 17, 0, 0); } -/*# sourceMappingURL=main.css.map */ \ No newline at end of file +/*# sourceMappingURL=main.css.map */ diff --git a/ReallifeGamemode.Client/assets/css/chat/main.css.map b/ReallifeGamemode.Client/assets/css/chat/main.css.map index df909d16..1532e34c 100644 --- a/ReallifeGamemode.Client/assets/css/chat/main.css.map +++ b/ReallifeGamemode.Client/assets/css/chat/main.css.map @@ -1,9 +1,9 @@ { "version": 3, - "mappings": "AAAA,AAAA,IAAI,CAAC;EAAE,UAAU,EAAE,UAAU;CAAI;;AACjC,AAAA,CAAC,EAAE,CAAC,AAAA,OAAO,EAAE,CAAC,AAAA,MAAM,CAAC;EAAE,UAAU,EAAE,OAAO;CAAI;;AAG9C,AAAA,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC;EACZ,OAAO,EAAE,CAAC;EACV,MAAM,EAAE,CACV;CAAC;;AAED,AAAA,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC;EACnB,KAAK,EAAE,IACT;CAAC;;AAED,AAAA,IAAI,EAAE,IAAI,CAAC;EACT,sBAAsB,EAAE,WAAW;EACnC,QAAQ,EAAE,MAAM;EAChB,SAAS,EAAE,IAAI;EACf,WAAW,EAAE,IAAI;CAClB;;AAED,AAAA,IAAI,CAAC;EACH,WAAW,EAAE,oIAAoI;EACjJ,SAAS,EAAE,kBAAkB;EAC7B,WAAW,EAAE,GAAG;EAChB,SAAS,EAAE,GAAG;CACf;;AAED,AAAA,CAAC,CAAC;EAAE,eAAe,EAAE,IAAI;CAAI;;AAE7B,AAAA,WAAW,CAAC;EACV,OAAO,EAAE,IAAI;EACb,QAAQ,EAAE,QAAQ;EAClB,KAAK,EAAE,KAAK;EACZ,MAAM,EAAE,KAAK;EACb,OAAO,EAAE,CACX;CAAC;;AAED,AAAA,KAAK,CAAC;EACJ,OAAO,EAAE,KAAK;EACd,OAAO,EAAE,CAAC;EAEV,WAAW,EAAE,IAAI;EACjB,WAAW,EAAE,8EAA8E;EAC3F,cAAc,EAAE,IAAI;EAEpB,UAAU,EAAE,GAAG;EACf,WAAW,EAAE,GAAG;CAsCjB;;AA/CD,AAWE,KAXG,CAWH,EAAE,AAAA,cAAc,CAAC;EACf,MAAM,EAAE,OAAO;EACf,SAAS,EAAE,IAAI;EACf,SAAS,EAAE,iBAAiB;EAC5B,SAAS,EAAE,YAAY;EAEvB,UAAU,EAAE,IAAI;EAChB,UAAU,EAAE,MAAM;EAClB,UAAU,EAAE,SAAS;EAErB,eAAe,EAAE,IAAI;EACrB,aAAa,EAAE,KAAK;CAQrB;;AA9BH,AAwBI,KAxBC,CAWH,EAAE,AAAA,cAAc,GAaX,EAAE,CAAC;EACJ,SAAS,EAAE,YAAY;EACvB,aAAa,EAAE,MAAM;CAGtB;;AA7BL,AA4BM,KA5BD,CAWH,EAAE,AAAA,cAAc,GAaX,EAAE,AAIF,WAAW,CAAC;EAAE,aAAa,EAAE,KAAK;CAAI;;AA5B7C,AAgCE,KAhCG,CAgCH,KAAK,AAAA,SAAS,CAAC;EACb,KAAK,EAAE,IAAI;EACX,OAAO,EAAE,CAAC;EACV,MAAM,EAAE,IAAI;EACZ,aAAa,EAAE,GAAG;EAElB,SAAS,EAAE,OAAO;EAClB,WAAW,EAAE,OAAO;EACpB,WAAW,EAAE,OAAO;EAEpB,KAAK,EAAE,KAAK;EACZ,UAAU,EAAE,kBAAiB;EAE7B,OAAO,EAAE,IAAI;CACd;;AAGH,AAAA,mBAAmB,CAAC;EAClB,KAAK,EAAE,IAAI;CAQZ;;AATD,AAGE,mBAHiB,AAGhB,MAAM,CAAC;EACN,UAAU,EAAE,mBAAmB;EAC/B,aAAa,EAAE,GAAG;CAGnB;;AARH,AAOI,mBAPe,AAGhB,MAAM,AAIJ,MAAM,CAAC;EAAE,UAAU,EAAE,mBAAmB;CAAI", + "mappings": "AAAA,AAAA,IAAI,CAAC;EAAE,UAAU,EAAE,UAAU;CAAI;;AACjC,AAAA,CAAC,EAAE,CAAC,AAAA,OAAO,EAAE,CAAC,AAAA,MAAM,CAAC;EAAE,UAAU,EAAE,OAAO;CAAI;;AAG9C,AAAA,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC;EACZ,OAAO,EAAE,CAAC;EACV,MAAM,EAAE,CACV;CAAC;;AAED,AAAA,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC;EACnB,KAAK,EAAE,IACT;CAAC;;AAED,AAAA,IAAI,EAAE,IAAI,CAAC;EACT,sBAAsB,EAAE,WAAW;EACnC,QAAQ,EAAE,MAAM;EAChB,SAAS,EAAE,IAAI;EACf,WAAW,EAAE,IAAI;CAClB;;AAED,AAAA,IAAI,CAAC;EACH,WAAW,EAAE,oIAAoI;EACjJ,SAAS,EAAE,kBAAkB;EAC7B,WAAW,EAAE,GAAG;EAChB,SAAS,EAAE,GAAG;CACf;;AAED,AAAA,CAAC,CAAC;EAAE,eAAe,EAAE,IAAI;CAAI;;AAE7B,AAAA,WAAW,CAAC;EACV,OAAO,EAAE,IAAI;EACb,QAAQ,EAAE,QAAQ;EAClB,KAAK,EAAE,KAAK;EACZ,MAAM,EAAE,KAAK;EACb,OAAO,EAAE,CACX;CAAC;;AAED,AAAA,KAAK,CAAC;EACJ,OAAO,EAAE,KAAK;EACd,OAAO,EAAE,CAAC;EAEV,WAAW,EAAE,IAAI;EACjB,WAAW,EAAE,8EAA8E;EAC3F,cAAc,EAAE,IAAI;EAEpB,UAAU,EAAE,GAAG;EACf,WAAW,EAAE,GAAG;CAuCjB;;AAhDD,AAWE,KAXG,CAWH,EAAE,AAAA,cAAc,CAAC;EACf,MAAM,EAAE,OAAO;EACf,SAAS,EAAE,IAAI;EACf,SAAS,EAAE,iBAAiB;EAC5B,SAAS,EAAE,YAAY;EAEvB,UAAU,EAAE,IAAI;EAChB,UAAU,EAAE,MAAM;EAClB,UAAU,EAAE,SAAS;EAErB,eAAe,EAAE,IAAI;EACrB,aAAa,EAAE,KAAK;CAQrB;;AA9BH,AAwBI,KAxBC,CAWH,EAAE,AAAA,cAAc,GAaX,EAAE,CAAC;EACJ,SAAS,EAAE,YAAY;EACvB,aAAa,EAAE,MAAM;CAGtB;;AA7BL,AA4BM,KA5BD,CAWH,EAAE,AAAA,cAAc,GAaX,EAAE,AAIF,WAAW,CAAC;EAAE,aAAa,EAAE,KAAK;CAAI;;AA5B7C,AAgCE,KAhCG,CAgCH,KAAK,AAAA,SAAS,CAAC;EACb,KAAK,EAAE,IAAI;EACX,OAAO,EAAE,CAAC;EACV,MAAM,EAAE,IAAI;EACZ,aAAa,EAAE,GAAG;EAElB,WAAW,EAAE,OAAO;EACpB,SAAS,EAAE,OAAO;EAClB,WAAW,EAAE,OAAO;EACpB,WAAW,EAAE,OAAO;EAEpB,KAAK,EAAE,KAAK;EACZ,UAAU,EAAE,kBAAiB;EAE7B,OAAO,EAAE,gBAAgB;CAC1B;;AAGH,AAAA,mBAAmB,CAAC;EAClB,KAAK,EAAE,IAAI;CAQZ;;AATD,AAGE,mBAHiB,AAGhB,MAAM,CAAC;EACN,UAAU,EAAE,mBAAmB;EAC/B,aAAa,EAAE,GAAG;CAGnB;;AARH,AAOI,mBAPe,AAGhB,MAAM,AAIJ,MAAM,CAAC;EAAE,UAAU,EAAE,mBAAmB;CAAI", "sources": [ "main.scss" ], "names": [], "file": "main.css" -} +} \ No newline at end of file diff --git a/ReallifeGamemode.Client/assets/css/chat/main.scss b/ReallifeGamemode.Client/assets/css/chat/main.scss index 64ae2124..b15046d6 100644 --- a/ReallifeGamemode.Client/assets/css/chat/main.scss +++ b/ReallifeGamemode.Client/assets/css/chat/main.scss @@ -49,7 +49,7 @@ a { text-decoration: none; } ul#chat_messages { height: 16.45em; min-width: 50ch; - max-width: calc(60vw + 10px); + max-width: calc(45vw + 10px); transform: rotate(0deg); overflow-y: auto; @@ -68,11 +68,12 @@ a { text-decoration: none; } } input#chat_msg { - width: 60vw; + width: 45vw; outline: 0; border: none; border-radius: 3px; + font-family: inherit; font-size: inherit; font-weight: inherit; line-height: inherit; @@ -80,7 +81,7 @@ a { text-decoration: none; } color: white; background: rgba(0, 0, 0, .5); - padding: .5em; + padding: .5em .75em .65em; } } From 72e2b6be6b05accdd61edde59bdccc8abb88ae03 Mon Sep 17 00:00:00 2001 From: Luke Date: Sun, 25 Apr 2021 17:52:45 +0000 Subject: [PATCH 007/114] FUNKTIONIERT DAS? Grund bei Vergabe von Strafpunkten wird jedem Beteiligten angezeigt --- ReallifeGamemode.Server/Managers/InteractionManager.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ReallifeGamemode.Server/Managers/InteractionManager.cs b/ReallifeGamemode.Server/Managers/InteractionManager.cs index 1a4c30ca..1ee74c65 100644 --- a/ReallifeGamemode.Server/Managers/InteractionManager.cs +++ b/ReallifeGamemode.Server/Managers/InteractionManager.cs @@ -668,8 +668,8 @@ namespace ReallifeGamemode.Server.Managers targetUser.Points += amount; player.SendNotification($"~w~Du hast ~y~{targetname} ~b~{amount} ~w~Strafpunkte gegeben. Grund: ~g~{reason}~w~."); - target.SendNotification($"~b~{player.GetUser().FactionRank.RankName} | {playername} ~w~hat dir ~y~{amount} ~w~Strafpunkte gegeben.", true); - ChatService.HQMessage(targetname + " hat von " + playername + " " + amount + " Strafpunkt(e) erhalten. Gesamt: " + targetUser.Points); + target.SendNotification($"~b~{player.GetUser().FactionRank.RankName} | {playername} ~w~hat dir ~y~{amount} ~w~Strafpunkte gegeben (Grund: ~r~{reason}~w~).", true); + ChatService.HQMessage(targetname + " hat von " + playername + " " + amount + " Strafpunkt(e) erhalten (Grund: " + reason + "). Gesamt: " + targetUser.Points); if (targetUser.Points < 0) { From 3c56cf19d93467cff028c00d834f6d9c1605b768 Mon Sep 17 00:00:00 2001 From: Luke Date: Sun, 25 Apr 2021 19:41:21 +0000 Subject: [PATCH 008/114] =?UTF-8?q?Chat-Input=20h=C3=B6her?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ReallifeGamemode.Client/assets/css/chat/main.css | 4 ++-- ReallifeGamemode.Client/assets/css/chat/main.css.map | 2 +- ReallifeGamemode.Client/assets/css/chat/main.scss | 6 ++---- 3 files changed, 5 insertions(+), 7 deletions(-) diff --git a/ReallifeGamemode.Client/assets/css/chat/main.css b/ReallifeGamemode.Client/assets/css/chat/main.css index 7bffa96d..913b65ce 100644 --- a/ReallifeGamemode.Client/assets/css/chat/main.css +++ b/ReallifeGamemode.Client/assets/css/chat/main.css @@ -14,7 +14,7 @@ html { } #chat, a, body, html { - color: #fff; + color: white; } body, html { @@ -90,7 +90,7 @@ a { line-height: inherit; color: white; background: rgba(0, 0, 0, 0.5); - padding: .5em .75em .65em; + padding: .25em .5em .5em .5em; } ::-webkit-scrollbar { diff --git a/ReallifeGamemode.Client/assets/css/chat/main.css.map b/ReallifeGamemode.Client/assets/css/chat/main.css.map index 1532e34c..4a9f1c6a 100644 --- a/ReallifeGamemode.Client/assets/css/chat/main.css.map +++ b/ReallifeGamemode.Client/assets/css/chat/main.css.map @@ -1,6 +1,6 @@ { "version": 3, - "mappings": "AAAA,AAAA,IAAI,CAAC;EAAE,UAAU,EAAE,UAAU;CAAI;;AACjC,AAAA,CAAC,EAAE,CAAC,AAAA,OAAO,EAAE,CAAC,AAAA,MAAM,CAAC;EAAE,UAAU,EAAE,OAAO;CAAI;;AAG9C,AAAA,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC;EACZ,OAAO,EAAE,CAAC;EACV,MAAM,EAAE,CACV;CAAC;;AAED,AAAA,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC;EACnB,KAAK,EAAE,IACT;CAAC;;AAED,AAAA,IAAI,EAAE,IAAI,CAAC;EACT,sBAAsB,EAAE,WAAW;EACnC,QAAQ,EAAE,MAAM;EAChB,SAAS,EAAE,IAAI;EACf,WAAW,EAAE,IAAI;CAClB;;AAED,AAAA,IAAI,CAAC;EACH,WAAW,EAAE,oIAAoI;EACjJ,SAAS,EAAE,kBAAkB;EAC7B,WAAW,EAAE,GAAG;EAChB,SAAS,EAAE,GAAG;CACf;;AAED,AAAA,CAAC,CAAC;EAAE,eAAe,EAAE,IAAI;CAAI;;AAE7B,AAAA,WAAW,CAAC;EACV,OAAO,EAAE,IAAI;EACb,QAAQ,EAAE,QAAQ;EAClB,KAAK,EAAE,KAAK;EACZ,MAAM,EAAE,KAAK;EACb,OAAO,EAAE,CACX;CAAC;;AAED,AAAA,KAAK,CAAC;EACJ,OAAO,EAAE,KAAK;EACd,OAAO,EAAE,CAAC;EAEV,WAAW,EAAE,IAAI;EACjB,WAAW,EAAE,8EAA8E;EAC3F,cAAc,EAAE,IAAI;EAEpB,UAAU,EAAE,GAAG;EACf,WAAW,EAAE,GAAG;CAuCjB;;AAhDD,AAWE,KAXG,CAWH,EAAE,AAAA,cAAc,CAAC;EACf,MAAM,EAAE,OAAO;EACf,SAAS,EAAE,IAAI;EACf,SAAS,EAAE,iBAAiB;EAC5B,SAAS,EAAE,YAAY;EAEvB,UAAU,EAAE,IAAI;EAChB,UAAU,EAAE,MAAM;EAClB,UAAU,EAAE,SAAS;EAErB,eAAe,EAAE,IAAI;EACrB,aAAa,EAAE,KAAK;CAQrB;;AA9BH,AAwBI,KAxBC,CAWH,EAAE,AAAA,cAAc,GAaX,EAAE,CAAC;EACJ,SAAS,EAAE,YAAY;EACvB,aAAa,EAAE,MAAM;CAGtB;;AA7BL,AA4BM,KA5BD,CAWH,EAAE,AAAA,cAAc,GAaX,EAAE,AAIF,WAAW,CAAC;EAAE,aAAa,EAAE,KAAK;CAAI;;AA5B7C,AAgCE,KAhCG,CAgCH,KAAK,AAAA,SAAS,CAAC;EACb,KAAK,EAAE,IAAI;EACX,OAAO,EAAE,CAAC;EACV,MAAM,EAAE,IAAI;EACZ,aAAa,EAAE,GAAG;EAElB,WAAW,EAAE,OAAO;EACpB,SAAS,EAAE,OAAO;EAClB,WAAW,EAAE,OAAO;EACpB,WAAW,EAAE,OAAO;EAEpB,KAAK,EAAE,KAAK;EACZ,UAAU,EAAE,kBAAiB;EAE7B,OAAO,EAAE,gBAAgB;CAC1B;;AAGH,AAAA,mBAAmB,CAAC;EAClB,KAAK,EAAE,IAAI;CAQZ;;AATD,AAGE,mBAHiB,AAGhB,MAAM,CAAC;EACN,UAAU,EAAE,mBAAmB;EAC/B,aAAa,EAAE,GAAG;CAGnB;;AARH,AAOI,mBAPe,AAGhB,MAAM,AAIJ,MAAM,CAAC;EAAE,UAAU,EAAE,mBAAmB;CAAI", + "mappings": "AAAA,AAAA,IAAI,CAAC;EAAE,UAAU,EAAE,UAAU;CAAI;;AACjC,AAAA,CAAC,EAAE,CAAC,AAAA,OAAO,EAAE,CAAC,AAAA,MAAM,CAAC;EAAE,UAAU,EAAE,OAAO;CAAI;;AAG9C,AAAA,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC;EACZ,OAAO,EAAE,CAAC;EACV,MAAM,EAAE,CACV;CAAC;;AAED,AAAA,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC;EAAE,KAAK,EAAE,KAAK;CAAI;;AAEvC,AAAA,IAAI,EAAE,IAAI,CAAC;EACT,sBAAsB,EAAE,WAAW;EACnC,QAAQ,EAAE,MAAM;EAChB,SAAS,EAAE,IAAI;EACf,WAAW,EAAE,IAAI;CAClB;;AAED,AAAA,IAAI,CAAC;EACH,WAAW,EAAE,oIAAoI;EACjJ,SAAS,EAAE,kBAAkB;EAC7B,WAAW,EAAE,GAAG;EAChB,SAAS,EAAE,GAAG;CACf;;AAED,AAAA,CAAC,CAAC;EAAE,eAAe,EAAE,IAAI;CAAI;;AAE7B,AAAA,WAAW,CAAC;EACV,OAAO,EAAE,IAAI;EACb,QAAQ,EAAE,QAAQ;EAClB,KAAK,EAAE,KAAK;EACZ,MAAM,EAAE,KAAK;EACb,OAAO,EAAE,CACX;CAAC;;AAED,AAAA,KAAK,CAAC;EACJ,OAAO,EAAE,KAAK;EACd,OAAO,EAAE,CAAC;EAEV,WAAW,EAAE,IAAI;EACjB,WAAW,EAAE,8EAA8E;EAC3F,cAAc,EAAE,IAAI;EAEpB,UAAU,EAAE,GAAG;EACf,WAAW,EAAE,GAAG;CAuCjB;;AAhDD,AAWE,KAXG,CAWH,EAAE,AAAA,cAAc,CAAC;EACf,MAAM,EAAE,OAAO;EACf,SAAS,EAAE,IAAI;EACf,SAAS,EAAE,iBAAiB;EAC5B,SAAS,EAAE,YAAY;EAEvB,UAAU,EAAE,IAAI;EAChB,UAAU,EAAE,MAAM;EAClB,UAAU,EAAE,SAAS;EAErB,eAAe,EAAE,IAAI;EACrB,aAAa,EAAE,KAAK;CAQrB;;AA9BH,AAwBI,KAxBC,CAWH,EAAE,AAAA,cAAc,GAaX,EAAE,CAAC;EACJ,SAAS,EAAE,YAAY;EACvB,aAAa,EAAE,MAAM;CAGtB;;AA7BL,AA4BM,KA5BD,CAWH,EAAE,AAAA,cAAc,GAaX,EAAE,AAIF,WAAW,CAAC;EAAE,aAAa,EAAE,KAAK;CAAI;;AA5B7C,AAgCE,KAhCG,CAgCH,KAAK,AAAA,SAAS,CAAC;EACb,KAAK,EAAE,IAAI;EACX,OAAO,EAAE,CAAC;EACV,MAAM,EAAE,IAAI;EACZ,aAAa,EAAE,GAAG;EAElB,WAAW,EAAE,OAAO;EACpB,SAAS,EAAE,OAAO;EAClB,WAAW,EAAE,OAAO;EACpB,WAAW,EAAE,OAAO;EAEpB,KAAK,EAAE,KAAK;EACZ,UAAU,EAAE,kBAAiB;EAE7B,OAAO,EAAE,oBAAoB;CAC9B;;AAGH,AAAA,mBAAmB,CAAC;EAClB,KAAK,EAAE,IAAI;CAQZ;;AATD,AAGE,mBAHiB,AAGhB,MAAM,CAAC;EACN,UAAU,EAAE,mBAAmB;EAC/B,aAAa,EAAE,GAAG;CAGnB;;AARH,AAOI,mBAPe,AAGhB,MAAM,AAIJ,MAAM,CAAC;EAAE,UAAU,EAAE,mBAAmB;CAAI", "sources": [ "main.scss" ], diff --git a/ReallifeGamemode.Client/assets/css/chat/main.scss b/ReallifeGamemode.Client/assets/css/chat/main.scss index b15046d6..d397ad66 100644 --- a/ReallifeGamemode.Client/assets/css/chat/main.scss +++ b/ReallifeGamemode.Client/assets/css/chat/main.scss @@ -7,9 +7,7 @@ html { box-sizing: border-box; } margin: 0 } -#chat, a, body, html { - color: #fff -} +#chat, a, body, html { color: white; } body, html { -webkit-font-smoothing: antialiased; @@ -81,7 +79,7 @@ a { text-decoration: none; } color: white; background: rgba(0, 0, 0, .5); - padding: .5em .75em .65em; + padding: .25em .5em .5em .5em; } } From 431c4a20078c55a7a6edef09d8d04db4782ace81 Mon Sep 17 00:00:00 2001 From: Luke Date: Sun, 25 Apr 2021 19:43:41 +0000 Subject: [PATCH 009/114] =?UTF-8?q?Kolorierung=20erfordert=20Fingerspitzen?= =?UTF-8?q?gef=C3=BChl.=20Onlineliste=20besser=20jetzt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ReallifeGamemode.Client/assets/css/onlinelist/style.css | 4 ++-- ReallifeGamemode.Client/assets/css/onlinelist/style.css.map | 2 +- ReallifeGamemode.Client/assets/css/onlinelist/style.scss | 6 +++--- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/ReallifeGamemode.Client/assets/css/onlinelist/style.css b/ReallifeGamemode.Client/assets/css/onlinelist/style.css index 8685b32e..d74093be 100644 --- a/ReallifeGamemode.Client/assets/css/onlinelist/style.css +++ b/ReallifeGamemode.Client/assets/css/onlinelist/style.css @@ -59,7 +59,7 @@ h2 { top: 0; z-index: 3; font-size: .9em; - background-color: #404040; + background-color: #222; padding: 1em 0; } @@ -87,7 +87,7 @@ table th { top: 3em; text-align: left; z-index: 2; - background-color: #404040; + background-color: #222; } table th:first-child { diff --git a/ReallifeGamemode.Client/assets/css/onlinelist/style.css.map b/ReallifeGamemode.Client/assets/css/onlinelist/style.css.map index 840f5837..ad1da382 100644 --- a/ReallifeGamemode.Client/assets/css/onlinelist/style.css.map +++ b/ReallifeGamemode.Client/assets/css/onlinelist/style.css.map @@ -1,6 +1,6 @@ { "version": 3, - "mappings": "AAAA,AAAA,IAAI,CAAC;EACH,UAAU,EAAE,UAAU;EACtB,MAAM,EAAE,KAAK;EACb,UAAU,EAAE,WAAW;EACvB,WAAW,EAAE,IAAI;CAClB;;AAED,AAAA,IAAI,EAAE,IAAI,CAAC;EAAE,MAAM,EAAE,KAAK;CAAI;;AAC9B,AAAA,CAAC,EAAE,CAAC,AAAA,OAAO,EAAE,CAAC,AAAA,MAAM,CAAC;EAAE,UAAU,EAAE,OAAO;CAAI;;AAE9C,AAAA,IAAI,CAAC;EACH,MAAM,EAAE,WAAW;EAEnB,KAAK,EAAE,IAAI;EACX,KAAK,EAAE,KAAK;EAEZ,WAAW,EAAE,oIAAoI;EACjJ,SAAS,EAAE,GAAG;CACf;;AAED,AAAA,EAAE,EAAE,EAAE,CAAC;EACL,MAAM,EAAE,KAAK;EACb,WAAW,EAAE,CAAC;CACf;;AAED,AAAA,EAAE,CAAC;EAAE,SAAS,EAAE,MAAM;CAAI;;AAC1B,AAAA,EAAE,CAAC;EAAE,SAAS,EAAE,OAAO;CAAI;;AAE3B,AAAA,QAAQ,CAAC;EACP,OAAO,EAAE,IAAI;EACb,eAAe,EAAE,aAAa;EAC9B,WAAW,EAAE,UAAU;EACvB,aAAa,EAAE,GAAG;EAClB,OAAO,EAAE,SAAS;CACnB;;AAED,AAAA,SAAS,CAAC;EACR,QAAQ,EAAE,MAAM;EAChB,GAAG,EAAE,CAAC;EACN,OAAO,EAAE,CAAC;EAEV,SAAS,EAAE,IAAI;EACf,gBAAgB,EAAE,OAAO;EAEzB,OAAO,EAAE,KAAK;CACf;;AAED,AAAA,QAAQ,CAAC;EACP,UAAU,EAAE,IAAI;EAChB,UAAU,EAAE,IAAI;EAChB,UAAU,EAAE,MAAM;EAElB,aAAa,EAAE,KAAK;EACpB,gBAAgB,EAAO,mBAAK;CAG7B;;AATD,AAQE,QARM,AAQL,mBAAmB,CAAC;EAAE,OAAO,EAAE,IAAI;CAAI;;AAG1C,AAAA,KAAK,CAAC;EACJ,eAAe,EAAE,QAAQ;EACzB,KAAK,EAAE,IAAI;EACX,aAAa,EAAE,OAAO;CAwCvB;;AA3CD,AAKE,KALG,CAKH,EAAE,CAAC;EACD,QAAQ,EAAE,MAAM;EAChB,GAAG,EAAE,GAAG;EACR,UAAU,EAAE,IAAI;EAChB,OAAO,EAAE,CAAC;EAEV,gBAAgB,EAAE,OAAO;CAI1B;;AAfH,AAaI,KAbC,CAKH,EAAE,AAQC,YAAY,CAAC;EAAE,sBAAsB,EAAE,KAAK;CAAI;;AAbrD,AAcI,KAdC,CAKH,EAAE,AASC,WAAW,CAAC;EAAE,uBAAuB,EAAE,KAAK;CAAI;;AAdrD,AAiBE,KAjBG,CAiBH,EAAE,EAjBJ,KAAK,CAiBC,EAAE,CAAC;EACL,OAAO,EAAE,SAAS;CAInB;;AAtBH,AAoBI,KApBC,CAiBH,EAAE,AAGC,YAAY,EApBjB,KAAK,CAiBC,EAAE,AAGH,YAAY,CAAC;EAAE,YAAY,EAAE,GAAG;CAAI;;AApBzC,AAqBI,KArBC,CAiBH,EAAE,AAIC,WAAW,EArBhB,KAAK,CAiBC,EAAE,AAIH,WAAW,CAAC;EAAE,aAAa,EAAE,GAAG;CAAI;;AArBzC,AAyBI,KAzBC,CAwBH,EAAE,CACA,EAAE,CAAC;EACD,QAAQ,EAAE,MAAM;CAajB;;AAvCL,AA4BM,KA5BD,CAwBH,EAAE,CACA,EAAE,AAGC,UAAW,CAAA,CAAC,EAAE;EAAE,KAAK,EAAE,cAAc;CAAI;;AA5BhD,AA6BM,KA7BD,CAwBH,EAAE,CACA,EAAE,AAIC,UAAW,CAAA,CAAC,EAAE;EACb,SAAS,EAAE,IAAI;EACf,WAAW,EAAE,IAAI;EACjB,UAAU,EAAE,IAAI;EAChB,WAAW,EAAE,MAAM;CAGpB;;AApCP,AAmCQ,KAnCH,CAwBH,EAAE,CACA,EAAE,AAIC,UAAW,CAAA,CAAC,CAMV,mBAAmB,CAAC;EAAE,OAAO,EAAE,IAAI;CAAI;;AAnChD,AAqCM,KArCD,CAwBH,EAAE,CACA,EAAE,AAYC,UAAW,CAAA,CAAC,EAAE;EAAE,KAAK,EAAE,eAAe;CAAI;;AArCjD,AAsCM,KAtCD,CAwBH,EAAE,CACA,EAAE,AAaC,UAAW,CAAA,CAAC,EAAE;EAAE,KAAK,EAAE,eAAe;CAAI;;AAtCjD,AAyCI,KAzCC,CAwBH,EAAE,AAiBC,UAAW,CAAA,IAAI,EAAE;EAAE,gBAAgB,EAAE,mBAAkB;CAAI;;AAIhE,AACE,MADI,AACH,QAAQ,CAAC;EACR,OAAO,EAAE,EAAE;EACX,MAAM,EAAE,KAAK;EACb,KAAK,EAAE,KAAK;EACZ,aAAa,EAAE,GAAG;EAClB,OAAO,EAAE,YAAY;EACrB,KAAK,EAAE,OAAO;EACd,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,0BAA0B;EAE5C,YAAY,EAAE,IAAI;EAClB,aAAa,EAAE,GAAG;CACnB;;AAEA,AAAD,SAAI,AAAA,QAAQ,CAAC;EAAE,gBAAgB,EAAE,KAAkB;CAAI;;AACtD,AAAD,SAAI,AAAA,QAAQ,CAAC;EAAE,gBAAgB,EAAE,OAAe;CAAI;;AACnD,AAAD,SAAI,AAAA,QAAQ,CAAC;EAAE,gBAAgB,EAAE,OAAc;CAAI;;AAClD,AAAD,SAAI,AAAA,QAAQ,CAAC;EAAE,gBAAgB,EAAE,OAAc;CAAI;;AAClD,AAAD,SAAI,AAAA,QAAQ,CAAC;EAAE,gBAAgB,EAAE,OAAgB;CAAI;;AACpD,AAAD,SAAI,AAAA,QAAQ,CAAC;EAAE,gBAAgB,EAAE,OAAgB;CAAI;;AACpD,AAAD,SAAI,AAAA,QAAQ,CAAC;EAAE,gBAAgB,EAAE,KAAkB;CAAI;;AACtD,AAAD,SAAI,AAAA,QAAQ,CAAC;EAAE,gBAAgB,EAAE,OAAa;CAAI;;AACjD,AAAD,SAAI,AAAA,QAAQ,CAAC;EAAE,gBAAgB,EAAE,OAAgB;CAAI;;AACpD,AAAD,SAAI,AAAA,QAAQ,CAAC;EAAE,gBAAgB,EAAE,OAAgB;CAAI;;AAGvD,AAAA,EAAE,AAAA,OAAO,CAAC;EACR,OAAO,EAAE,IAAI;EAEb,UAAU,EAAE,KAAK;EACjB,eAAe,EAAE,IAAI;EACrB,MAAM,EAAE,CAAC;EACT,OAAO,EAAE,KAAK;CAGf;;AATD,AAQE,EARA,AAAA,OAAO,CAQP,EAAE,AAAA,IAAK,CAAA,WAAW,EAAE;EAAE,YAAY,EAAE,GAAG;CAAI;;AAG7C,AAAA,EAAE,AAAA,OAAO,AAAA,MAAM,CAAC;EACd,eAAe,EAAE,MAAM;CAGxB;;AAJD,AAGE,EAHA,AAAA,OAAO,AAAA,MAAM,CAGb,IAAI,CAAC;EAAE,eAAe,EAAE,IAAI;CAAI", + "mappings": "AAAA,AAAA,IAAI,CAAC;EACH,UAAU,EAAE,UAAU;EACtB,MAAM,EAAE,KAAK;EACb,UAAU,EAAE,WAAW;EACvB,WAAW,EAAE,IAAI;CAClB;;AAED,AAAA,IAAI,EAAE,IAAI,CAAC;EAAE,MAAM,EAAE,KAAK;CAAI;;AAC9B,AAAA,CAAC,EAAE,CAAC,AAAA,OAAO,EAAE,CAAC,AAAA,MAAM,CAAC;EAAE,UAAU,EAAE,OAAO;CAAI;;AAE9C,AAAA,IAAI,CAAC;EACH,MAAM,EAAE,WAAW;EAEnB,KAAK,EAAE,IAAI;EACX,KAAK,EAAE,KAAK;EAEZ,WAAW,EAAE,oIAAoI;EACjJ,SAAS,EAAE,GAAG;CACf;;AAED,AAAA,EAAE,EAAE,EAAE,CAAC;EACL,MAAM,EAAE,KAAK;EACb,WAAW,EAAE,CAAC;CACf;;AAED,AAAA,EAAE,CAAC;EAAE,SAAS,EAAE,MAAM;CAAI;;AAC1B,AAAA,EAAE,CAAC;EAAE,SAAS,EAAE,OAAO;CAAI;;AAE3B,AAAA,QAAQ,CAAC;EACP,OAAO,EAAE,IAAI;EACb,eAAe,EAAE,aAAa;EAC9B,WAAW,EAAE,UAAU;EACvB,aAAa,EAAE,GAAG;EAClB,OAAO,EAAE,SAAS;CACnB;;AAED,AAAA,SAAS,CAAC;EACR,QAAQ,EAAE,MAAM;EAChB,GAAG,EAAE,CAAC;EACN,OAAO,EAAE,CAAC;EAEV,SAAS,EAAE,IAAI;EACf,gBAAgB,EAAE,IAAI;EAEtB,OAAO,EAAE,KAAK;CACf;;AAED,AAAA,QAAQ,CAAC;EACP,UAAU,EAAE,IAAI;EAChB,UAAU,EAAE,IAAI;EAChB,UAAU,EAAE,MAAM;EAElB,aAAa,EAAE,KAAK;EACpB,gBAAgB,EAAO,mBAAK;CAG7B;;AATD,AAQE,QARM,AAQL,mBAAmB,CAAC;EAAE,OAAO,EAAE,IAAI;CAAI;;AAG1C,AAAA,KAAK,CAAC;EACJ,eAAe,EAAE,QAAQ;EACzB,KAAK,EAAE,IAAI;EACX,aAAa,EAAE,OAAO;CAwCvB;;AA3CD,AAKE,KALG,CAKH,EAAE,CAAC;EACD,QAAQ,EAAE,MAAM;EAChB,GAAG,EAAE,GAAG;EACR,UAAU,EAAE,IAAI;EAChB,OAAO,EAAE,CAAC;EAEV,gBAAgB,EAAE,IAAI;CAIvB;;AAfH,AAaI,KAbC,CAKH,EAAE,AAQC,YAAY,CAAC;EAAE,sBAAsB,EAAE,KAAK;CAAI;;AAbrD,AAcI,KAdC,CAKH,EAAE,AASC,WAAW,CAAC;EAAE,uBAAuB,EAAE,KAAK;CAAI;;AAdrD,AAiBE,KAjBG,CAiBH,EAAE,EAjBJ,KAAK,CAiBC,EAAE,CAAC;EACL,OAAO,EAAE,SAAS;CAInB;;AAtBH,AAoBI,KApBC,CAiBH,EAAE,AAGC,YAAY,EApBjB,KAAK,CAiBC,EAAE,AAGH,YAAY,CAAC;EAAE,YAAY,EAAE,GAAG;CAAI;;AApBzC,AAqBI,KArBC,CAiBH,EAAE,AAIC,WAAW,EArBhB,KAAK,CAiBC,EAAE,AAIH,WAAW,CAAC;EAAE,aAAa,EAAE,GAAG;CAAI;;AArBzC,AAyBI,KAzBC,CAwBH,EAAE,CACA,EAAE,CAAC;EACD,QAAQ,EAAE,MAAM;CAajB;;AAvCL,AA4BM,KA5BD,CAwBH,EAAE,CACA,EAAE,AAGC,UAAW,CAAA,CAAC,EAAE;EAAE,KAAK,EAAE,cAAc;CAAI;;AA5BhD,AA6BM,KA7BD,CAwBH,EAAE,CACA,EAAE,AAIC,UAAW,CAAA,CAAC,EAAE;EACb,SAAS,EAAE,IAAI;EACf,WAAW,EAAE,IAAI;EACjB,UAAU,EAAE,IAAI;EAChB,WAAW,EAAE,MAAM;CAGpB;;AApCP,AAmCQ,KAnCH,CAwBH,EAAE,CACA,EAAE,AAIC,UAAW,CAAA,CAAC,CAMV,mBAAmB,CAAC;EAAE,OAAO,EAAE,IAAI;CAAI;;AAnChD,AAqCM,KArCD,CAwBH,EAAE,CACA,EAAE,AAYC,UAAW,CAAA,CAAC,EAAE;EAAE,KAAK,EAAE,eAAe;CAAI;;AArCjD,AAsCM,KAtCD,CAwBH,EAAE,CACA,EAAE,AAaC,UAAW,CAAA,CAAC,EAAE;EAAE,KAAK,EAAE,eAAe;CAAI;;AAtCjD,AAyCI,KAzCC,CAwBH,EAAE,AAiBC,UAAW,CAAA,IAAI,EAAE;EAAE,gBAAgB,EAAE,mBAAkB;CAAI;;AAIhE,AACE,MADI,AACH,QAAQ,CAAC;EACR,OAAO,EAAE,EAAE;EACX,MAAM,EAAE,KAAK;EACb,KAAK,EAAE,KAAK;EACZ,aAAa,EAAE,GAAG;EAClB,OAAO,EAAE,YAAY;EACrB,KAAK,EAAE,OAAO;EACd,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,0BAA0B;EAE5C,YAAY,EAAE,IAAI;EAClB,aAAa,EAAE,GAAG;CACnB;;AAEA,AAAD,SAAI,AAAA,QAAQ,CAAC;EAAE,gBAAgB,EAAE,KAAkB;CAAI;;AACtD,AAAD,SAAI,AAAA,QAAQ,CAAC;EAAE,gBAAgB,EAAE,OAAe;CAAI;;AACnD,AAAD,SAAI,AAAA,QAAQ,CAAC;EAAE,gBAAgB,EAAE,OAAc;CAAI;;AAClD,AAAD,SAAI,AAAA,QAAQ,CAAC;EAAE,gBAAgB,EAAE,OAAc;CAAI;;AAClD,AAAD,SAAI,AAAA,QAAQ,CAAC;EAAE,gBAAgB,EAAE,OAAgB;CAAI;;AACpD,AAAD,SAAI,AAAA,QAAQ,CAAC;EAAE,gBAAgB,EAAE,OAAgB;CAAI;;AACpD,AAAD,SAAI,AAAA,QAAQ,CAAC;EAAE,gBAAgB,EAAE,KAAkB;CAAI;;AACtD,AAAD,SAAI,AAAA,QAAQ,CAAC;EAAE,gBAAgB,EAAE,OAAa;CAAI;;AACjD,AAAD,SAAI,AAAA,QAAQ,CAAC;EAAE,gBAAgB,EAAE,OAAgB;CAAI;;AACpD,AAAD,SAAI,AAAA,QAAQ,CAAC;EAAE,gBAAgB,EAAE,OAAgB;CAAI;;AAGvD,AAAA,EAAE,AAAA,OAAO,CAAC;EACR,OAAO,EAAE,IAAI;EAEb,UAAU,EAAE,KAAK;EACjB,eAAe,EAAE,IAAI;EACrB,MAAM,EAAE,CAAC;EACT,OAAO,EAAE,KAAK;CAGf;;AATD,AAQE,EARA,AAAA,OAAO,CAQP,EAAE,AAAA,IAAK,CAAA,WAAW,EAAE;EAAE,YAAY,EAAE,GAAG;CAAI;;AAG7C,AAAA,EAAE,AAAA,OAAO,AAAA,MAAM,CAAC;EACd,eAAe,EAAE,MAAM;CAGxB;;AAJD,AAGE,EAHA,AAAA,OAAO,AAAA,MAAM,CAGb,IAAI,CAAC;EAAE,eAAe,EAAE,IAAI;CAAI", "sources": [ "style.scss" ], diff --git a/ReallifeGamemode.Client/assets/css/onlinelist/style.scss b/ReallifeGamemode.Client/assets/css/onlinelist/style.scss index 5c816498..a88100de 100644 --- a/ReallifeGamemode.Client/assets/css/onlinelist/style.scss +++ b/ReallifeGamemode.Client/assets/css/onlinelist/style.scss @@ -40,7 +40,7 @@ h2 { font-size: 1.125em; } z-index: 3; font-size: .9em; - background-color: #404040; + background-color: #222; padding: 1em 0; } @@ -67,7 +67,7 @@ table { text-align: left; z-index: 2; - background-color: #404040; + background-color: #222; &:first-child { border-top-left-radius: .25em; } &:last-child { border-top-right-radius: .25em; } @@ -142,4 +142,4 @@ ol.inline.stats { justify-content: center; abbr { text-decoration: none; } -} +} \ No newline at end of file From 8187cbf7684d7ba687f82ce98a59d22a60adcb90 Mon Sep 17 00:00:00 2001 From: hydrant Date: Sun, 25 Apr 2021 21:33:41 +0200 Subject: [PATCH 010/114] =?UTF-8?q?Mark=20&=20Gotomark=20f=C3=BCr=20Suppor?= =?UTF-8?q?ter?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ReallifeGamemode.Server/Commands/AdminCommands.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ReallifeGamemode.Server/Commands/AdminCommands.cs b/ReallifeGamemode.Server/Commands/AdminCommands.cs index dedd99e7..ed036f49 100644 --- a/ReallifeGamemode.Server/Commands/AdminCommands.cs +++ b/ReallifeGamemode.Server/Commands/AdminCommands.cs @@ -614,7 +614,7 @@ namespace ReallifeGamemode.Server.Commands [Command("mark", "~m~Benutzung: ~s~/mark")] public void CmdAdminMark(Player player) { - if (!player.GetUser()?.IsAdmin(AdminLevel.ADMIN) ?? true) + if (!player.GetUser()?.IsAdmin(AdminLevel.SUPPORTER) ?? true) { ChatService.NotAuthorized(player); return; @@ -626,7 +626,7 @@ namespace ReallifeGamemode.Server.Commands [Command("gotomark", "~m~Benutzung: ~s~/gotomark")] public void CmdAdminGotoMark(Player player) { - if (!player.GetUser()?.IsAdmin(AdminLevel.ADMIN) ?? true) + if (!player.GetUser()?.IsAdmin(AdminLevel.SUPPORTER) ?? true) { ChatService.NotAuthorized(player); return; From 63a7261f33bb3cd7d0d5c6b79994c20ca9a1d359 Mon Sep 17 00:00:00 2001 From: Luke Date: Sun, 25 Apr 2021 20:02:45 +0000 Subject: [PATCH 011/114] Strafpunkte-Notification angepasst dies das --- .../Managers/InteractionManager.cs | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/ReallifeGamemode.Server/Managers/InteractionManager.cs b/ReallifeGamemode.Server/Managers/InteractionManager.cs index 1ee74c65..926dd56f 100644 --- a/ReallifeGamemode.Server/Managers/InteractionManager.cs +++ b/ReallifeGamemode.Server/Managers/InteractionManager.cs @@ -603,16 +603,16 @@ namespace ReallifeGamemode.Server.Managers { if (amount > 0 && amount <= 10000) { - player.SendNotification($"~w~Du hast ~y~{targetname} ~w~ein Ticket in Höhe von ~b~{amount}$ ~w~gestellt. Grund: ~g~{reason}~w~."); - target.SendNotification($"~b~{player.GetUser().FactionRank.RankName} | {playername} ~w~hat dir ein Ticket in Höhe von ~y~{amount}$ ~w~gestellt.", true); - target.SendNotification($"~w~Grund: ~g~{reason}~w~. ~x~Strafticket im Interaktionsmenü annehmen.", true); + player.SendNotification($"~w~Du hast ~y~{targetname} ~w~ein Ticket in Höhe von ~b~${amount} ~w~ausgestellt. Grund: ~g~{reason}~w~."); + target.SendNotification($"~b~{player.GetUser().FactionRank.RankName} {playername} ~w~hat dir ein Ticket in Höhe von ~y~${amount} ~w~ausgestellt.", true); + target.SendNotification($"~w~Grund: ~g~{reason}~w~. ~x~Das Ticket kann im Interaktionsmenü angenommen werden.", true); target.SetData("ticket_boolean", true); target.SetData("ticket_amount", amount); target.SetData("ticket_player", player); } else { - player.SendNotification("~r~Du kannst nur zwischen 1$ und 10000$ angeben!"); + player.SendNotification("~r~Du kannst nur zwischen $1 und $10.000 angeben!"); } } } @@ -668,7 +668,7 @@ namespace ReallifeGamemode.Server.Managers targetUser.Points += amount; player.SendNotification($"~w~Du hast ~y~{targetname} ~b~{amount} ~w~Strafpunkte gegeben. Grund: ~g~{reason}~w~."); - target.SendNotification($"~b~{player.GetUser().FactionRank.RankName} | {playername} ~w~hat dir ~y~{amount} ~w~Strafpunkte gegeben (Grund: ~r~{reason}~w~).", true); + target.SendNotification($"~b~{player.GetUser().FactionRank.RankName} {playername} ~w~hat dir ~y~{amount} ~w~Strafpunkte gegeben (Grund: ~r~{reason}~w~).", true); ChatService.HQMessage(targetname + " hat von " + playername + " " + amount + " Strafpunkt(e) erhalten (Grund: " + reason + "). Gesamt: " + targetUser.Points); if (targetUser.Points < 0) @@ -677,9 +677,7 @@ namespace ReallifeGamemode.Server.Managers } else if (targetUser.Points >= 12) { - target.SendNotification($"~w~Grund: ~g~{reason}~w~. ~x~Du hast nun ~r~12/12 ~x~Strafpunkten.", true); - target.SendNotification($"~w~Dir wird ~r~Auto- ~w~und ~r~Motorradführerschein ~w~entzogen.", true); //FlashNotif - + target.SendNotification($"~x~Du hast nun ~r~12/12 ~x~Strafpunkte. ~w~Dir wurde dein ~r~Auto- und dein Motorradführerschein ~w~entzogen.", true); ChatService.HQMessage(targetname + " besitzt nun keinen Führerschein mehr."); targetUser.Points = 0; @@ -688,7 +686,7 @@ namespace ReallifeGamemode.Server.Managers } else { - target.SendNotification($"~w~Grund: ~g~{reason}~w~. ~x~Du hast nun ~y~{targetUser.Points}/12 ~x~Strafpunkten.", true); + target.SendNotification($"~x~Du hast nun ~y~{targetUser.Points}/12 ~x~Strafpunkt(e).", true); } dbContext.SaveChanges(); From 1f816e6ca946fd6c7d0b33c5632dfe32fc02f38b Mon Sep 17 00:00:00 2001 From: Fabian Date: Sun, 25 Apr 2021 23:40:46 +0200 Subject: [PATCH 012/114] keine sani benachrichtigung bei wanted tod --- ReallifeGamemode.Client/util/weapondamage.ts | 2 +- ReallifeGamemode.Server/Events/Death.cs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/ReallifeGamemode.Client/util/weapondamage.ts b/ReallifeGamemode.Client/util/weapondamage.ts index 555d4292..cd3ea62d 100644 --- a/ReallifeGamemode.Client/util/weapondamage.ts +++ b/ReallifeGamemode.Client/util/weapondamage.ts @@ -37,7 +37,7 @@ export default function weapondamageUtil() { } }); - mp.events.add('outgoingDamage', (sourceEntity, targetEntity, sourcePlayer, weapon, boneIndex, damage) => { + mp.events.add(RageEnums.EventKey.OUTGOING_DAMAGE, (sourceEntity, targetEntity, sourcePlayer, weapon, boneIndex, damage) => { if (spawnschutzEnabled && getWantedCount() === 0) { return true; } diff --git a/ReallifeGamemode.Server/Events/Death.cs b/ReallifeGamemode.Server/Events/Death.cs index cb2cf4a2..872632fa 100644 --- a/ReallifeGamemode.Server/Events/Death.cs +++ b/ReallifeGamemode.Server/Events/Death.cs @@ -163,7 +163,7 @@ namespace ReallifeGamemode.Server.Events { user.Dead = true; - if (!player.HasData("reviveSperre") && player.GetData("isDead") == false && !player.HasData("inGangWar") && player.GetData("SAdminduty") == false) + if (user.Wanteds > 0 || !player.HasData("reviveSperre") && player.GetData("isDead") == false && !player.HasData("inGangWar") && player.GetData("SAdminduty") == false) { //MEDIC AUFTRAG MedicTask reviveTask = new MedicTask() From 111a0f2dea71b70f6329f26906cd14b299f887e6 Mon Sep 17 00:00:00 2001 From: Fabian Date: Mon, 26 Apr 2021 01:55:53 +0200 Subject: [PATCH 013/114] sani revive tote wanteds --- ReallifeGamemode.Client/Event/event.ts | 34 +++++++++++++++++++ .../Commands/AdminCommands.cs | 12 +++++++ .../Commands/FactionCommands.cs | 7 ++++ 3 files changed, 53 insertions(+) create mode 100644 ReallifeGamemode.Client/Event/event.ts diff --git a/ReallifeGamemode.Client/Event/event.ts b/ReallifeGamemode.Client/Event/event.ts new file mode 100644 index 00000000..eafdb730 --- /dev/null +++ b/ReallifeGamemode.Client/Event/event.ts @@ -0,0 +1,34 @@ +import * as NativeUI from '../libs/NativeUI'; + +const Menu = NativeUI.Menu; +const UIMenuItem = NativeUI.UIMenuItem; +const UIMenuListItem = NativeUI.UIMenuListItem; +const UIMenuCheckboxItem = NativeUI.UIMenuCheckboxItem; +const BadgeStyle = NativeUI.BadgeStyle; +const Point = NativeUI.Point; +const ItemsCollection = NativeUI.ItemsCollection; +const Color = NativeUI.Color; + +let ggbItem = new UIMenuItem("Gut gegen Boese", ""); +ggbItem.BackColor = new Color(42, 46, 49); + +export default function createEvent(globalData: IGlobalData) { + + var eventMenu: NativeUI.Menu; + let screenRes = mp.game.graphics.getScreenResolution(0, 0); + + mp.events.add('showEventMenu', () => { + + if (!globalData.InMenu) { + globalData.InMenu = true; + + eventMenu = new Menu("Event starten", "", new Point(0, screenRes.y / 3), null, null); + eventMenu.AddItem(ggbItem); + eventMenu.Visible = true; + + eventMenu.MenuClose.on(() => { + globalData.InMenu = false; + }); + } + }); +} \ No newline at end of file diff --git a/ReallifeGamemode.Server/Commands/AdminCommands.cs b/ReallifeGamemode.Server/Commands/AdminCommands.cs index ed036f49..db79857d 100644 --- a/ReallifeGamemode.Server/Commands/AdminCommands.cs +++ b/ReallifeGamemode.Server/Commands/AdminCommands.cs @@ -545,6 +545,18 @@ namespace ReallifeGamemode.Server.Commands #region Admin + [Command("event", "~m~Benutzung: ~s~/event")] + public void CmdAdminEvent(Player player) + { + if (!player.GetUser()?.IsAdmin(AdminLevel.ADMIN) ?? true) + { + ChatService.NotAuthorized(player); + return; + } + + player.TriggerEvent("showEventMenu"); + } + [Command("countdown", "~m~Benutzung: ~s~/countdown [Zeit] [Text]", GreedyArg = true)] public void CmdAdminCountdown(Player player, string timer_string, string text) { diff --git a/ReallifeGamemode.Server/Commands/FactionCommands.cs b/ReallifeGamemode.Server/Commands/FactionCommands.cs index f6ad5d2a..83968304 100644 --- a/ReallifeGamemode.Server/Commands/FactionCommands.cs +++ b/ReallifeGamemode.Server/Commands/FactionCommands.cs @@ -402,10 +402,17 @@ namespace ReallifeGamemode.Server.Commands ChatService.ErrorMessage(player, "Der Spieler hat eine Revivesperre"); return; } + using (var dbContext = new DatabaseContext()) { var deadPlayerUser = deadPlayer.GetUser(dbContext); + if (deadPlayerUser.Wanteds > 0) + { + ChatService.ErrorMessage(player, "Dieser Spieler hat Wanteds"); + return; + } + if (deadPlayerUser.Handmoney >= 100) { deadPlayerUser.Handmoney -= 100; From 9820bc3850002389e4ae16a9919c07af0c93b96a Mon Sep 17 00:00:00 2001 From: Fabian Date: Mon, 26 Apr 2021 02:00:54 +0200 Subject: [PATCH 014/114] =?UTF-8?q?raus=20mit=20dem=20m=C3=BCll,=20kommt?= =?UTF-8?q?=20sp=C3=A4ter?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ReallifeGamemode.Client/Event/event.ts | 34 ------------------- .../Commands/AdminCommands.cs | 14 +------- 2 files changed, 1 insertion(+), 47 deletions(-) delete mode 100644 ReallifeGamemode.Client/Event/event.ts diff --git a/ReallifeGamemode.Client/Event/event.ts b/ReallifeGamemode.Client/Event/event.ts deleted file mode 100644 index eafdb730..00000000 --- a/ReallifeGamemode.Client/Event/event.ts +++ /dev/null @@ -1,34 +0,0 @@ -import * as NativeUI from '../libs/NativeUI'; - -const Menu = NativeUI.Menu; -const UIMenuItem = NativeUI.UIMenuItem; -const UIMenuListItem = NativeUI.UIMenuListItem; -const UIMenuCheckboxItem = NativeUI.UIMenuCheckboxItem; -const BadgeStyle = NativeUI.BadgeStyle; -const Point = NativeUI.Point; -const ItemsCollection = NativeUI.ItemsCollection; -const Color = NativeUI.Color; - -let ggbItem = new UIMenuItem("Gut gegen Boese", ""); -ggbItem.BackColor = new Color(42, 46, 49); - -export default function createEvent(globalData: IGlobalData) { - - var eventMenu: NativeUI.Menu; - let screenRes = mp.game.graphics.getScreenResolution(0, 0); - - mp.events.add('showEventMenu', () => { - - if (!globalData.InMenu) { - globalData.InMenu = true; - - eventMenu = new Menu("Event starten", "", new Point(0, screenRes.y / 3), null, null); - eventMenu.AddItem(ggbItem); - eventMenu.Visible = true; - - eventMenu.MenuClose.on(() => { - globalData.InMenu = false; - }); - } - }); -} \ No newline at end of file diff --git a/ReallifeGamemode.Server/Commands/AdminCommands.cs b/ReallifeGamemode.Server/Commands/AdminCommands.cs index db79857d..d312239c 100644 --- a/ReallifeGamemode.Server/Commands/AdminCommands.cs +++ b/ReallifeGamemode.Server/Commands/AdminCommands.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.Linq; using System.Net.Http; @@ -545,18 +545,6 @@ namespace ReallifeGamemode.Server.Commands #region Admin - [Command("event", "~m~Benutzung: ~s~/event")] - public void CmdAdminEvent(Player player) - { - if (!player.GetUser()?.IsAdmin(AdminLevel.ADMIN) ?? true) - { - ChatService.NotAuthorized(player); - return; - } - - player.TriggerEvent("showEventMenu"); - } - [Command("countdown", "~m~Benutzung: ~s~/countdown [Zeit] [Text]", GreedyArg = true)] public void CmdAdminCountdown(Player player, string timer_string, string text) { From 62b1c1ccaaf55fb78d115b5502ad14681fd3bb20 Mon Sep 17 00:00:00 2001 From: Luke Date: Mon, 26 Apr 2021 00:02:24 +0000 Subject: [PATCH 015/114] Eingabefeld (Chat) angepasst. War im Halbschlaf --- ReallifeGamemode.Client/assets/css/chat/main.css | 6 +++--- ReallifeGamemode.Client/assets/css/chat/main.css.map | 2 +- ReallifeGamemode.Client/assets/css/chat/main.scss | 6 +++--- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/ReallifeGamemode.Client/assets/css/chat/main.css b/ReallifeGamemode.Client/assets/css/chat/main.css index 913b65ce..a8d28c93 100644 --- a/ReallifeGamemode.Client/assets/css/chat/main.css +++ b/ReallifeGamemode.Client/assets/css/chat/main.css @@ -87,10 +87,10 @@ a { font-family: inherit; font-size: inherit; font-weight: inherit; - line-height: inherit; + line-height: 1; color: white; background: rgba(0, 0, 0, 0.5); - padding: .25em .5em .5em .5em; + padding: .25em .5em .5em; } ::-webkit-scrollbar { @@ -105,4 +105,4 @@ a { ::-webkit-scrollbar-thumb:hover { background: rgba(255, 17, 0, 0); } -/*# sourceMappingURL=main.css.map */ +/*# sourceMappingURL=main.css.map */ \ No newline at end of file diff --git a/ReallifeGamemode.Client/assets/css/chat/main.css.map b/ReallifeGamemode.Client/assets/css/chat/main.css.map index 4a9f1c6a..7f240a1f 100644 --- a/ReallifeGamemode.Client/assets/css/chat/main.css.map +++ b/ReallifeGamemode.Client/assets/css/chat/main.css.map @@ -1,6 +1,6 @@ { "version": 3, - "mappings": "AAAA,AAAA,IAAI,CAAC;EAAE,UAAU,EAAE,UAAU;CAAI;;AACjC,AAAA,CAAC,EAAE,CAAC,AAAA,OAAO,EAAE,CAAC,AAAA,MAAM,CAAC;EAAE,UAAU,EAAE,OAAO;CAAI;;AAG9C,AAAA,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC;EACZ,OAAO,EAAE,CAAC;EACV,MAAM,EAAE,CACV;CAAC;;AAED,AAAA,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC;EAAE,KAAK,EAAE,KAAK;CAAI;;AAEvC,AAAA,IAAI,EAAE,IAAI,CAAC;EACT,sBAAsB,EAAE,WAAW;EACnC,QAAQ,EAAE,MAAM;EAChB,SAAS,EAAE,IAAI;EACf,WAAW,EAAE,IAAI;CAClB;;AAED,AAAA,IAAI,CAAC;EACH,WAAW,EAAE,oIAAoI;EACjJ,SAAS,EAAE,kBAAkB;EAC7B,WAAW,EAAE,GAAG;EAChB,SAAS,EAAE,GAAG;CACf;;AAED,AAAA,CAAC,CAAC;EAAE,eAAe,EAAE,IAAI;CAAI;;AAE7B,AAAA,WAAW,CAAC;EACV,OAAO,EAAE,IAAI;EACb,QAAQ,EAAE,QAAQ;EAClB,KAAK,EAAE,KAAK;EACZ,MAAM,EAAE,KAAK;EACb,OAAO,EAAE,CACX;CAAC;;AAED,AAAA,KAAK,CAAC;EACJ,OAAO,EAAE,KAAK;EACd,OAAO,EAAE,CAAC;EAEV,WAAW,EAAE,IAAI;EACjB,WAAW,EAAE,8EAA8E;EAC3F,cAAc,EAAE,IAAI;EAEpB,UAAU,EAAE,GAAG;EACf,WAAW,EAAE,GAAG;CAuCjB;;AAhDD,AAWE,KAXG,CAWH,EAAE,AAAA,cAAc,CAAC;EACf,MAAM,EAAE,OAAO;EACf,SAAS,EAAE,IAAI;EACf,SAAS,EAAE,iBAAiB;EAC5B,SAAS,EAAE,YAAY;EAEvB,UAAU,EAAE,IAAI;EAChB,UAAU,EAAE,MAAM;EAClB,UAAU,EAAE,SAAS;EAErB,eAAe,EAAE,IAAI;EACrB,aAAa,EAAE,KAAK;CAQrB;;AA9BH,AAwBI,KAxBC,CAWH,EAAE,AAAA,cAAc,GAaX,EAAE,CAAC;EACJ,SAAS,EAAE,YAAY;EACvB,aAAa,EAAE,MAAM;CAGtB;;AA7BL,AA4BM,KA5BD,CAWH,EAAE,AAAA,cAAc,GAaX,EAAE,AAIF,WAAW,CAAC;EAAE,aAAa,EAAE,KAAK;CAAI;;AA5B7C,AAgCE,KAhCG,CAgCH,KAAK,AAAA,SAAS,CAAC;EACb,KAAK,EAAE,IAAI;EACX,OAAO,EAAE,CAAC;EACV,MAAM,EAAE,IAAI;EACZ,aAAa,EAAE,GAAG;EAElB,WAAW,EAAE,OAAO;EACpB,SAAS,EAAE,OAAO;EAClB,WAAW,EAAE,OAAO;EACpB,WAAW,EAAE,OAAO;EAEpB,KAAK,EAAE,KAAK;EACZ,UAAU,EAAE,kBAAiB;EAE7B,OAAO,EAAE,oBAAoB;CAC9B;;AAGH,AAAA,mBAAmB,CAAC;EAClB,KAAK,EAAE,IAAI;CAQZ;;AATD,AAGE,mBAHiB,AAGhB,MAAM,CAAC;EACN,UAAU,EAAE,mBAAmB;EAC/B,aAAa,EAAE,GAAG;CAGnB;;AARH,AAOI,mBAPe,AAGhB,MAAM,AAIJ,MAAM,CAAC;EAAE,UAAU,EAAE,mBAAmB;CAAI", + "mappings": "AAAA,AAAA,IAAI,CAAC;EAAE,UAAU,EAAE,UAAU;CAAI;;AACjC,AAAA,CAAC,EAAE,CAAC,AAAA,OAAO,EAAE,CAAC,AAAA,MAAM,CAAC;EAAE,UAAU,EAAE,OAAO;CAAI;;AAG9C,AAAA,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC;EACZ,OAAO,EAAE,CAAC;EACV,MAAM,EAAE,CACV;CAAC;;AAED,AAAA,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC;EAAE,KAAK,EAAE,KAAK;CAAI;;AAEvC,AAAA,IAAI,EAAE,IAAI,CAAC;EACT,sBAAsB,EAAE,WAAW;EACnC,QAAQ,EAAE,MAAM;EAChB,SAAS,EAAE,IAAI;EACf,WAAW,EAAE,IAAI;CAClB;;AAED,AAAA,IAAI,CAAC;EACH,WAAW,EAAE,oIAAoI;EACjJ,SAAS,EAAE,kBAAkB;EAC7B,WAAW,EAAE,GAAG;EAChB,SAAS,EAAE,GAAG;CACf;;AAED,AAAA,CAAC,CAAC;EAAE,eAAe,EAAE,IAAI;CAAI;;AAE7B,AAAA,WAAW,CAAC;EACV,OAAO,EAAE,IAAI;EACb,QAAQ,EAAE,QAAQ;EAClB,KAAK,EAAE,KAAK;EACZ,MAAM,EAAE,KAAK;EACb,OAAO,EAAE,CACX;CAAC;;AAED,AAAA,KAAK,CAAC;EACJ,OAAO,EAAE,KAAK;EACd,OAAO,EAAE,CAAC;EAEV,WAAW,EAAE,IAAI;EACjB,WAAW,EAAE,8EAA8E;EAC3F,cAAc,EAAE,IAAI;EAEpB,UAAU,EAAE,GAAG;EACf,WAAW,EAAE,GAAG;CAuCjB;;AAhDD,AAWE,KAXG,CAWH,EAAE,AAAA,cAAc,CAAC;EACf,MAAM,EAAE,OAAO;EACf,SAAS,EAAE,IAAI;EACf,SAAS,EAAE,iBAAiB;EAC5B,SAAS,EAAE,YAAY;EAEvB,UAAU,EAAE,IAAI;EAChB,UAAU,EAAE,MAAM;EAClB,UAAU,EAAE,SAAS;EAErB,eAAe,EAAE,IAAI;EACrB,aAAa,EAAE,KAAK;CAQrB;;AA9BH,AAwBI,KAxBC,CAWH,EAAE,AAAA,cAAc,GAaX,EAAE,CAAC;EACJ,SAAS,EAAE,YAAY;EACvB,aAAa,EAAE,MAAM;CAGtB;;AA7BL,AA4BM,KA5BD,CAWH,EAAE,AAAA,cAAc,GAaX,EAAE,AAIF,WAAW,CAAC;EAAE,aAAa,EAAE,KAAK;CAAI;;AA5B7C,AAgCE,KAhCG,CAgCH,KAAK,AAAA,SAAS,CAAC;EACb,KAAK,EAAE,IAAI;EACX,OAAO,EAAE,CAAC;EACV,MAAM,EAAE,IAAI;EACZ,aAAa,EAAE,GAAG;EAElB,WAAW,EAAE,OAAO;EACpB,SAAS,EAAE,OAAO;EAClB,WAAW,EAAE,OAAO;EACpB,WAAW,EAAE,CAAC;EAEd,KAAK,EAAE,KAAK;EACZ,UAAU,EAAE,kBAAiB;EAE7B,OAAO,EAAE,eAAe;CACzB;;AAGH,AAAA,mBAAmB,CAAC;EAClB,KAAK,EAAE,IAAI;CAQZ;;AATD,AAGE,mBAHiB,AAGhB,MAAM,CAAC;EACN,UAAU,EAAE,mBAAmB;EAC/B,aAAa,EAAE,GAAG;CAGnB;;AARH,AAOI,mBAPe,AAGhB,MAAM,AAIJ,MAAM,CAAC;EAAE,UAAU,EAAE,mBAAmB;CAAI", "sources": [ "main.scss" ], diff --git a/ReallifeGamemode.Client/assets/css/chat/main.scss b/ReallifeGamemode.Client/assets/css/chat/main.scss index d397ad66..b0de6970 100644 --- a/ReallifeGamemode.Client/assets/css/chat/main.scss +++ b/ReallifeGamemode.Client/assets/css/chat/main.scss @@ -74,12 +74,12 @@ a { text-decoration: none; } font-family: inherit; font-size: inherit; font-weight: inherit; - line-height: inherit; + line-height: 1; color: white; background: rgba(0, 0, 0, .5); - padding: .25em .5em .5em .5em; + padding: .25em .5em .5em; } } @@ -92,4 +92,4 @@ a { text-decoration: none; } &:hover { background: rgba(255, 17, 0, 0); } } -} \ No newline at end of file +} From 304efcebbb9987ff931d3c5ed672defc30f40b2f Mon Sep 17 00:00:00 2001 From: Fabian Date: Mon, 26 Apr 2021 02:09:04 +0200 Subject: [PATCH 016/114] =?UTF-8?q?=C3=BCberweisung=20benachrichtigung?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ReallifeGamemode.Server/Bank/bank.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/ReallifeGamemode.Server/Bank/bank.cs b/ReallifeGamemode.Server/Bank/bank.cs index 6b2788d8..45e0db70 100644 --- a/ReallifeGamemode.Server/Bank/bank.cs +++ b/ReallifeGamemode.Server/Bank/bank.cs @@ -202,6 +202,7 @@ namespace ReallifeGamemode.Server.Bank else { player.SendNotification($"~w~Du hast {target.Name} $~g~{amount} ~w~Überwiesen."); + target.SendNotification($"~w~{player.Name} hat dir $~g~{amount} ~w~Überwiesen."); player.GetUser(dbContext).Faction.BankAccount.Balance -= (int)(amount * 1.05); target.GetUser(dbContext).otheramount += amount; dbContext.SaveChanges(); From cd601c4a875a7e04c8dfc3634a8c883cea79f588 Mon Sep 17 00:00:00 2001 From: Fabian Date: Mon, 26 Apr 2021 02:20:48 +0200 Subject: [PATCH 017/114] =?UTF-8?q?=C3=BCberweisung=20benachrichtigung?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ReallifeGamemode.Server/Bank/bank.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ReallifeGamemode.Server/Bank/bank.cs b/ReallifeGamemode.Server/Bank/bank.cs index 45e0db70..145b97ce 100644 --- a/ReallifeGamemode.Server/Bank/bank.cs +++ b/ReallifeGamemode.Server/Bank/bank.cs @@ -150,6 +150,7 @@ namespace ReallifeGamemode.Server.Bank else { player.SendNotification($"~w~Du hast {target.Name} $~g~{amount} ~w~Überwiesen."); + target.SendNotification($"~w~{player.Name} hat dir $~g~{amount} ~w~Überwiesen."); player.GetUser(dbContext).BankAccount.Balance -= (int)(amount * 1.05); target.GetUser(dbContext).otheramount += amount; dbContext.SaveChanges(); @@ -202,7 +203,6 @@ namespace ReallifeGamemode.Server.Bank else { player.SendNotification($"~w~Du hast {target.Name} $~g~{amount} ~w~Überwiesen."); - target.SendNotification($"~w~{player.Name} hat dir $~g~{amount} ~w~Überwiesen."); player.GetUser(dbContext).Faction.BankAccount.Balance -= (int)(amount * 1.05); target.GetUser(dbContext).otheramount += amount; dbContext.SaveChanges(); From 0ab081cccb1e371b83ab5a8336dd7194a8383609 Mon Sep 17 00:00:00 2001 From: Fabian Date: Mon, 26 Apr 2021 21:18:51 +0200 Subject: [PATCH 018/114] =?UTF-8?q?neuer=20knast:=20punkte=20ge=C3=A4ndert?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ReallifeGamemode.Server/Events/Death.cs | 2 +- ReallifeGamemode.Server/Events/Login.cs | 4 +-- ReallifeGamemode.Server/Finance/Economy.cs | 2 +- ReallifeGamemode.Server/Wanted/Jail.cs | 42 +++++++++++++++------- 4 files changed, 33 insertions(+), 17 deletions(-) diff --git a/ReallifeGamemode.Server/Events/Death.cs b/ReallifeGamemode.Server/Events/Death.cs index 872632fa..5f980db3 100644 --- a/ReallifeGamemode.Server/Events/Death.cs +++ b/ReallifeGamemode.Server/Events/Death.cs @@ -148,7 +148,7 @@ namespace ReallifeGamemode.Server.Events if (copNearby) { user.SetJailTime(true, dbContext); - Jail.Check_PutBehindBars(user); + Jail.Check_PutBehindBars(user, "cell"); ChatService.HQMessage(user.Name + " wurde ins Gefängnis eingeliefert."); } else diff --git a/ReallifeGamemode.Server/Events/Login.cs b/ReallifeGamemode.Server/Events/Login.cs index a4357238..639baff4 100644 --- a/ReallifeGamemode.Server/Events/Login.cs +++ b/ReallifeGamemode.Server/Events/Login.cs @@ -1,4 +1,4 @@ -using System.Linq; +using System.Linq; using GTANetworkAPI; using Microsoft.EntityFrameworkCore; using Newtonsoft.Json; @@ -164,7 +164,7 @@ namespace ReallifeGamemode.Server.Events } else { - Jail.Check_PutBehindBars(user); + Jail.Check_PutBehindBars(user, "cell"); } player.Dimension = 0; diff --git a/ReallifeGamemode.Server/Finance/Economy.cs b/ReallifeGamemode.Server/Finance/Economy.cs index 3e5cfce8..4bf28832 100644 --- a/ReallifeGamemode.Server/Finance/Economy.cs +++ b/ReallifeGamemode.Server/Finance/Economy.cs @@ -200,7 +200,7 @@ namespace ReallifeGamemode.Server.Finance if (putInJail != 0 && minusJail) { - Jail.Check_PutBehindBars(u); + Jail.Check_PutBehindBars(u, "cell"); } } diff --git a/ReallifeGamemode.Server/Wanted/Jail.cs b/ReallifeGamemode.Server/Wanted/Jail.cs index 745a12e1..f5c06a7c 100644 --- a/ReallifeGamemode.Server/Wanted/Jail.cs +++ b/ReallifeGamemode.Server/Wanted/Jail.cs @@ -19,7 +19,18 @@ namespace ReallifeGamemode.Server.Wanted { private static Dictionary Jailtime { get; set; } = new Dictionary(); //time in seconds - public static void Check_PutBehindBars(User user) + private static Vector3 JailIn_Point = new Vector3(1690.754, 2591.0464, 45.914402); + private static int JailIn_Range = 3; + private static Vector3 JailOut_Point = new Vector3(1848.3097, 2585.9036, 45.67201); + + private static List prisonCells = new List() { + new Vector3(1629.2026, 2569.8057, 45.564846), + new Vector3(1642.7831, 2570.2622, 45.56483), + new Vector3(1651.512, 2570.2249, 45.564907) + }; + + //positionInJail: ENTWEDER "cell" ODER "outside" + public static void Check_PutBehindBars(User user, String positionInJail) { user.SetBlipAndNametagColor(); Player player = user.Player; @@ -31,15 +42,19 @@ namespace ReallifeGamemode.Server.Wanted player.ClearAnimation(); player.SafeSetHealth(100); player.Armor = 0; - Random rnd = new Random(); - int rndInt = rnd.Next(1, 3); - Vector3 position = new Vector3(); - if (rndInt == 1) - position = new Vector3(458.9842, -997.2126, 24.91485); //send client to jail - if (rndInt == 2) - position = new Vector3(459.696, -994.3766, 24.91486); //send client to jail - if (rndInt == 3) - position = new Vector3(458.3372, -1001.258, 24.91485); //send client to jail + + Vector3 position = null; + + if (positionInJail == "cell") + { + Random rnd = new Random(); + int rndInt = rnd.Next(1, 3); + position = prisonCells[rndInt]; + + } else if (positionInJail == "outside") + { + position = new Vector3(1691.42, 2562.77, 45.56); + } player.SafeTeleport(position, 0, true); @@ -78,7 +93,7 @@ namespace ReallifeGamemode.Server.Wanted using var dbContext = new DatabaseContext(); foreach (var player in NAPI.Pools.GetAllPlayers()) { - if (player.Position.DistanceTo(new Vector3(458.9842, -997.2126, 24.91485)) > 7) + if (player.Position.DistanceTo(JailIn_Point) > JailIn_Range) { continue; } @@ -98,7 +113,8 @@ namespace ReallifeGamemode.Server.Wanted user.SetBlipAndNametagColor(); user.AnnouncePlayerJailedIn(); dbContext.SaveChanges(); - Check_PutBehindBars(user); + //HERE: Freilauf + Check_PutBehindBars(user, "outside"); break; } } @@ -139,7 +155,7 @@ namespace ReallifeGamemode.Server.Wanted if (user.JailTime <= 0) { Jailtime.Remove(user.Id); - player.SafeTeleport(new Vector3(427.879, -984.65, 30.71)); + player.SafeTeleport(JailOut_Point); player.TriggerEvent("jailTime", 0); return; } From eff0f226be6be50685f62f33d0e973ba1ffcb003 Mon Sep 17 00:00:00 2001 From: Luke Date: Mon, 26 Apr 2021 19:53:16 +0000 Subject: [PATCH 019/114] rechtschreibung schlechtschreibung --- ReallifeGamemode.Client/Player/weaponlist.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/ReallifeGamemode.Client/Player/weaponlist.ts b/ReallifeGamemode.Client/Player/weaponlist.ts index 49f640c0..cba4f2d6 100644 --- a/ReallifeGamemode.Client/Player/weaponlist.ts +++ b/ReallifeGamemode.Client/Player/weaponlist.ts @@ -1,4 +1,4 @@ -import * as NativeUI from '../libs/NativeUI'; +import * as NativeUI from '../libs/NativeUI'; const Menu = NativeUI.Menu; const UIMenuItem = NativeUI.UIMenuItem; @@ -10,7 +10,7 @@ const ItemsCollection = NativeUI.ItemsCollection; const Color = NativeUI.Color; let screenRes = mp.game.graphics.getScreenResolution(0, 0); -let saveItem = new UIMenuItem("Waffen Nehmen", ""); +let saveItem = new UIMenuItem("Waffen nehmen", ""); saveItem.BackColor = new Color(13, 71, 161); saveItem.HighlightedBackColor = new Color(25, 118, 210); @@ -131,7 +131,7 @@ export default function weaponList(globalData: IGlobalData) { weaponMenu.ItemSelect.on((item) => { - if (item.Text === "Waffen Nehmen") { + if (item.Text === "Waffen nehmen") { mp.events.callRemote("saveWeaponSelection", primary, secondary, melee, specialWep, armor); weaponMenu.Close(); globalData.InMenu = false; @@ -150,4 +150,4 @@ export default function weaponList(globalData: IGlobalData) { }); } }); -} \ No newline at end of file +} From 085bffb9cfe58f3adf882e82a3e1d4a1efe4a2c8 Mon Sep 17 00:00:00 2001 From: Fabian Date: Mon, 26 Apr 2021 21:55:53 +0200 Subject: [PATCH 020/114] =?UTF-8?q?polygon=20f=C3=BCr=20knast=20drin?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Player/{nodm.ts => polygons.ts} | 32 ++++++++++++++++++- ReallifeGamemode.Client/index.ts | 4 +-- ReallifeGamemode.Server/Wanted/Jail.cs | 2 +- 3 files changed, 34 insertions(+), 4 deletions(-) rename ReallifeGamemode.Client/Player/{nodm.ts => polygons.ts} (54%) diff --git a/ReallifeGamemode.Client/Player/nodm.ts b/ReallifeGamemode.Client/Player/polygons.ts similarity index 54% rename from ReallifeGamemode.Client/Player/nodm.ts rename to ReallifeGamemode.Client/Player/polygons.ts index bffea4fc..66edb397 100644 --- a/ReallifeGamemode.Client/Player/nodm.ts +++ b/ReallifeGamemode.Client/Player/polygons.ts @@ -1,5 +1,31 @@ import polygons from "../polygons"; +//Start: Eingang direkt rechts, rechts entlang +const prisonVector1 = new mp.Vector3(1809.99365234375, 2612.373291015625, 45.50623321533203); +const prisonVector2 = new mp.Vector3(1810.377197265625, 2620.338623046875, 45.51300048828125); +const prisonVector3 = new mp.Vector3(1835.8336181640625, 2688.819091796875, 45.4307975769043); +const prisonVector4 = new mp.Vector3(1830.5731201171875, 2703.89990234375, 45.42714309692383); +const prisonVector5 = new mp.Vector3(1776.7342529296875, 2747.79052734375, 45.42777633666992); +const prisonVector6 = new mp.Vector3(1762.360107421875, 2752.788818359375, 45.42710494995117); +const prisonVector7 = new mp.Vector3(1662.0726318359375, 2749.177001953125, 45.444488525390625); +const prisonVector8 = new mp.Vector3(1648.1600341796875, 2742.01611328125, 45.441619873046875); +const prisonVector9 = new mp.Vector3(1584.302978515625, 2679.99072265625, 45.47876739501953); +const prisonVector10 = new mp.Vector3(1575.2301025390625, 2667.2109375, 45.48185729980469); +const prisonVector11 = new mp.Vector3(1547.1693115234375, 2591.489990234375, 45.388912200927734); +const prisonVector12 = new mp.Vector3(1546.39892578125, 2576.266845703125, 45.38877868652344); +const prisonVector13 = new mp.Vector3(1550.493896484375, 2482.98388671875, 45.38750076293945); +const prisonVector14 = new mp.Vector3(1557.9322509765625, 2468.98681640625, 45.387237548828125); +const prisonVector15 = new mp.Vector3(1652.527099609375, 2409.1259765625, 45.40341567993164); +const prisonVector16 = new mp.Vector3(1667.7176513671875, 2407.0595703125, 45.401432037353516); +const prisonVector17 = new mp.Vector3(1749.3123779296875, 2419.23779296875, 45.42228698730469); +const prisonVector18 = new mp.Vector3(1762.95849609375, 2426.209228515625, 45.42059326171875); +const prisonVector19 = new mp.Vector3(1809.08837890625, 2473.969970703125, 45.445960998535156); +const prisonVector20 = new mp.Vector3(1814.2039794921875, 2489.00830078125, 45.44499588012695); +const prisonVector21 = new mp.Vector3(1807.0340576171875, 2535.93212890625, 43.4123420715332); +const prisonVector22 = new mp.Vector3(1809.77587890625, 2590.69775390625, 43.41337966918945); +const prisonVector23 = new mp.Vector3(1819.170654296875, 2597.941650390625, 45.525978088378906); +const prisonVector24 = new mp.Vector3(1819.3084716796875, 2612.3154296875, 45.52067947387695); + const busbaseVector1 = new mp.Vector3(-522.4485, -2138.7021, 7.7564063); const busbaseVector2 = new mp.Vector3(-584.9822, -2072.467, 5.9921026); const busbaseVector3 = new mp.Vector3(-669.1689, -2172.7917, 6.009973); @@ -37,10 +63,14 @@ const polygon_pilotAnfaenger = polygons.add([pilotAnfaengerVector1, pilotAnfaeng const polygon_pilotProfi = polygons.add([pilotProfiVector1, pilotProfiVector2, pilotProfiVector3, pilotProfiVector4], 15, false, [255, 155, 0, 255], 0); const polygon_muellbase = polygons.add([muellbaseVector1, muellbaseVector2, muellbaseVector3], 15, false, [255, 155, 0, 255], 0); +const polygon_prison = polygons.add([prisonVector1, prisonVector2, prisonVector3, prisonVector4, prisonVector5, prisonVector6, prisonVector7, prisonVector8, + prisonVector9, prisonVector10, prisonVector11, prisonVector12, prisonVector13, prisonVector14, prisonVector15, prisonVector16, + prisonVector17, prisonVector18, prisonVector19, prisonVector20, prisonVector21, prisonVector22, prisonVector23, prisonVector24], 25, true, [255, 155, 0, 255], 0); + export let listNoDMZones = [polygon_busbase, polygon_stadthalle, polygon_fahrschule, polygon_pilotAnfaenger, polygon_pilotProfi, polygon_muellbase]; export let isInAnyNoDMPolygon; -export default function nodmHandler() { +export default function polygonHandler() { mp.events.add('playerEnterPolygon', (polygon) => { diff --git a/ReallifeGamemode.Client/index.ts b/ReallifeGamemode.Client/index.ts index 0ec8ef2d..decabaff 100644 --- a/ReallifeGamemode.Client/index.ts +++ b/ReallifeGamemode.Client/index.ts @@ -186,8 +186,8 @@ ped(); import reportList from './Player/reportmenu'; reportList(globalData); -import nodmHandler from './Player/nodm'; -nodmHandler(); +import polygonHandler from './Player/polygons'; +polygonHandler(); import checkpointHandle from './util/checkpoint'; checkpointHandle(globalData); diff --git a/ReallifeGamemode.Server/Wanted/Jail.cs b/ReallifeGamemode.Server/Wanted/Jail.cs index f5c06a7c..7dd7509a 100644 --- a/ReallifeGamemode.Server/Wanted/Jail.cs +++ b/ReallifeGamemode.Server/Wanted/Jail.cs @@ -29,7 +29,7 @@ namespace ReallifeGamemode.Server.Wanted new Vector3(1651.512, 2570.2249, 45.564907) }; - //positionInJail: ENTWEDER "cell" ODER "outside" + //positionInJail: ENTWEDER "cell" ODER "outside", TODO: enum oder sowas public static void Check_PutBehindBars(User user, String positionInJail) { user.SetBlipAndNametagColor(); From 9c1942bfb22e3ba4459c71c2f5ef6df162395f2b Mon Sep 17 00:00:00 2001 From: Fabian Date: Mon, 26 Apr 2021 21:59:35 +0200 Subject: [PATCH 021/114] fixxxxx --- ReallifeGamemode.Client/util/weapondamage.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ReallifeGamemode.Client/util/weapondamage.ts b/ReallifeGamemode.Client/util/weapondamage.ts index cd3ea62d..c631b268 100644 --- a/ReallifeGamemode.Client/util/weapondamage.ts +++ b/ReallifeGamemode.Client/util/weapondamage.ts @@ -1,4 +1,4 @@ -import { isInAnyNoDMPolygon, listNoDMZones } from "../Player/nodm"; +import { isInAnyNoDMPolygon, listNoDMZones } from "../Player/polygons"; import polygons from "../polygons"; import { getWantedCount } from "../Gui/wanteds"; import { spawnschutzEnabled } from "../Player/spawnschutz"; From 543accf718633518f66f654a8273a5ad83a9693d Mon Sep 17 00:00:00 2001 From: Fabian Date: Mon, 26 Apr 2021 22:07:52 +0200 Subject: [PATCH 022/114] knast vectoren angepasst --- ReallifeGamemode.Client/Player/polygons.ts | 50 +++++++++++----------- 1 file changed, 25 insertions(+), 25 deletions(-) diff --git a/ReallifeGamemode.Client/Player/polygons.ts b/ReallifeGamemode.Client/Player/polygons.ts index 66edb397..a8e859e1 100644 --- a/ReallifeGamemode.Client/Player/polygons.ts +++ b/ReallifeGamemode.Client/Player/polygons.ts @@ -1,30 +1,30 @@ import polygons from "../polygons"; //Start: Eingang direkt rechts, rechts entlang -const prisonVector1 = new mp.Vector3(1809.99365234375, 2612.373291015625, 45.50623321533203); -const prisonVector2 = new mp.Vector3(1810.377197265625, 2620.338623046875, 45.51300048828125); -const prisonVector3 = new mp.Vector3(1835.8336181640625, 2688.819091796875, 45.4307975769043); -const prisonVector4 = new mp.Vector3(1830.5731201171875, 2703.89990234375, 45.42714309692383); -const prisonVector5 = new mp.Vector3(1776.7342529296875, 2747.79052734375, 45.42777633666992); -const prisonVector6 = new mp.Vector3(1762.360107421875, 2752.788818359375, 45.42710494995117); -const prisonVector7 = new mp.Vector3(1662.0726318359375, 2749.177001953125, 45.444488525390625); -const prisonVector8 = new mp.Vector3(1648.1600341796875, 2742.01611328125, 45.441619873046875); -const prisonVector9 = new mp.Vector3(1584.302978515625, 2679.99072265625, 45.47876739501953); -const prisonVector10 = new mp.Vector3(1575.2301025390625, 2667.2109375, 45.48185729980469); -const prisonVector11 = new mp.Vector3(1547.1693115234375, 2591.489990234375, 45.388912200927734); -const prisonVector12 = new mp.Vector3(1546.39892578125, 2576.266845703125, 45.38877868652344); -const prisonVector13 = new mp.Vector3(1550.493896484375, 2482.98388671875, 45.38750076293945); -const prisonVector14 = new mp.Vector3(1557.9322509765625, 2468.98681640625, 45.387237548828125); -const prisonVector15 = new mp.Vector3(1652.527099609375, 2409.1259765625, 45.40341567993164); -const prisonVector16 = new mp.Vector3(1667.7176513671875, 2407.0595703125, 45.401432037353516); -const prisonVector17 = new mp.Vector3(1749.3123779296875, 2419.23779296875, 45.42228698730469); -const prisonVector18 = new mp.Vector3(1762.95849609375, 2426.209228515625, 45.42059326171875); -const prisonVector19 = new mp.Vector3(1809.08837890625, 2473.969970703125, 45.445960998535156); -const prisonVector20 = new mp.Vector3(1814.2039794921875, 2489.00830078125, 45.44499588012695); -const prisonVector21 = new mp.Vector3(1807.0340576171875, 2535.93212890625, 43.4123420715332); -const prisonVector22 = new mp.Vector3(1809.77587890625, 2590.69775390625, 43.41337966918945); -const prisonVector23 = new mp.Vector3(1819.170654296875, 2597.941650390625, 45.525978088378906); -const prisonVector24 = new mp.Vector3(1819.3084716796875, 2612.3154296875, 45.52067947387695); +const prisonVector1 = new mp.Vector3(1809.99365234375, 2612.373291015625, 40.50623321533203); +const prisonVector2 = new mp.Vector3(1810.377197265625, 2620.338623046875, 40.51300048828125); +const prisonVector3 = new mp.Vector3(1835.8336181640625, 2688.819091796875, 40.4307975769043); +const prisonVector4 = new mp.Vector3(1830.5731201171875, 2703.89990234375, 40.42714309692383); +const prisonVector5 = new mp.Vector3(1776.7342529296875, 2747.79052734375, 40.42777633666992); +const prisonVector6 = new mp.Vector3(1762.360107421875, 2752.788818359375, 40.42710494995117); +const prisonVector7 = new mp.Vector3(1662.0726318359375, 2749.177001953125, 40.444488525390625); +const prisonVector8 = new mp.Vector3(1648.1600341796875, 2742.01611328125, 40.441619873046875); +const prisonVector9 = new mp.Vector3(1584.302978515625, 2679.99072265625, 40.47876739501953); +const prisonVector10 = new mp.Vector3(1575.2301025390625, 2667.2109375, 40.48185729980469); +const prisonVector11 = new mp.Vector3(1547.1693115234375, 2591.489990234375, 40.388912200927734); +const prisonVector12 = new mp.Vector3(1546.39892578125, 2576.266845703125, 40.38877868652344); +const prisonVector13 = new mp.Vector3(1550.493896484375, 2482.98388671875, 40.38750076293945); +const prisonVector14 = new mp.Vector3(1557.9322509765625, 2468.98681640625, 40.387237548828125); +const prisonVector15 = new mp.Vector3(1652.527099609375, 2409.1259765625, 40.40341567993164); +const prisonVector16 = new mp.Vector3(1667.7176513671875, 2407.0595703125, 40.401432037353516); +const prisonVector17 = new mp.Vector3(1749.3123779296875, 2419.23779296875, 40.42228698730469); +const prisonVector18 = new mp.Vector3(1762.95849609375, 2426.209228515625, 40.42059326171875); +const prisonVector19 = new mp.Vector3(1809.08837890625, 2473.969970703125, 40.445960998535156); +const prisonVector20 = new mp.Vector3(1814.2039794921875, 2489.00830078125, 40.44499588012695); +const prisonVector21 = new mp.Vector3(1807.0340576171875, 2535.93212890625, 38.4123420715332); +const prisonVector22 = new mp.Vector3(1809.77587890625, 2590.69775390625, 38.41337966918945); +const prisonVector23 = new mp.Vector3(1819.170654296875, 2597.941650390625, 40.525978088378906); +const prisonVector24 = new mp.Vector3(1819.3084716796875, 2612.3154296875, 40.52067947387695); const busbaseVector1 = new mp.Vector3(-522.4485, -2138.7021, 7.7564063); const busbaseVector2 = new mp.Vector3(-584.9822, -2072.467, 5.9921026); @@ -65,7 +65,7 @@ const polygon_muellbase = polygons.add([muellbaseVector1, muellbaseVector2, muel const polygon_prison = polygons.add([prisonVector1, prisonVector2, prisonVector3, prisonVector4, prisonVector5, prisonVector6, prisonVector7, prisonVector8, prisonVector9, prisonVector10, prisonVector11, prisonVector12, prisonVector13, prisonVector14, prisonVector15, prisonVector16, - prisonVector17, prisonVector18, prisonVector19, prisonVector20, prisonVector21, prisonVector22, prisonVector23, prisonVector24], 25, true, [255, 155, 0, 255], 0); + prisonVector17, prisonVector18, prisonVector19, prisonVector20, prisonVector21, prisonVector22, prisonVector23, prisonVector24], 40, true, [255, 155, 0, 255], 0); export let listNoDMZones = [polygon_busbase, polygon_stadthalle, polygon_fahrschule, polygon_pilotAnfaenger, polygon_pilotProfi, polygon_muellbase]; export let isInAnyNoDMPolygon; From 259965c289de5d84659048e3d39c7170f6ff3800 Mon Sep 17 00:00:00 2001 From: Fabian Date: Mon, 26 Apr 2021 22:16:32 +0200 Subject: [PATCH 023/114] fixed dummen error --- ReallifeGamemode.Server/Events/Death.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ReallifeGamemode.Server/Events/Death.cs b/ReallifeGamemode.Server/Events/Death.cs index 5f980db3..c41bbb90 100644 --- a/ReallifeGamemode.Server/Events/Death.cs +++ b/ReallifeGamemode.Server/Events/Death.cs @@ -163,7 +163,7 @@ namespace ReallifeGamemode.Server.Events { user.Dead = true; - if (user.Wanteds > 0 || !player.HasData("reviveSperre") && player.GetData("isDead") == false && !player.HasData("inGangWar") && player.GetData("SAdminduty") == false) + if (user.Wanteds == 0 && !player.HasData("reviveSperre") && player.GetData("isDead") == false && !player.HasData("inGangWar") && player.GetData("SAdminduty") == false) { //MEDIC AUFTRAG MedicTask reviveTask = new MedicTask() From d661c3ede51214af15234e6ab4837851ec161bb3 Mon Sep 17 00:00:00 2001 From: Fabian Date: Mon, 26 Apr 2021 22:34:44 +0200 Subject: [PATCH 024/114] knastausbruch im neuen knast --- ReallifeGamemode.Client/Player/polygons.ts | 8 ++++ ReallifeGamemode.Server/Util/ThreadTimers.cs | 11 ----- ReallifeGamemode.Server/Wanted/Jail.cs | 50 +++++++++++--------- 3 files changed, 36 insertions(+), 33 deletions(-) diff --git a/ReallifeGamemode.Client/Player/polygons.ts b/ReallifeGamemode.Client/Player/polygons.ts index a8e859e1..c20be858 100644 --- a/ReallifeGamemode.Client/Player/polygons.ts +++ b/ReallifeGamemode.Client/Player/polygons.ts @@ -86,5 +86,13 @@ export default function polygonHandler() { mp.events.call('toggleNoDmZone', false); isInAnyNoDMPolygon = false; } + + if (polygon == polygon_prison) { + mp.events.callRemote("SERVER:CheckPlayerInJail"); + } + }); + + mp.events.add('CLIENT:PrisonBreakout', () => { + mp.events.callRemote("SERVER:PrisonBreakout"); }); } diff --git a/ReallifeGamemode.Server/Util/ThreadTimers.cs b/ReallifeGamemode.Server/Util/ThreadTimers.cs index 7b5db17b..5d205ae6 100644 --- a/ReallifeGamemode.Server/Util/ThreadTimers.cs +++ b/ReallifeGamemode.Server/Util/ThreadTimers.cs @@ -32,9 +32,6 @@ namespace ReallifeGamemode.Server.Util timer5000.Start(); timer5000.Elapsed += Timer5000_Elapsed; - timer10000.Start(); - timer10000.Elapsed += Timer10000_Elapsed; - timer60000.Start(); timer60000.Elapsed += Timer60000_Elapsed; } @@ -78,14 +75,6 @@ namespace ReallifeGamemode.Server.Util }); } - private static void Timer10000_Elapsed(object sender, ElapsedEventArgs e) - { - NAPI.Task.Run(() => - { - Jail.BrakeOut_Elapsed(); - }); - } - private static void Timer2500_Elapsed(object sender, ElapsedEventArgs e) { NAPI.Task.Run(() => diff --git a/ReallifeGamemode.Server/Wanted/Jail.cs b/ReallifeGamemode.Server/Wanted/Jail.cs index 7dd7509a..0630228b 100644 --- a/ReallifeGamemode.Server/Wanted/Jail.cs +++ b/ReallifeGamemode.Server/Wanted/Jail.cs @@ -51,7 +51,8 @@ namespace ReallifeGamemode.Server.Wanted int rndInt = rnd.Next(1, 3); position = prisonCells[rndInt]; - } else if (positionInJail == "outside") + } + else if (positionInJail == "outside") { position = new Vector3(1691.42, 2562.77, 45.56); } @@ -123,27 +124,6 @@ namespace ReallifeGamemode.Server.Wanted } } - public static void BrakeOut_Elapsed() - { - foreach (var player in NAPI.Pools.GetAllPlayers()) - { - User user = player.GetUser(); - - if (user != null && player.Position.DistanceTo2D(new Vector3(458.9842, -997.2126, 24.91485)) > 7 && Jailtime.ContainsKey(user.Id)) - { - using (var dbContext = new DatabaseContext()) - { - user = player.GetUser(dbContext); - user.JailTime = 0; - user.GiveWanteds(null, 50, "Knast-Ausbruch"); - player.TriggerEvent("jailTime", 0); - dbContext.SaveChanges(); - Jailtime.Remove(user.Id); - } - } - } - } - public static void JailOut_Elapsed() { using var dbContext = new DatabaseContext(); @@ -227,5 +207,31 @@ namespace ReallifeGamemode.Server.Wanted target.TriggerEvent("jailTime", 0); } } + + [RemoteEvent("SERVER:PrisonBreakout")] + public static void BrakeOut_Elapsed(Player player) + { + User user = player.GetUser(); + + using (var dbContext = new DatabaseContext()) + { + user = player.GetUser(dbContext); + user.JailTime = 0; + user.GiveWanteds(null, 50, "Knast-Ausbruch"); + player.TriggerEvent("jailTime", 0); + dbContext.SaveChanges(); + Jailtime.Remove(user.Id); + } + } + + [RemoteEvent("SERVER:CheckPlayerInJail")] + public void checkPlayerInJail(Player player) + { + User user = player.GetUser(); + if (Jailtime.ContainsKey(user.Id)) + { + player.TriggerEvent("CLIENT:PrisonBreakout"); + } + } } } From 8aa35ea15fc1f621e7f0e8efc2d9887cb0afd17b Mon Sep 17 00:00:00 2001 From: Fabian Date: Mon, 26 Apr 2021 22:39:39 +0200 Subject: [PATCH 025/114] knast polygon unsichtbar es funktioniert juhu --- ReallifeGamemode.Client/Player/polygons.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ReallifeGamemode.Client/Player/polygons.ts b/ReallifeGamemode.Client/Player/polygons.ts index c20be858..0ee4f550 100644 --- a/ReallifeGamemode.Client/Player/polygons.ts +++ b/ReallifeGamemode.Client/Player/polygons.ts @@ -65,7 +65,7 @@ const polygon_muellbase = polygons.add([muellbaseVector1, muellbaseVector2, muel const polygon_prison = polygons.add([prisonVector1, prisonVector2, prisonVector3, prisonVector4, prisonVector5, prisonVector6, prisonVector7, prisonVector8, prisonVector9, prisonVector10, prisonVector11, prisonVector12, prisonVector13, prisonVector14, prisonVector15, prisonVector16, - prisonVector17, prisonVector18, prisonVector19, prisonVector20, prisonVector21, prisonVector22, prisonVector23, prisonVector24], 40, true, [255, 155, 0, 255], 0); + prisonVector17, prisonVector18, prisonVector19, prisonVector20, prisonVector21, prisonVector22, prisonVector23, prisonVector24], 40, false, [255, 155, 0, 255], 0); export let listNoDMZones = [polygon_busbase, polygon_stadthalle, polygon_fahrschule, polygon_pilotAnfaenger, polygon_pilotProfi, polygon_muellbase]; export let isInAnyNoDMPolygon; From 4d081d2114b13cee2d216305d9b83f37cd42339a Mon Sep 17 00:00:00 2001 From: hydrant Date: Mon, 26 Apr 2021 22:56:29 +0200 Subject: [PATCH 026/114] inputhelper kaputt gemacht bis er nicht mehr das spiel kaputt macht --- ReallifeGamemode.Client/assets/html/inputhelper/index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ReallifeGamemode.Client/assets/html/inputhelper/index.html b/ReallifeGamemode.Client/assets/html/inputhelper/index.html index a83e9194..335e30f4 100644 --- a/ReallifeGamemode.Client/assets/html/inputhelper/index.html +++ b/ReallifeGamemode.Client/assets/html/inputhelper/index.html @@ -24,7 +24,7 @@ - + + diff --git a/ReallifeGamemode.Client/assets/js/onlinelist/script.js b/ReallifeGamemode.Client/assets/js/onlinelist/script.js index a662711b..208b4d81 100644 --- a/ReallifeGamemode.Client/assets/js/onlinelist/script.js +++ b/ReallifeGamemode.Client/assets/js/onlinelist/script.js @@ -1,9 +1,9 @@ window.onbeforeunload = () => { window.scrollTo(0, 0); } +$(document).ready(function () { mp.trigger('CEF:PlayerList_Loaded'); }); setPlayerCount = (factionId, value) => { if (factionId == -1) { document.getElementById('player-count').innerHTML = value; - addTableSorting(); } else if (factionId >= 0 && factionId <= 9) { document.getElementById(factionId).innerHTML = value; } @@ -28,33 +28,4 @@ function addPlayerEntry(userId, userName, factionId, userPing) { document.getElementById('players').innerHTML += `${userId} ${userName} ${factionName} ${userPing}`; } -// https://www.jstips.co/en/javascript/detect-document-ready-in-pure-js/ -document.onreadystatechange = () => { - if (document.readyState === 'complete') { mp.trigger('CEF:PlayerList_Loaded'); } -}; - -// Sortierung von https://codepen.io/selbekk/pen/LNOZKL -function addTableSorting() { - const headers = Array.from(document.querySelectorAll('th')); - const rows = Array.from(document.querySelectorAll('tbody tr')); - - function sort(e) { - const index = headers.indexOf(e.target); - const sortVal = e.target.classList.contains('is-asc') ? 1 : -1; - rows.sort((a, b) => { - const aValue = a.children[index].innerHTML; - const bValue = b.children[index].innerHTML; - if(aValue > bValue) { return sortVal; } - if(aValue < bValue) { return -sortVal; } - return 0; - }) - - e.target.classList.add('is-sorted'); - e.target.classList.toggle('is-asc'); - const body = document.querySelector('tbody'); - body.innerHTML = ''; - rows.forEach(row => body.appendChild(row)); - } - - headers.forEach(header => header.addEventListener('click', sort)); -} +$("table").stupidtable(); diff --git a/ReallifeGamemode.Client/assets/js/onlinelist/stupidtable.min.js b/ReallifeGamemode.Client/assets/js/onlinelist/stupidtable.min.js new file mode 100644 index 00000000..8339200d --- /dev/null +++ b/ReallifeGamemode.Client/assets/js/onlinelist/stupidtable.min.js @@ -0,0 +1 @@ +!function(i){i.fn.stupidtable=function(n){return this.each(function(){var t=i(this);n=n||{},n=i.extend({},i.fn.stupidtable.default_sort_fns,n),t.data("sortFns",n),t.stupidtable_build(),t.on("click.stupidtable","thead th",function(){i(this).stupidsort()}),t.find("th[data-sort-onload=yes]").eq(0).stupidsort()})},i.fn.stupidtable.default_settings={should_redraw:function(t){return!0},will_manually_build_table:!1},i.fn.stupidtable.dir={ASC:"asc",DESC:"desc"},i.fn.stupidtable.default_sort_fns={int:function(t,n){return parseInt(t,10)-parseInt(n,10)},float:function(t,n){return parseFloat(t)-parseFloat(n)},string:function(t,n){return t.toString().localeCompare(n.toString())},"string-ins":function(t,n){return t=t.toString().toLocaleLowerCase(),n=n.toString().toLocaleLowerCase(),t.localeCompare(n)}},i.fn.stupidtable_settings=function(a){return this.each(function(){var t=i(this),n=i.extend({},i.fn.stupidtable.default_settings,a);t.stupidtable.settings=n})},i.fn.stupidsort=function(t){var a=i(this),n=a.data("sort")||null;if(null!==n){var r=a.closest("table"),e={$th:a,$table:r,datatype:n};return r.stupidtable.settings||(r.stupidtable.settings=i.extend({},i.fn.stupidtable.default_settings)),e.compare_fn=r.data("sortFns")[n],e.th_index=l(e),e.sort_dir=u(t,e),a.data("sort-dir",e.sort_dir),r.trigger("beforetablesort",{column:e.th_index,direction:e.sort_dir,$th:a}),r.css("display"),setTimeout(function(){r.stupidtable.settings.will_manually_build_table||r.stupidtable_build();var t=s(e),n=d(t,e);r.stupidtable.settings.should_redraw(e)&&(r.children("tbody").append(n),o(e),r.trigger("aftertablesort",{column:e.th_index,direction:e.sort_dir,$th:a}),r.css("display"))},10),a}},i.fn.updateSortVal=function(t){var n=i(this);return n.is("[data-sort-value]")&&n.attr("data-sort-value",t),n.data("sort-value",t),n},i.fn.stupidtable_build=function(){return this.each(function(){var t=i(this),a=[];t.children("tbody").children("tr").each(function(t,n){var e={$tr:i(n),columns:[],index:t};i(n).children("td").each(function(t,n){var a=i(n).data("sort-value");if(void 0===a){var r=i(n).text();i(n).data("sort-value",r),a=r}e.columns.push(a)}),a.push(e)}),t.data("stupidsort_internaltable",a)})};var s=function(s){var t,n=s.$table.data("stupidsort_internaltable"),d=s.th_index,a=s.$th.data("sort-multicolumn");t=a?a.split(","):[];var o=i.map(t,function(t,n){return r(s.$table,t)});return n.sort(function(t,n){for(var a=o.slice(0),r=s.compare_fn(t.columns[d],n.columns[d]);0===r&&a.length;){var e=a[0],i=e.$e.data("sort");r=(0,s.$table.data("sortFns")[i])(t.columns[e.index],n.columns[e.index]),a.shift()}return 0===r?t.index-n.index:r}),s.sort_dir!=i.fn.stupidtable.dir.ASC&&n.reverse(),n},r=function(t,n){var a,r=t.find("th"),e=parseInt(n,10);return e||0===e?a=r.eq(e):(a=r.siblings("#"+n),e=r.index(a)),{index:e,$e:a}},d=function(t,a){var n=i.map(t,function(t,n){return[[t.columns[a.th_index],t.$tr,n]]});return a.column=n,i.map(t,function(t){return t.$tr})},o=function(t){var n=t.$table,a=t.$th,r=a.data("sort-dir");n.find("th").data("sort-dir",null).removeClass("sorting-desc sorting-asc"),a.data("sort-dir",r).addClass("sorting-"+r)},u=function(t,n){var a,r=n.$th,e=i.fn.stupidtable.dir;return t?a=t:(a=t||r.data("sort-default")||e.ASC,r.data("sort-dir")&&(a=r.data("sort-dir")===e.ASC?e.DESC:e.ASC)),a},l=function(t){var n=0,a=t.$th.index();return t.$th.parents("tr").find("th").slice(0,a).each(function(){var t=i(this).attr("colspan")||1;n+=parseInt(t,10)}),n}}(window.jQuery); From 0ec4d7741a3d3463829aaba762aa0f08c3248df5 Mon Sep 17 00:00:00 2001 From: Luke Date: Tue, 27 Apr 2021 00:56:54 +0000 Subject: [PATCH 035/114] neues logo --- .../assets/img/login/logo-light.png | Bin 7972 -> 2104 bytes .../assets/img/login/logo.png | Bin 7541 -> 2233 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/ReallifeGamemode.Client/assets/img/login/logo-light.png b/ReallifeGamemode.Client/assets/img/login/logo-light.png index 46f93732225d099a930379591393f4adde34c764..bd3de49f7562540b875410998698249079ec629d 100644 GIT binary patch literal 2104 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 literal 7541 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 From 0ed655b9e1fd5dbceca7cc71db672a57ecf40895 Mon Sep 17 00:00:00 2001 From: Luke Date: Tue, 27 Apr 2021 01:02:20 +0000 Subject: [PATCH 036/114] timestamp fix2 --- ReallifeGamemode.Client/assets/css/chat/main.css | 2 +- ReallifeGamemode.Client/assets/css/chat/main.css.map | 2 +- ReallifeGamemode.Client/assets/css/chat/main.scss | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/ReallifeGamemode.Client/assets/css/chat/main.css b/ReallifeGamemode.Client/assets/css/chat/main.css index a92944c3..2588d20f 100644 --- a/ReallifeGamemode.Client/assets/css/chat/main.css +++ b/ReallifeGamemode.Client/assets/css/chat/main.css @@ -108,6 +108,6 @@ a { .timestamp { display: inline-block; - width: 9ch; + width: 10ch; } /*# sourceMappingURL=main.css.map */ diff --git a/ReallifeGamemode.Client/assets/css/chat/main.css.map b/ReallifeGamemode.Client/assets/css/chat/main.css.map index b21d8355..c61e831a 100644 --- a/ReallifeGamemode.Client/assets/css/chat/main.css.map +++ b/ReallifeGamemode.Client/assets/css/chat/main.css.map @@ -1,6 +1,6 @@ { "version": 3, - "mappings": "AAAA,AAAA,IAAI,CAAC;EAAE,UAAU,EAAE,UAAU;CAAI;;AACjC,AAAA,CAAC,EAAE,CAAC,AAAA,OAAO,EAAE,CAAC,AAAA,MAAM,CAAC;EAAE,UAAU,EAAE,OAAO;CAAI;;AAG9C,AAAA,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC;EACZ,OAAO,EAAE,CAAC;EACV,MAAM,EAAE,CACV;CAAC;;AAED,AAAA,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC;EAAE,KAAK,EAAE,KAAK;CAAI;;AAEvC,AAAA,IAAI,EAAE,IAAI,CAAC;EACT,sBAAsB,EAAE,WAAW;EACnC,QAAQ,EAAE,MAAM;EAChB,SAAS,EAAE,IAAI;EACf,WAAW,EAAE,IAAI;CAClB;;AAED,AAAA,IAAI,CAAC;EACH,WAAW,EAAE,oIAAoI;EACjJ,SAAS,EAAE,kBAAkB;EAC7B,WAAW,EAAE,GAAG;EAChB,SAAS,EAAE,GAAG;CACf;;AAED,AAAA,CAAC,CAAC;EAAE,eAAe,EAAE,IAAI;CAAI;;AAE7B,AAAA,WAAW,CAAC;EACV,OAAO,EAAE,IAAI;EACb,QAAQ,EAAE,QAAQ;EAClB,KAAK,EAAE,KAAK;EACZ,MAAM,EAAE,KAAK;EACb,OAAO,EAAE,CACX;CAAC;;AAED,AAAA,KAAK,CAAC;EACJ,OAAO,EAAE,KAAK;EACd,OAAO,EAAE,CAAC;EAEV,WAAW,EAAE,IAAI;EACjB,WAAW,EAAE,8EAA8E;EAC3F,cAAc,EAAE,IAAI;EAEpB,UAAU,EAAE,GAAG;EACf,WAAW,EAAE,GAAG;CAuCjB;;AAhDD,AAWE,KAXG,CAWH,EAAE,AAAA,cAAc,CAAC;EACf,MAAM,EAAE,OAAO;EACf,SAAS,EAAE,IAAI;EACf,SAAS,EAAE,iBAAiB;EAC5B,SAAS,EAAE,YAAY;EAEvB,UAAU,EAAE,IAAI;EAChB,UAAU,EAAE,MAAM;EAClB,UAAU,EAAE,UAAU;EAEtB,eAAe,EAAE,IAAI;EACrB,aAAa,EAAE,KAAK;CAQrB;;AA9BH,AAwBI,KAxBC,CAWH,EAAE,AAAA,cAAc,GAaX,EAAE,CAAC;EACJ,SAAS,EAAE,YAAY;EACvB,aAAa,EAAE,MAAM;CAGtB;;AA7BL,AA4BM,KA5BD,CAWH,EAAE,AAAA,cAAc,GAaX,EAAE,AAIF,WAAW,CAAC;EAAE,aAAa,EAAE,KAAK;CAAI;;AA5B7C,AAgCE,KAhCG,CAgCH,KAAK,AAAA,SAAS,CAAC;EACb,KAAK,EAAE,IAAI;EACX,OAAO,EAAE,CAAC;EACV,MAAM,EAAE,IAAI;EACZ,aAAa,EAAE,GAAG;EAElB,WAAW,EAAE,OAAO;EACpB,SAAS,EAAE,OAAO;EAClB,WAAW,EAAE,OAAO;EACpB,WAAW,EAAE,CAAC;EAEd,KAAK,EAAE,KAAK;EACZ,UAAU,EAAE,kBAAiB;EAE7B,OAAO,EAAE,gBAAgB;CAC1B;;AAGH,AAAA,mBAAmB,CAAC;EAClB,KAAK,EAAE,IAAI;CAQZ;;AATD,AAGE,mBAHiB,AAGhB,MAAM,CAAC;EACN,UAAU,EAAE,mBAAmB;EAC/B,aAAa,EAAE,GAAG;CAGnB;;AARH,AAOI,mBAPe,AAGhB,MAAM,AAIJ,MAAM,CAAC;EAAE,UAAU,EAAE,mBAAmB;CAAI;;AAIjD,AAAA,UAAU,CAAC;EACT,OAAO,EAAE,YAAY;EACrB,KAAK,EAAE,GAAG;CACX", + "mappings": "AAAA,AAAA,IAAI,CAAC;EAAE,UAAU,EAAE,UAAU;CAAI;;AACjC,AAAA,CAAC,EAAE,CAAC,AAAA,OAAO,EAAE,CAAC,AAAA,MAAM,CAAC;EAAE,UAAU,EAAE,OAAO;CAAI;;AAG9C,AAAA,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC;EACZ,OAAO,EAAE,CAAC;EACV,MAAM,EAAE,CACV;CAAC;;AAED,AAAA,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC;EAAE,KAAK,EAAE,KAAK;CAAI;;AAEvC,AAAA,IAAI,EAAE,IAAI,CAAC;EACT,sBAAsB,EAAE,WAAW;EACnC,QAAQ,EAAE,MAAM;EAChB,SAAS,EAAE,IAAI;EACf,WAAW,EAAE,IAAI;CAClB;;AAED,AAAA,IAAI,CAAC;EACH,WAAW,EAAE,oIAAoI;EACjJ,SAAS,EAAE,kBAAkB;EAC7B,WAAW,EAAE,GAAG;EAChB,SAAS,EAAE,GAAG;CACf;;AAED,AAAA,CAAC,CAAC;EAAE,eAAe,EAAE,IAAI;CAAI;;AAE7B,AAAA,WAAW,CAAC;EACV,OAAO,EAAE,IAAI;EACb,QAAQ,EAAE,QAAQ;EAClB,KAAK,EAAE,KAAK;EACZ,MAAM,EAAE,KAAK;EACb,OAAO,EAAE,CACX;CAAC;;AAED,AAAA,KAAK,CAAC;EACJ,OAAO,EAAE,KAAK;EACd,OAAO,EAAE,CAAC;EAEV,WAAW,EAAE,IAAI;EACjB,WAAW,EAAE,8EAA8E;EAC3F,cAAc,EAAE,IAAI;EAEpB,UAAU,EAAE,GAAG;EACf,WAAW,EAAE,GAAG;CAuCjB;;AAhDD,AAWE,KAXG,CAWH,EAAE,AAAA,cAAc,CAAC;EACf,MAAM,EAAE,OAAO;EACf,SAAS,EAAE,IAAI;EACf,SAAS,EAAE,iBAAiB;EAC5B,SAAS,EAAE,YAAY;EAEvB,UAAU,EAAE,IAAI;EAChB,UAAU,EAAE,MAAM;EAClB,UAAU,EAAE,UAAU;EAEtB,eAAe,EAAE,IAAI;EACrB,aAAa,EAAE,KAAK;CAQrB;;AA9BH,AAwBI,KAxBC,CAWH,EAAE,AAAA,cAAc,GAaX,EAAE,CAAC;EACJ,SAAS,EAAE,YAAY;EACvB,aAAa,EAAE,MAAM;CAGtB;;AA7BL,AA4BM,KA5BD,CAWH,EAAE,AAAA,cAAc,GAaX,EAAE,AAIF,WAAW,CAAC;EAAE,aAAa,EAAE,KAAK;CAAI;;AA5B7C,AAgCE,KAhCG,CAgCH,KAAK,AAAA,SAAS,CAAC;EACb,KAAK,EAAE,IAAI;EACX,OAAO,EAAE,CAAC;EACV,MAAM,EAAE,IAAI;EACZ,aAAa,EAAE,GAAG;EAElB,WAAW,EAAE,OAAO;EACpB,SAAS,EAAE,OAAO;EAClB,WAAW,EAAE,OAAO;EACpB,WAAW,EAAE,CAAC;EAEd,KAAK,EAAE,KAAK;EACZ,UAAU,EAAE,kBAAiB;EAE7B,OAAO,EAAE,gBAAgB;CAC1B;;AAGH,AAAA,mBAAmB,CAAC;EAClB,KAAK,EAAE,IAAI;CAQZ;;AATD,AAGE,mBAHiB,AAGhB,MAAM,CAAC;EACN,UAAU,EAAE,mBAAmB;EAC/B,aAAa,EAAE,GAAG;CAGnB;;AARH,AAOI,mBAPe,AAGhB,MAAM,AAIJ,MAAM,CAAC;EAAE,UAAU,EAAE,mBAAmB;CAAI;;AAIjD,AAAA,UAAU,CAAC;EACT,OAAO,EAAE,YAAY;EACrB,KAAK,EAAE,IAAI;CACZ", "sources": [ "main.scss" ], diff --git a/ReallifeGamemode.Client/assets/css/chat/main.scss b/ReallifeGamemode.Client/assets/css/chat/main.scss index 28441831..53b9b7f8 100644 --- a/ReallifeGamemode.Client/assets/css/chat/main.scss +++ b/ReallifeGamemode.Client/assets/css/chat/main.scss @@ -96,5 +96,5 @@ a { text-decoration: none; } .timestamp { display: inline-block; - width: 9ch; -} + width: 10ch; +} \ No newline at end of file From 5c622918c87a249859e2176ae237b09e40d035e2 Mon Sep 17 00:00:00 2001 From: Luke Date: Tue, 27 Apr 2021 01:04:22 +0000 Subject: [PATCH 037/114] =?UTF-8?q?onlineliste=20header=20neu=20eingef?= =?UTF-8?q?=C3=A4rbt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ReallifeGamemode.Client/assets/css/onlinelist/style.css | 6 +++--- .../assets/css/onlinelist/style.css.map | 2 +- ReallifeGamemode.Client/assets/css/onlinelist/style.scss | 8 ++++---- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/ReallifeGamemode.Client/assets/css/onlinelist/style.css b/ReallifeGamemode.Client/assets/css/onlinelist/style.css index 07e3797f..9daec4a7 100644 --- a/ReallifeGamemode.Client/assets/css/onlinelist/style.css +++ b/ReallifeGamemode.Client/assets/css/onlinelist/style.css @@ -59,7 +59,7 @@ h2 { top: 0; z-index: 3; font-size: .9em; - background-color: #111; + background-color: #0C0C0C; padding: 1em 0; } @@ -87,8 +87,8 @@ table th { top: 3em; text-align: left; z-index: 2; - background-color: #111; - border-top: 1px solid #151515; + background-color: #0C0C0C; + border-top: 1px solid #0f0f0f; } table th, table td { diff --git a/ReallifeGamemode.Client/assets/css/onlinelist/style.css.map b/ReallifeGamemode.Client/assets/css/onlinelist/style.css.map index 36af8d2e..8b21e62f 100644 --- a/ReallifeGamemode.Client/assets/css/onlinelist/style.css.map +++ b/ReallifeGamemode.Client/assets/css/onlinelist/style.css.map @@ -1,6 +1,6 @@ { "version": 3, - "mappings": "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", + "mappings": "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", "sources": [ "style.scss" ], diff --git a/ReallifeGamemode.Client/assets/css/onlinelist/style.scss b/ReallifeGamemode.Client/assets/css/onlinelist/style.scss index fb960e15..3887d166 100644 --- a/ReallifeGamemode.Client/assets/css/onlinelist/style.scss +++ b/ReallifeGamemode.Client/assets/css/onlinelist/style.scss @@ -40,7 +40,7 @@ h2 { font-size: 1.125em; } z-index: 3; font-size: .9em; - background-color: #111; + background-color: #0C0C0C; padding: 1em 0; } @@ -67,8 +67,8 @@ table { text-align: left; z-index: 2; - background-color: #111; - border-top: 1px solid #151515; + background-color: #0C0C0C; + border-top: 1px solid #0f0f0f; } th, td { @@ -140,4 +140,4 @@ ol.inline.stats { justify-content: center; abbr { text-decoration: none; } -} +} \ No newline at end of file From cd937835c9550e1d45d115b47efd5630fbeaa615 Mon Sep 17 00:00:00 2001 From: Luke Date: Tue, 27 Apr 2021 01:09:20 +0000 Subject: [PATCH 038/114] akute dummheit, timestamp fix --- ReallifeGamemode.Client/assets/js/chat/main.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ReallifeGamemode.Client/assets/js/chat/main.js b/ReallifeGamemode.Client/assets/js/chat/main.js index 7a64f861..61037421 100644 --- a/ReallifeGamemode.Client/assets/js/chat/main.js +++ b/ReallifeGamemode.Client/assets/js/chat/main.js @@ -65,10 +65,10 @@ var chatAPI = if (chatElement === "
  • ") { if (chat.input == null || elmnt.scrollTop == elmnt.scrollHeight - elmnt.clientHeight) { - chat.container.append("
  • " + "[" + today.toLocaleTimeString('de-DE') + "] " + text + "
  • "); + chat.container.append("
  • " + "[" + today.toLocaleTimeString('de-DE') + "] " + text + "
  • "); elmnt.scrollTop = elmnt.scrollHeight - elmnt.clientHeight; } else { - chat.container.append("
  • " + "[" + today.toLocaleTimeString('de-DE') + "] " + text + "
  • "); + chat.container.append("
  • " + "[" + today.toLocaleTimeString('de-DE') + "] " + text + "
  • "); } } else { chat.container.append(chatElement); From 54a40cc1381d7b773e5048d0c0e53595cc2e5176 Mon Sep 17 00:00:00 2001 From: Luke Date: Tue, 27 Apr 2021 01:11:10 +0000 Subject: [PATCH 039/114] Timestamp-Breite wieder heruntergesetzt --- ReallifeGamemode.Client/assets/css/chat/main.css | 2 +- ReallifeGamemode.Client/assets/css/chat/main.css.map | 2 +- ReallifeGamemode.Client/assets/css/chat/main.scss | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/ReallifeGamemode.Client/assets/css/chat/main.css b/ReallifeGamemode.Client/assets/css/chat/main.css index 2588d20f..a92944c3 100644 --- a/ReallifeGamemode.Client/assets/css/chat/main.css +++ b/ReallifeGamemode.Client/assets/css/chat/main.css @@ -108,6 +108,6 @@ a { .timestamp { display: inline-block; - width: 10ch; + width: 9ch; } /*# sourceMappingURL=main.css.map */ diff --git a/ReallifeGamemode.Client/assets/css/chat/main.css.map b/ReallifeGamemode.Client/assets/css/chat/main.css.map index c61e831a..b21d8355 100644 --- a/ReallifeGamemode.Client/assets/css/chat/main.css.map +++ b/ReallifeGamemode.Client/assets/css/chat/main.css.map @@ -1,6 +1,6 @@ { "version": 3, - "mappings": "AAAA,AAAA,IAAI,CAAC;EAAE,UAAU,EAAE,UAAU;CAAI;;AACjC,AAAA,CAAC,EAAE,CAAC,AAAA,OAAO,EAAE,CAAC,AAAA,MAAM,CAAC;EAAE,UAAU,EAAE,OAAO;CAAI;;AAG9C,AAAA,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC;EACZ,OAAO,EAAE,CAAC;EACV,MAAM,EAAE,CACV;CAAC;;AAED,AAAA,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC;EAAE,KAAK,EAAE,KAAK;CAAI;;AAEvC,AAAA,IAAI,EAAE,IAAI,CAAC;EACT,sBAAsB,EAAE,WAAW;EACnC,QAAQ,EAAE,MAAM;EAChB,SAAS,EAAE,IAAI;EACf,WAAW,EAAE,IAAI;CAClB;;AAED,AAAA,IAAI,CAAC;EACH,WAAW,EAAE,oIAAoI;EACjJ,SAAS,EAAE,kBAAkB;EAC7B,WAAW,EAAE,GAAG;EAChB,SAAS,EAAE,GAAG;CACf;;AAED,AAAA,CAAC,CAAC;EAAE,eAAe,EAAE,IAAI;CAAI;;AAE7B,AAAA,WAAW,CAAC;EACV,OAAO,EAAE,IAAI;EACb,QAAQ,EAAE,QAAQ;EAClB,KAAK,EAAE,KAAK;EACZ,MAAM,EAAE,KAAK;EACb,OAAO,EAAE,CACX;CAAC;;AAED,AAAA,KAAK,CAAC;EACJ,OAAO,EAAE,KAAK;EACd,OAAO,EAAE,CAAC;EAEV,WAAW,EAAE,IAAI;EACjB,WAAW,EAAE,8EAA8E;EAC3F,cAAc,EAAE,IAAI;EAEpB,UAAU,EAAE,GAAG;EACf,WAAW,EAAE,GAAG;CAuCjB;;AAhDD,AAWE,KAXG,CAWH,EAAE,AAAA,cAAc,CAAC;EACf,MAAM,EAAE,OAAO;EACf,SAAS,EAAE,IAAI;EACf,SAAS,EAAE,iBAAiB;EAC5B,SAAS,EAAE,YAAY;EAEvB,UAAU,EAAE,IAAI;EAChB,UAAU,EAAE,MAAM;EAClB,UAAU,EAAE,UAAU;EAEtB,eAAe,EAAE,IAAI;EACrB,aAAa,EAAE,KAAK;CAQrB;;AA9BH,AAwBI,KAxBC,CAWH,EAAE,AAAA,cAAc,GAaX,EAAE,CAAC;EACJ,SAAS,EAAE,YAAY;EACvB,aAAa,EAAE,MAAM;CAGtB;;AA7BL,AA4BM,KA5BD,CAWH,EAAE,AAAA,cAAc,GAaX,EAAE,AAIF,WAAW,CAAC;EAAE,aAAa,EAAE,KAAK;CAAI;;AA5B7C,AAgCE,KAhCG,CAgCH,KAAK,AAAA,SAAS,CAAC;EACb,KAAK,EAAE,IAAI;EACX,OAAO,EAAE,CAAC;EACV,MAAM,EAAE,IAAI;EACZ,aAAa,EAAE,GAAG;EAElB,WAAW,EAAE,OAAO;EACpB,SAAS,EAAE,OAAO;EAClB,WAAW,EAAE,OAAO;EACpB,WAAW,EAAE,CAAC;EAEd,KAAK,EAAE,KAAK;EACZ,UAAU,EAAE,kBAAiB;EAE7B,OAAO,EAAE,gBAAgB;CAC1B;;AAGH,AAAA,mBAAmB,CAAC;EAClB,KAAK,EAAE,IAAI;CAQZ;;AATD,AAGE,mBAHiB,AAGhB,MAAM,CAAC;EACN,UAAU,EAAE,mBAAmB;EAC/B,aAAa,EAAE,GAAG;CAGnB;;AARH,AAOI,mBAPe,AAGhB,MAAM,AAIJ,MAAM,CAAC;EAAE,UAAU,EAAE,mBAAmB;CAAI;;AAIjD,AAAA,UAAU,CAAC;EACT,OAAO,EAAE,YAAY;EACrB,KAAK,EAAE,IAAI;CACZ", + "mappings": "AAAA,AAAA,IAAI,CAAC;EAAE,UAAU,EAAE,UAAU;CAAI;;AACjC,AAAA,CAAC,EAAE,CAAC,AAAA,OAAO,EAAE,CAAC,AAAA,MAAM,CAAC;EAAE,UAAU,EAAE,OAAO;CAAI;;AAG9C,AAAA,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC;EACZ,OAAO,EAAE,CAAC;EACV,MAAM,EAAE,CACV;CAAC;;AAED,AAAA,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC;EAAE,KAAK,EAAE,KAAK;CAAI;;AAEvC,AAAA,IAAI,EAAE,IAAI,CAAC;EACT,sBAAsB,EAAE,WAAW;EACnC,QAAQ,EAAE,MAAM;EAChB,SAAS,EAAE,IAAI;EACf,WAAW,EAAE,IAAI;CAClB;;AAED,AAAA,IAAI,CAAC;EACH,WAAW,EAAE,oIAAoI;EACjJ,SAAS,EAAE,kBAAkB;EAC7B,WAAW,EAAE,GAAG;EAChB,SAAS,EAAE,GAAG;CACf;;AAED,AAAA,CAAC,CAAC;EAAE,eAAe,EAAE,IAAI;CAAI;;AAE7B,AAAA,WAAW,CAAC;EACV,OAAO,EAAE,IAAI;EACb,QAAQ,EAAE,QAAQ;EAClB,KAAK,EAAE,KAAK;EACZ,MAAM,EAAE,KAAK;EACb,OAAO,EAAE,CACX;CAAC;;AAED,AAAA,KAAK,CAAC;EACJ,OAAO,EAAE,KAAK;EACd,OAAO,EAAE,CAAC;EAEV,WAAW,EAAE,IAAI;EACjB,WAAW,EAAE,8EAA8E;EAC3F,cAAc,EAAE,IAAI;EAEpB,UAAU,EAAE,GAAG;EACf,WAAW,EAAE,GAAG;CAuCjB;;AAhDD,AAWE,KAXG,CAWH,EAAE,AAAA,cAAc,CAAC;EACf,MAAM,EAAE,OAAO;EACf,SAAS,EAAE,IAAI;EACf,SAAS,EAAE,iBAAiB;EAC5B,SAAS,EAAE,YAAY;EAEvB,UAAU,EAAE,IAAI;EAChB,UAAU,EAAE,MAAM;EAClB,UAAU,EAAE,UAAU;EAEtB,eAAe,EAAE,IAAI;EACrB,aAAa,EAAE,KAAK;CAQrB;;AA9BH,AAwBI,KAxBC,CAWH,EAAE,AAAA,cAAc,GAaX,EAAE,CAAC;EACJ,SAAS,EAAE,YAAY;EACvB,aAAa,EAAE,MAAM;CAGtB;;AA7BL,AA4BM,KA5BD,CAWH,EAAE,AAAA,cAAc,GAaX,EAAE,AAIF,WAAW,CAAC;EAAE,aAAa,EAAE,KAAK;CAAI;;AA5B7C,AAgCE,KAhCG,CAgCH,KAAK,AAAA,SAAS,CAAC;EACb,KAAK,EAAE,IAAI;EACX,OAAO,EAAE,CAAC;EACV,MAAM,EAAE,IAAI;EACZ,aAAa,EAAE,GAAG;EAElB,WAAW,EAAE,OAAO;EACpB,SAAS,EAAE,OAAO;EAClB,WAAW,EAAE,OAAO;EACpB,WAAW,EAAE,CAAC;EAEd,KAAK,EAAE,KAAK;EACZ,UAAU,EAAE,kBAAiB;EAE7B,OAAO,EAAE,gBAAgB;CAC1B;;AAGH,AAAA,mBAAmB,CAAC;EAClB,KAAK,EAAE,IAAI;CAQZ;;AATD,AAGE,mBAHiB,AAGhB,MAAM,CAAC;EACN,UAAU,EAAE,mBAAmB;EAC/B,aAAa,EAAE,GAAG;CAGnB;;AARH,AAOI,mBAPe,AAGhB,MAAM,AAIJ,MAAM,CAAC;EAAE,UAAU,EAAE,mBAAmB;CAAI;;AAIjD,AAAA,UAAU,CAAC;EACT,OAAO,EAAE,YAAY;EACrB,KAAK,EAAE,GAAG;CACX", "sources": [ "main.scss" ], diff --git a/ReallifeGamemode.Client/assets/css/chat/main.scss b/ReallifeGamemode.Client/assets/css/chat/main.scss index 53b9b7f8..d053f24b 100644 --- a/ReallifeGamemode.Client/assets/css/chat/main.scss +++ b/ReallifeGamemode.Client/assets/css/chat/main.scss @@ -96,5 +96,5 @@ a { text-decoration: none; } .timestamp { display: inline-block; - width: 10ch; + width: 9ch; } \ No newline at end of file From 3393e0d38dac16b68b5fa9ab67d372b2fb76a479 Mon Sep 17 00:00:00 2001 From: Luke Date: Tue, 27 Apr 2021 01:26:47 +0000 Subject: [PATCH 040/114] chat-timestamp-breite breiter --- ReallifeGamemode.Client/assets/css/chat/main.css | 2 +- ReallifeGamemode.Client/assets/css/chat/main.css.map | 4 ++-- ReallifeGamemode.Client/assets/css/chat/main.scss | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/ReallifeGamemode.Client/assets/css/chat/main.css b/ReallifeGamemode.Client/assets/css/chat/main.css index a92944c3..34bc6a52 100644 --- a/ReallifeGamemode.Client/assets/css/chat/main.css +++ b/ReallifeGamemode.Client/assets/css/chat/main.css @@ -108,6 +108,6 @@ a { .timestamp { display: inline-block; - width: 9ch; + width: 5.25em; } /*# sourceMappingURL=main.css.map */ diff --git a/ReallifeGamemode.Client/assets/css/chat/main.css.map b/ReallifeGamemode.Client/assets/css/chat/main.css.map index b21d8355..a30a22ea 100644 --- a/ReallifeGamemode.Client/assets/css/chat/main.css.map +++ b/ReallifeGamemode.Client/assets/css/chat/main.css.map @@ -1,9 +1,9 @@ { "version": 3, - "mappings": "AAAA,AAAA,IAAI,CAAC;EAAE,UAAU,EAAE,UAAU;CAAI;;AACjC,AAAA,CAAC,EAAE,CAAC,AAAA,OAAO,EAAE,CAAC,AAAA,MAAM,CAAC;EAAE,UAAU,EAAE,OAAO;CAAI;;AAG9C,AAAA,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC;EACZ,OAAO,EAAE,CAAC;EACV,MAAM,EAAE,CACV;CAAC;;AAED,AAAA,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC;EAAE,KAAK,EAAE,KAAK;CAAI;;AAEvC,AAAA,IAAI,EAAE,IAAI,CAAC;EACT,sBAAsB,EAAE,WAAW;EACnC,QAAQ,EAAE,MAAM;EAChB,SAAS,EAAE,IAAI;EACf,WAAW,EAAE,IAAI;CAClB;;AAED,AAAA,IAAI,CAAC;EACH,WAAW,EAAE,oIAAoI;EACjJ,SAAS,EAAE,kBAAkB;EAC7B,WAAW,EAAE,GAAG;EAChB,SAAS,EAAE,GAAG;CACf;;AAED,AAAA,CAAC,CAAC;EAAE,eAAe,EAAE,IAAI;CAAI;;AAE7B,AAAA,WAAW,CAAC;EACV,OAAO,EAAE,IAAI;EACb,QAAQ,EAAE,QAAQ;EAClB,KAAK,EAAE,KAAK;EACZ,MAAM,EAAE,KAAK;EACb,OAAO,EAAE,CACX;CAAC;;AAED,AAAA,KAAK,CAAC;EACJ,OAAO,EAAE,KAAK;EACd,OAAO,EAAE,CAAC;EAEV,WAAW,EAAE,IAAI;EACjB,WAAW,EAAE,8EAA8E;EAC3F,cAAc,EAAE,IAAI;EAEpB,UAAU,EAAE,GAAG;EACf,WAAW,EAAE,GAAG;CAuCjB;;AAhDD,AAWE,KAXG,CAWH,EAAE,AAAA,cAAc,CAAC;EACf,MAAM,EAAE,OAAO;EACf,SAAS,EAAE,IAAI;EACf,SAAS,EAAE,iBAAiB;EAC5B,SAAS,EAAE,YAAY;EAEvB,UAAU,EAAE,IAAI;EAChB,UAAU,EAAE,MAAM;EAClB,UAAU,EAAE,UAAU;EAEtB,eAAe,EAAE,IAAI;EACrB,aAAa,EAAE,KAAK;CAQrB;;AA9BH,AAwBI,KAxBC,CAWH,EAAE,AAAA,cAAc,GAaX,EAAE,CAAC;EACJ,SAAS,EAAE,YAAY;EACvB,aAAa,EAAE,MAAM;CAGtB;;AA7BL,AA4BM,KA5BD,CAWH,EAAE,AAAA,cAAc,GAaX,EAAE,AAIF,WAAW,CAAC;EAAE,aAAa,EAAE,KAAK;CAAI;;AA5B7C,AAgCE,KAhCG,CAgCH,KAAK,AAAA,SAAS,CAAC;EACb,KAAK,EAAE,IAAI;EACX,OAAO,EAAE,CAAC;EACV,MAAM,EAAE,IAAI;EACZ,aAAa,EAAE,GAAG;EAElB,WAAW,EAAE,OAAO;EACpB,SAAS,EAAE,OAAO;EAClB,WAAW,EAAE,OAAO;EACpB,WAAW,EAAE,CAAC;EAEd,KAAK,EAAE,KAAK;EACZ,UAAU,EAAE,kBAAiB;EAE7B,OAAO,EAAE,gBAAgB;CAC1B;;AAGH,AAAA,mBAAmB,CAAC;EAClB,KAAK,EAAE,IAAI;CAQZ;;AATD,AAGE,mBAHiB,AAGhB,MAAM,CAAC;EACN,UAAU,EAAE,mBAAmB;EAC/B,aAAa,EAAE,GAAG;CAGnB;;AARH,AAOI,mBAPe,AAGhB,MAAM,AAIJ,MAAM,CAAC;EAAE,UAAU,EAAE,mBAAmB;CAAI;;AAIjD,AAAA,UAAU,CAAC;EACT,OAAO,EAAE,YAAY;EACrB,KAAK,EAAE,GAAG;CACX", + "mappings": "AAAA,AAAA,IAAI,CAAC;EAAE,UAAU,EAAE,UAAU;CAAI;;AACjC,AAAA,CAAC,EAAE,CAAC,AAAA,OAAO,EAAE,CAAC,AAAA,MAAM,CAAC;EAAE,UAAU,EAAE,OAAO;CAAI;;AAG9C,AAAA,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC;EACZ,OAAO,EAAE,CAAC;EACV,MAAM,EAAE,CACV;CAAC;;AAED,AAAA,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC;EAAE,KAAK,EAAE,KAAK;CAAI;;AAEvC,AAAA,IAAI,EAAE,IAAI,CAAC;EACT,sBAAsB,EAAE,WAAW;EACnC,QAAQ,EAAE,MAAM;EAChB,SAAS,EAAE,IAAI;EACf,WAAW,EAAE,IAAI;CAClB;;AAED,AAAA,IAAI,CAAC;EACH,WAAW,EAAE,oIAAoI;EACjJ,SAAS,EAAE,kBAAkB;EAC7B,WAAW,EAAE,GAAG;EAChB,SAAS,EAAE,GAAG;CACf;;AAED,AAAA,CAAC,CAAC;EAAE,eAAe,EAAE,IAAI;CAAI;;AAE7B,AAAA,WAAW,CAAC;EACV,OAAO,EAAE,IAAI;EACb,QAAQ,EAAE,QAAQ;EAClB,KAAK,EAAE,KAAK;EACZ,MAAM,EAAE,KAAK;EACb,OAAO,EAAE,CACX;CAAC;;AAED,AAAA,KAAK,CAAC;EACJ,OAAO,EAAE,KAAK;EACd,OAAO,EAAE,CAAC;EAEV,WAAW,EAAE,IAAI;EACjB,WAAW,EAAE,8EAA8E;EAC3F,cAAc,EAAE,IAAI;EAEpB,UAAU,EAAE,GAAG;EACf,WAAW,EAAE,GAAG;CAuCjB;;AAhDD,AAWE,KAXG,CAWH,EAAE,AAAA,cAAc,CAAC;EACf,MAAM,EAAE,OAAO;EACf,SAAS,EAAE,IAAI;EACf,SAAS,EAAE,iBAAiB;EAC5B,SAAS,EAAE,YAAY;EAEvB,UAAU,EAAE,IAAI;EAChB,UAAU,EAAE,MAAM;EAClB,UAAU,EAAE,UAAU;EAEtB,eAAe,EAAE,IAAI;EACrB,aAAa,EAAE,KAAK;CAQrB;;AA9BH,AAwBI,KAxBC,CAWH,EAAE,AAAA,cAAc,GAaX,EAAE,CAAC;EACJ,SAAS,EAAE,YAAY;EACvB,aAAa,EAAE,MAAM;CAGtB;;AA7BL,AA4BM,KA5BD,CAWH,EAAE,AAAA,cAAc,GAaX,EAAE,AAIF,WAAW,CAAC;EAAE,aAAa,EAAE,KAAK;CAAI;;AA5B7C,AAgCE,KAhCG,CAgCH,KAAK,AAAA,SAAS,CAAC;EACb,KAAK,EAAE,IAAI;EACX,OAAO,EAAE,CAAC;EACV,MAAM,EAAE,IAAI;EACZ,aAAa,EAAE,GAAG;EAElB,WAAW,EAAE,OAAO;EACpB,SAAS,EAAE,OAAO;EAClB,WAAW,EAAE,OAAO;EACpB,WAAW,EAAE,CAAC;EAEd,KAAK,EAAE,KAAK;EACZ,UAAU,EAAE,kBAAiB;EAE7B,OAAO,EAAE,gBAAgB;CAC1B;;AAGH,AAAA,mBAAmB,CAAC;EAClB,KAAK,EAAE,IAAI;CAQZ;;AATD,AAGE,mBAHiB,AAGhB,MAAM,CAAC;EACN,UAAU,EAAE,mBAAmB;EAC/B,aAAa,EAAE,GAAG;CAGnB;;AARH,AAOI,mBAPe,AAGhB,MAAM,AAIJ,MAAM,CAAC;EAAE,UAAU,EAAE,mBAAmB;CAAI;;AAIjD,AAAA,UAAU,CAAC;EACT,OAAO,EAAE,YAAY;EACrB,KAAK,EAAE,MAAM;CACd", "sources": [ "main.scss" ], "names": [], "file": "main.css" -} \ No newline at end of file +} diff --git a/ReallifeGamemode.Client/assets/css/chat/main.scss b/ReallifeGamemode.Client/assets/css/chat/main.scss index d053f24b..da987b80 100644 --- a/ReallifeGamemode.Client/assets/css/chat/main.scss +++ b/ReallifeGamemode.Client/assets/css/chat/main.scss @@ -96,5 +96,5 @@ a { text-decoration: none; } .timestamp { display: inline-block; - width: 9ch; -} \ No newline at end of file + width: 5.25em; +} From 72f8732bbc296c820340901be6ecb53f2fb356bd Mon Sep 17 00:00:00 2001 From: kookroach Date: Tue, 27 Apr 2021 04:21:46 +0200 Subject: [PATCH 041/114] Change some things on job wages users don't need to know --- ReallifeGamemode.Server/Job/PilotJob.cs | 4 ++-- ReallifeGamemode.Server/Job/RefuseCollectorJob.cs | 12 ++++++------ 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/ReallifeGamemode.Server/Job/PilotJob.cs b/ReallifeGamemode.Server/Job/PilotJob.cs index 98b5a729..fb3d80dc 100644 --- a/ReallifeGamemode.Server/Job/PilotJob.cs +++ b/ReallifeGamemode.Server/Job/PilotJob.cs @@ -24,8 +24,8 @@ namespace ReallifeGamemode.Server.Job public const string INTERMEDIATE = "Fortgeschrittener"; public const string PROFESSIONAL = "Profi"; - public const int WAGE_BEGINNER = 300; - public const int WAGE_INTERMEDIATE = 900; + public const int WAGE_BEGINNER = 350; + public const int WAGE_INTERMEDIATE = 950; public const uint VEHICLE_BEGINNER = (uint)VehicleHash.Cuban800; public const uint VEHICLE_INTERMEDIATE = (uint)VehicleHash.Velum2; diff --git a/ReallifeGamemode.Server/Job/RefuseCollectorJob.cs b/ReallifeGamemode.Server/Job/RefuseCollectorJob.cs index cc187fc8..cb757cb2 100644 --- a/ReallifeGamemode.Server/Job/RefuseCollectorJob.cs +++ b/ReallifeGamemode.Server/Job/RefuseCollectorJob.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.Linq; using GTANetworkAPI; @@ -21,7 +21,7 @@ namespace ReallifeGamemode.Server.Job public override bool NeedVehicleToStart => false; private const int MAX_BAG = 40; - private const int WAGE = 80; + private const int WAGE = 50; private const int BONUS = 10; public RefuseCollectorJob() @@ -273,8 +273,8 @@ namespace ReallifeGamemode.Server.Job { if (target != null) { - user1.Wage += WAGE / 2; - user2.Wage += WAGE / 2; + user1.Wage += (int)(WAGE * 0.7); + user2.Wage += (int)(WAGE * 0.7); } else { @@ -308,8 +308,8 @@ namespace ReallifeGamemode.Server.Job if (target != null) { - user1.Wage += (int)(bonus / 2); - user2.Wage += (int)(bonus / 2); + user1.Wage += bonus; + user2.Wage += bonus; } else { From 4e2e1a46ebe3ce8cfb528a0a07458cbf132c583c Mon Sep 17 00:00:00 2001 From: hydrant Date: Tue, 27 Apr 2021 13:52:49 +0200 Subject: [PATCH 042/114] Revert "remove garbage" This reverts commit fa0be13bb23077ac0610b453f81e3656f23bc768 --- ReallifeGamemode.Server/Events/Death.cs | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/ReallifeGamemode.Server/Events/Death.cs b/ReallifeGamemode.Server/Events/Death.cs index baeede9d..c41bbb90 100644 --- a/ReallifeGamemode.Server/Events/Death.cs +++ b/ReallifeGamemode.Server/Events/Death.cs @@ -71,6 +71,11 @@ namespace ReallifeGamemode.Server.Events if (killerUser != null) { NAPI.Util.ConsoleOutput($"OnPlayerDeath - Player {player.Name} died - Killer GetUser is not null"); + killerId = killerUser.Id; + killerPosX = killer.Position.X; + killerPosY = killer.Position.Y; + killerPosZ = killer.Position.Z; + killerHeading = killer.Heading; var playerInGangwar = player.HasData("inGangWar"); var killerInGangwar = killer.HasData("inGangWar"); From b93766726cb7921d6a7779d8bef07fa148bb2b4a Mon Sep 17 00:00:00 2001 From: Fabian Date: Tue, 27 Apr 2021 15:44:42 +0200 Subject: [PATCH 043/114] jailout punkte, besser testen den lachs --- ReallifeGamemode.Server/Events/Death.cs | 2 +- ReallifeGamemode.Server/Events/Login.cs | 2 +- ReallifeGamemode.Server/Finance/Economy.cs | 2 +- ReallifeGamemode.Server/Wanted/Jail.cs | 13 ++++++------- ReallifeGamemode.Server/Wanted/JailInLocations.cs | 12 ++++++++++++ 5 files changed, 21 insertions(+), 10 deletions(-) create mode 100644 ReallifeGamemode.Server/Wanted/JailInLocations.cs diff --git a/ReallifeGamemode.Server/Events/Death.cs b/ReallifeGamemode.Server/Events/Death.cs index c41bbb90..21c12c75 100644 --- a/ReallifeGamemode.Server/Events/Death.cs +++ b/ReallifeGamemode.Server/Events/Death.cs @@ -148,7 +148,7 @@ namespace ReallifeGamemode.Server.Events if (copNearby) { user.SetJailTime(true, dbContext); - Jail.Check_PutBehindBars(user, "cell"); + Jail.Check_PutBehindBars(user, JailInLocations.InCell); ChatService.HQMessage(user.Name + " wurde ins Gefängnis eingeliefert."); } else diff --git a/ReallifeGamemode.Server/Events/Login.cs b/ReallifeGamemode.Server/Events/Login.cs index 639baff4..cef95c6c 100644 --- a/ReallifeGamemode.Server/Events/Login.cs +++ b/ReallifeGamemode.Server/Events/Login.cs @@ -164,7 +164,7 @@ namespace ReallifeGamemode.Server.Events } else { - Jail.Check_PutBehindBars(user, "cell"); + Jail.Check_PutBehindBars(user, JailInLocations.InCell); } player.Dimension = 0; diff --git a/ReallifeGamemode.Server/Finance/Economy.cs b/ReallifeGamemode.Server/Finance/Economy.cs index 4bf28832..456f25af 100644 --- a/ReallifeGamemode.Server/Finance/Economy.cs +++ b/ReallifeGamemode.Server/Finance/Economy.cs @@ -200,7 +200,7 @@ namespace ReallifeGamemode.Server.Finance if (putInJail != 0 && minusJail) { - Jail.Check_PutBehindBars(u, "cell"); + Jail.Check_PutBehindBars(u, JailInLocations.InCell); } } diff --git a/ReallifeGamemode.Server/Wanted/Jail.cs b/ReallifeGamemode.Server/Wanted/Jail.cs index 0db1d8dc..6af59153 100644 --- a/ReallifeGamemode.Server/Wanted/Jail.cs +++ b/ReallifeGamemode.Server/Wanted/Jail.cs @@ -29,8 +29,7 @@ namespace ReallifeGamemode.Server.Wanted new Vector3(1651.512, 2570.2249, 45.564907) }; - //positionInJail: ENTWEDER "cell" ODER "outside", TODO: enum oder sowas - public static void Check_PutBehindBars(User user, String positionInJail) + public static void Check_PutBehindBars(User user, JailInLocations positionInJail) { user.SetBlipAndNametagColor(); Player player = user.Player; @@ -45,14 +44,14 @@ namespace ReallifeGamemode.Server.Wanted Vector3 position = null; - if (positionInJail == "cell") + if (positionInJail == JailInLocations.InCell) { Random rnd = new Random(); int rndInt = rnd.Next(1, 3); position = prisonCells[rndInt]; } - else if (positionInJail == "outside") + else if (positionInJail == JailInLocations.Outside) { position = new Vector3(1691.42, 2562.77, 45.56); } @@ -115,7 +114,7 @@ namespace ReallifeGamemode.Server.Wanted user.AnnouncePlayerJailedIn(); dbContext.SaveChanges(); //HERE: Freilauf - Check_PutBehindBars(user, "outside"); + Check_PutBehindBars(user, JailInLocations.Outside); break; } } @@ -179,7 +178,7 @@ namespace ReallifeGamemode.Server.Wanted dbContext.SaveChanges(); } player.SafeSetHealth(100); - player.SafeTeleport(new Vector3(427.879, -984.65, 30.71)); + player.SafeTeleport(JailOut_Point); ChatService.HQMessage("Beamter " + cop.Name + " hat " + user.Name + " aus dem Knast entlassen."); ChatService.SendMessage(player, "!{#8181E9}Der Beamte " + cop.Name + " hat dich aus dem Knast entlassen"); @@ -199,7 +198,7 @@ namespace ReallifeGamemode.Server.Wanted dbContext.SaveChanges(); target.SafeSetHealth(100); - target.SafeTeleport(new Vector3(427.879, -984.65, 30.71)); + target.SafeTeleport(JailOut_Point); ChatService.HQMessage(" Admin " + admin.Name + " hat " + user.Name + " aus dem Knast entlassen."); ChatService.SendMessage(target, "!{#8181E9}Admin " + admin.Name + " hat dich aus dem Knast entlassen"); diff --git a/ReallifeGamemode.Server/Wanted/JailInLocations.cs b/ReallifeGamemode.Server/Wanted/JailInLocations.cs new file mode 100644 index 00000000..b988c9db --- /dev/null +++ b/ReallifeGamemode.Server/Wanted/JailInLocations.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace ReallifeGamemode.Server.Wanted +{ + public enum JailInLocations + { + Outside, + InCell + } +} From 7aa23f0c3c23e16464e13e3a210962c3ab2b79e3 Mon Sep 17 00:00:00 2001 From: Luke Date: Tue, 27 Apr 2021 13:48:15 +0000 Subject: [PATCH 044/114] GW-Meldung fix --- ReallifeGamemode.Server/Gangwar/Turf.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ReallifeGamemode.Server/Gangwar/Turf.cs b/ReallifeGamemode.Server/Gangwar/Turf.cs index 9d6e011e..09f85b64 100644 --- a/ReallifeGamemode.Server/Gangwar/Turf.cs +++ b/ReallifeGamemode.Server/Gangwar/Turf.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; @@ -279,7 +279,7 @@ namespace ReallifeGamemode.Server.Gangwar } else if (getOwner() != FactionName) { - takeOverMessage = $"~y~[GANGWAR] ~w~Die {getAttacker()} konnten das Gebiet ~g~{getName()} ~w~ der {getAttacker()} erfolgreich erobern."; + takeOverMessage = $"~y~[GANGWAR] ~w~Die {getAttacker()} konnten das Gebiet ~g~{getName()} ~w~ der {getOwner()} erfolgreich erobern."; //ChatService.BroadcastFaction("~y~[GANGWAR] ~w~Deine Fraktion konnte das Gebiet ~r~" + getName() + "~w~ nicht verteidigen.", ownerFaction); //ChatService.BroadcastFaction("~y~[GANGWAR] ~w~Deine Fraktion konnte erfolgreich das Gebiet ~g~" + getName() + "~w~ erobern.", attackerFaction); foreach (var o in owners) From 902ec55b7a6ce9644d80215e7c954cfbf6646ac6 Mon Sep 17 00:00:00 2001 From: Fabian Date: Tue, 27 Apr 2021 18:38:42 +0200 Subject: [PATCH 045/114] test spawnschutz --- ReallifeGamemode.Client/Player/spawnschutz.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/ReallifeGamemode.Client/Player/spawnschutz.ts b/ReallifeGamemode.Client/Player/spawnschutz.ts index 848d7c93..43b7b011 100644 --- a/ReallifeGamemode.Client/Player/spawnschutz.ts +++ b/ReallifeGamemode.Client/Player/spawnschutz.ts @@ -16,6 +16,7 @@ export default function spawnschutz() { }); mp.events.add("triggerSpawnschutzTimer", () => { + mp.events.call("abortSpawnschutz"); spawnschutzTimer = setTimeout(() => { mp.events.call("toggleSpawnschutz", false); spawnschutzEnabled = false; From d05f63fcab98d4c241bac57c8729442cd3094023 Mon Sep 17 00:00:00 2001 From: Fabian Date: Tue, 27 Apr 2021 18:41:54 +0200 Subject: [PATCH 046/114] test spawnschutz --- ReallifeGamemode.Client/Player/spawnschutz.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ReallifeGamemode.Client/Player/spawnschutz.ts b/ReallifeGamemode.Client/Player/spawnschutz.ts index 43b7b011..320a135a 100644 --- a/ReallifeGamemode.Client/Player/spawnschutz.ts +++ b/ReallifeGamemode.Client/Player/spawnschutz.ts @@ -16,7 +16,7 @@ export default function spawnschutz() { }); mp.events.add("triggerSpawnschutzTimer", () => { - mp.events.call("abortSpawnschutz"); + clearInterval(spawnschutzTimer); spawnschutzTimer = setTimeout(() => { mp.events.call("toggleSpawnschutz", false); spawnschutzEnabled = false; From 50f29aef28c287af7eeeea8abbc577a15939e35e Mon Sep 17 00:00:00 2001 From: Fabian Date: Tue, 27 Apr 2021 18:51:53 +0200 Subject: [PATCH 047/114] befehl spawnschutz zapzerap --- .../Commands/AdminCommands.cs | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/ReallifeGamemode.Server/Commands/AdminCommands.cs b/ReallifeGamemode.Server/Commands/AdminCommands.cs index d312239c..9216e766 100644 --- a/ReallifeGamemode.Server/Commands/AdminCommands.cs +++ b/ReallifeGamemode.Server/Commands/AdminCommands.cs @@ -545,6 +545,27 @@ namespace ReallifeGamemode.Server.Commands #region Admin + [Command("remspawnschutz", "~m~Benutzung: ~s~/rmss [Target]")] + public void CmdAdminRmss(Player player, String targetname) + { + if (!player.GetUser()?.IsAdmin(AdminLevel.ADMIN) ?? true) + { + ChatService.NotAuthorized(player); + return; + } + + Player target = PlayerService.GetPlayerByNameOrId(targetname); + + if (target == null || !target.IsLoggedIn()) + { + ChatService.PlayerNotFound(player); + return; + } + + target.TriggerEvent("abortSpawnschutz"); + + } + [Command("countdown", "~m~Benutzung: ~s~/countdown [Zeit] [Text]", GreedyArg = true)] public void CmdAdminCountdown(Player player, string timer_string, string text) { From 4a46a5b316d4db8ac3046563466f919f2fa6e3fd Mon Sep 17 00:00:00 2001 From: Fabian Date: Tue, 27 Apr 2021 19:37:33 +0200 Subject: [PATCH 048/114] =?UTF-8?q?fahrschule=20bl=C3=B6der=20checkpoint?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ReallifeGamemode.Server/DrivingSchool/DrivingSchool.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ReallifeGamemode.Server/DrivingSchool/DrivingSchool.cs b/ReallifeGamemode.Server/DrivingSchool/DrivingSchool.cs index fe51c527..590bbf7e 100644 --- a/ReallifeGamemode.Server/DrivingSchool/DrivingSchool.cs +++ b/ReallifeGamemode.Server/DrivingSchool/DrivingSchool.cs @@ -71,7 +71,7 @@ namespace ReallifeGamemode.Server.DrivingSchool new Vector3(-255.55, -1419.48, 32.75), new Vector3(-369.08, -1415.37, 29.68), new Vector3(-114.48, -1251.43, 37.59), - new Vector3(59.22, -1261.71, 29.84), + new Vector3(70.312744, -1250.7972, 29.84), new Vector3(39.12, -1165.28, 29.87), new Vector3(-307.52, -1200.85, 37.79), new Vector3(-441.79, -1251.67, 46.37), From 974bfd13d7a480310ec51c7ec942248cee87263c Mon Sep 17 00:00:00 2001 From: Fabian Date: Tue, 27 Apr 2021 21:49:09 +0200 Subject: [PATCH 049/114] test afk hit --- ReallifeGamemode.Client/Player/antiafk.ts | 2 +- ReallifeGamemode.Client/index.ts | 2 +- ReallifeGamemode.Client/util/weapondamage.ts | 6 +++++- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/ReallifeGamemode.Client/Player/antiafk.ts b/ReallifeGamemode.Client/Player/antiafk.ts index 229cd705..ccc1fbf9 100644 --- a/ReallifeGamemode.Client/Player/antiafk.ts +++ b/ReallifeGamemode.Client/Player/antiafk.ts @@ -30,7 +30,7 @@ } } - if (afkCounter >= 60) { + if (afkCounter >= 0) { afkStatus = true; globalData.IsAfk = afkStatus; setServerAfkStatus(afkStatus); diff --git a/ReallifeGamemode.Client/index.ts b/ReallifeGamemode.Client/index.ts index decabaff..b78ad73a 100644 --- a/ReallifeGamemode.Client/index.ts +++ b/ReallifeGamemode.Client/index.ts @@ -208,7 +208,7 @@ import PilotRouteList from './Jobs/PilotRouteSelect'; PilotRouteList(globalData); import weapondamageUtil from './util/weapondamage'; -weapondamageUtil(); +weapondamageUtil(globalData); import soundUtil from './util/sound'; soundUtil(); diff --git a/ReallifeGamemode.Client/util/weapondamage.ts b/ReallifeGamemode.Client/util/weapondamage.ts index c631b268..b7391a36 100644 --- a/ReallifeGamemode.Client/util/weapondamage.ts +++ b/ReallifeGamemode.Client/util/weapondamage.ts @@ -18,7 +18,7 @@ function isTargetInPolygon(pos): boolean { return false; } -export default function weapondamageUtil() { +export default function weapondamageUtil(globalData: IGlobalData) { let blockInput = false; mp.players.local.setSuffersCriticalHits(false); @@ -31,6 +31,10 @@ export default function weapondamageUtil() { if ((isTargetInPolygon(sourceEntity.position) || isInAnyNoDMPolygon) && getWantedCount() === 0) { return true; } + if (globalData.IsAfk == true) { + mp.gui.chat.push("afkhit"); + return true; + } if (spawnschutzEnabled && getWantedCount() === 0) { return true; From 3ec82703923cce43f0ef1461740f50c514bf9ae3 Mon Sep 17 00:00:00 2001 From: Fabian Date: Tue, 27 Apr 2021 21:53:44 +0200 Subject: [PATCH 050/114] afk hits --- ReallifeGamemode.Client/Player/antiafk.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ReallifeGamemode.Client/Player/antiafk.ts b/ReallifeGamemode.Client/Player/antiafk.ts index ccc1fbf9..229cd705 100644 --- a/ReallifeGamemode.Client/Player/antiafk.ts +++ b/ReallifeGamemode.Client/Player/antiafk.ts @@ -30,7 +30,7 @@ } } - if (afkCounter >= 0) { + if (afkCounter >= 60) { afkStatus = true; globalData.IsAfk = afkStatus; setServerAfkStatus(afkStatus); From 2338cc2c4b996a79ffedcb6c23cc5f6e303b3793 Mon Sep 17 00:00:00 2001 From: Fabian Date: Tue, 27 Apr 2021 21:54:49 +0200 Subject: [PATCH 051/114] afk hits mit wanteds --- ReallifeGamemode.Client/util/weapondamage.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ReallifeGamemode.Client/util/weapondamage.ts b/ReallifeGamemode.Client/util/weapondamage.ts index b7391a36..49f3bc55 100644 --- a/ReallifeGamemode.Client/util/weapondamage.ts +++ b/ReallifeGamemode.Client/util/weapondamage.ts @@ -31,8 +31,8 @@ export default function weapondamageUtil(globalData: IGlobalData) { if ((isTargetInPolygon(sourceEntity.position) || isInAnyNoDMPolygon) && getWantedCount() === 0) { return true; } - if (globalData.IsAfk == true) { - mp.gui.chat.push("afkhit"); + + if (globalData.IsAfk == true && getWantedCount() === 0) { return true; } From 9840b4c52c3346612bf554665db49ef33e64f8f4 Mon Sep 17 00:00:00 2001 From: Fabian Date: Tue, 27 Apr 2021 21:58:56 +0200 Subject: [PATCH 052/114] remss chat messages --- ReallifeGamemode.Client/Player/antiafk.ts | 2 +- ReallifeGamemode.Server/Commands/AdminCommands.cs | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/ReallifeGamemode.Client/Player/antiafk.ts b/ReallifeGamemode.Client/Player/antiafk.ts index 229cd705..2b3aa6c2 100644 --- a/ReallifeGamemode.Client/Player/antiafk.ts +++ b/ReallifeGamemode.Client/Player/antiafk.ts @@ -30,7 +30,7 @@ } } - if (afkCounter >= 60) { + if (afkCounter >= 2) { afkStatus = true; globalData.IsAfk = afkStatus; setServerAfkStatus(afkStatus); diff --git a/ReallifeGamemode.Server/Commands/AdminCommands.cs b/ReallifeGamemode.Server/Commands/AdminCommands.cs index 9216e766..7c35178a 100644 --- a/ReallifeGamemode.Server/Commands/AdminCommands.cs +++ b/ReallifeGamemode.Server/Commands/AdminCommands.cs @@ -545,7 +545,7 @@ namespace ReallifeGamemode.Server.Commands #region Admin - [Command("remspawnschutz", "~m~Benutzung: ~s~/rmss [Target]")] + [Command("remspawnschutz", "~m~Benutzung: ~s~/rmss [Target]", Alias = "rmss")] public void CmdAdminRmss(Player player, String targetname) { if (!player.GetUser()?.IsAdmin(AdminLevel.ADMIN) ?? true) @@ -562,6 +562,8 @@ namespace ReallifeGamemode.Server.Commands return; } + target.SendChatMessage(player.Name + " hat deinen Spawnschutz entfernt"); + player.SendChatMessage("Du hast den Spawnschutz von " + target.Name + " entfernt"); target.TriggerEvent("abortSpawnschutz"); } From b48e76ba45b7a6bd2bff32682598e05f4beac916 Mon Sep 17 00:00:00 2001 From: Fabian Date: Tue, 27 Apr 2021 22:08:00 +0200 Subject: [PATCH 053/114] afk time reseted --- ReallifeGamemode.Client/Player/antiafk.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ReallifeGamemode.Client/Player/antiafk.ts b/ReallifeGamemode.Client/Player/antiafk.ts index 2b3aa6c2..229cd705 100644 --- a/ReallifeGamemode.Client/Player/antiafk.ts +++ b/ReallifeGamemode.Client/Player/antiafk.ts @@ -30,7 +30,7 @@ } } - if (afkCounter >= 2) { + if (afkCounter >= 60) { afkStatus = true; globalData.IsAfk = afkStatus; setServerAfkStatus(afkStatus); From 38a47c32c216106c7d29a2cfc927305e49c4f05e Mon Sep 17 00:00:00 2001 From: kookroach Date: Tue, 27 Apr 2021 23:07:44 +0200 Subject: [PATCH 054/114] Escape Wanteds done Client Side. --- ReallifeGamemode.Client/Gui/blips.ts | 34 +++++++- ReallifeGamemode.Client/Player/antiafk.ts | 7 +- ReallifeGamemode.Server/Util/ThreadTimers.cs | 2 - .../Wanted/WantedEscapeTimer.cs | 85 +++---------------- 4 files changed, 48 insertions(+), 80 deletions(-) diff --git a/ReallifeGamemode.Client/Gui/blips.ts b/ReallifeGamemode.Client/Gui/blips.ts index 85b9e1ae..ba6b8446 100644 --- a/ReallifeGamemode.Client/Gui/blips.ts +++ b/ReallifeGamemode.Client/Gui/blips.ts @@ -1,6 +1,13 @@ -export default function playerBlips() { +import { afkStatus } from '../Player/antiafk'; +import { getWantedCount } from './wanteds'; + +export default function playerBlips() { var playerBlipMap: Map; var ready = false; + var escapeTimer = null; + + const PD_BLIP = 38; + const FIB_BLIP = 63; setInterval(() => { if (!ready) return; @@ -9,7 +16,7 @@ mp.players.forEachInStreamRange( (player) => { if (mp.players.local == player) - return; + return; if (!playerBlipMap.has(player)) { let pBlip = mp.blips.new(1, player.position, { @@ -43,8 +50,29 @@ pBlip.setColour(isNaN(color) ? 0 : color); pBlip.setPosition(player.position.x, player.position.y, player.position.z); + + if ((color == PD_BLIP || color == FIB_BLIP || afkStatus)) { + if (escapeTimer) { + mp.events.call("SERVER:SetWantedFlash", false); + clearInterval(escapeTimer); + escapeTimer = null; + } + return; + } + + if (!escapeTimer && !afkStatus && getWantedCount() > 0) { + mp.events.call("SERVER:SetWantedFlash", true); + escapeTimer = setInterval(() => { + if (getWantedCount() == 0) { + clearInterval(escapeTimer); + escapeTimer = null; + return; + } + + mp.events.callRemote("CLIENT:EscapeWanted"); + }, 300000); //120000 -> 2 min , 300000 -> 5min + } } - }); }, 50); diff --git a/ReallifeGamemode.Client/Player/antiafk.ts b/ReallifeGamemode.Client/Player/antiafk.ts index 229cd705..c231d5f3 100644 --- a/ReallifeGamemode.Client/Player/antiafk.ts +++ b/ReallifeGamemode.Client/Player/antiafk.ts @@ -1,13 +1,12 @@ -export default function antiAfk(globalData: IGlobalData) { +export let afkStatus: boolean = false; + +export default function antiAfk(globalData: IGlobalData) { let lastPosition: Vector3Mp = mp.players.local.position; let afkCounter: number = 0; - let afkStatus: boolean = false; - setInterval(checkAfkPosition, 1000 * 10); function checkAfkPosition() { - if (!globalData.LoggedIn) { return; } diff --git a/ReallifeGamemode.Server/Util/ThreadTimers.cs b/ReallifeGamemode.Server/Util/ThreadTimers.cs index 5d205ae6..e86fe5b5 100644 --- a/ReallifeGamemode.Server/Util/ThreadTimers.cs +++ b/ReallifeGamemode.Server/Util/ThreadTimers.cs @@ -62,7 +62,6 @@ namespace ReallifeGamemode.Server.Util }); } - private static void Timer60000_Elapsed(object sender, ElapsedEventArgs e) { NAPI.Task.Run(() => @@ -79,7 +78,6 @@ namespace ReallifeGamemode.Server.Util { NAPI.Task.Run(() => { - WantedEscapeTimer.Timer_Elapsed(); Jail.JailIn_Elapsed(); Gangwar.Gangwar.Value_TimerElapsed(); }); diff --git a/ReallifeGamemode.Server/Wanted/WantedEscapeTimer.cs b/ReallifeGamemode.Server/Wanted/WantedEscapeTimer.cs index 7f6fe6ea..ffbac518 100644 --- a/ReallifeGamemode.Server/Wanted/WantedEscapeTimer.cs +++ b/ReallifeGamemode.Server/Wanted/WantedEscapeTimer.cs @@ -13,82 +13,25 @@ using ReallifeGamemode.Server.Services; namespace ReallifeGamemode.Server.Wanted { - public class WantedEscapeTimer + public class WantedEscapeTimer : Script { - private const int WantedEscapeTime = 300000; - - public static Dictionary waTimer { get; set; } = new Dictionary(); //zeit in ms - /* - public static void WantedTimer() - { - //System.Timers.Timer timer = new System.Timers.Timer(2500); - //timer.Start(); - //timer.Elapsed += Timer_Elapsed; - } - */ - - public static void ResetWantedTimeToElapse(User user) - { - waTimer[user.Id] = WantedEscapeTime; - } - - public static void Timer_Elapsed() + [RemoteEvent("CLIENT:EscapeWanted")] + public void WantedEscape(Player player) { using var dbContext = new DatabaseContext(); - foreach (var player in NAPI.Pools.GetAllPlayers()) + User user = player.GetUser(dbContext); + + if (user.Wanteds <= 0) + return; + + player.SendChatMessage("~y~Du hast erfolgreich einen Wanted abgetaucht."); + user.Wanteds -= 1; + if (user.Wanteds == 0) { - User user = player.GetUser(dbContext); - if (user != null && user.Wanteds > 0) - { - if (!waTimer.ContainsKey(user.Id)) - ResetWantedTimeToElapse(user); - - bool isNearCop = false; - foreach (var playerCop in NAPI.Pools.GetAllPlayers()) - { - if (!playerCop.IsLoggedIn()) continue; - - User cop = playerCop.GetUser(); - if (cop != null && (cop.FactionId == 1 || cop.FactionId == 3)) - { - if (cop.GetData("duty") && playerCop.Position.DistanceTo2D(player.Position) <= 500) - { - //Schriftzug 'abgetaucht' zerstören :( - isNearCop = true; - break; - } - //Hier abgetaucht schriftzug einfügen :) - } - } - - if (!waTimer.ContainsKey(user.Id)) - waTimer[user.Id] = 300000; - - if (waTimer[user.Id] <= 0) - { - ResetWantedTimeToElapse(user); - 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(); - waTimer[user.Id] = WantedEscapeTime; - } - else if (!isNearCop && !player.IsAfk()) - { - player.TriggerEvent("SERVER:SetWantedFlash", true); - waTimer[user.Id] -= 2500; - } - else if (isNearCop) - { - player.TriggerEvent("SERVER:SetWantedFlash", false); - ResetWantedTimeToElapse(user); - } - } + ChatService.HQMessage(player.Name + " konnte solange abtauchen, sodass er nicht mehr gesucht wird."); + user.SetBlipAndNametagColor(); } + dbContext.SaveChanges(); } } } From c26d477557ef75ae72afa4c0888cc52b7e2a97de Mon Sep 17 00:00:00 2001 From: kookroach Date: Tue, 27 Apr 2021 23:24:11 +0200 Subject: [PATCH 055/114] Big Map --- ReallifeGamemode.Client/Gui/bigmap.ts | 53 +++++++++++++++++++++++++++ ReallifeGamemode.Client/index.ts | 4 +- 2 files changed, 56 insertions(+), 1 deletion(-) create mode 100644 ReallifeGamemode.Client/Gui/bigmap.ts diff --git a/ReallifeGamemode.Client/Gui/bigmap.ts b/ReallifeGamemode.Client/Gui/bigmap.ts new file mode 100644 index 00000000..1e99ec5f --- /dev/null +++ b/ReallifeGamemode.Client/Gui/bigmap.ts @@ -0,0 +1,53 @@ +export default function bigmap() { + var bigmap = { status: 0, timer: null }; + + bigmap.status = 0; + bigmap.timer = null; + + mp.game.ui.setRadarZoom(1.0); + mp.game.ui.setRadarBigmapEnabled(false, false); + + mp.events.add("render", () => { + mp.game.controls.disableControlAction(0, 48, true); + if (mp.game.controls.isDisabledControlJustPressed(0, 48)) { + if (bigmap.status === 0) { + mp.game.ui.setRadarZoom(0.0); + bigmap.status = 1; + + bigmap.timer = setTimeout(() => { + mp.game.ui.setRadarBigmapEnabled(false, true); + mp.game.ui.setRadarZoom(1.0); + + bigmap.status = 0; + bigmap.timer = null; + }, 10000); + } else if (bigmap.status === 1) { + if (bigmap.timer != null) { + clearTimeout(bigmap.timer); + bigmap.timer = null; + } + + mp.game.ui.setRadarBigmapEnabled(true, false); + mp.game.ui.setRadarZoom(0.0); + bigmap.status = 2; + + bigmap.timer = setTimeout(() => { + mp.game.ui.setRadarBigmapEnabled(false, true); + mp.game.ui.setRadarZoom(1.0); + + bigmap.status = 0; + bigmap.timer = null; + }, 10000); + } else { + if (bigmap.timer != null) { + clearTimeout(bigmap.timer); + bigmap.timer = null; + } + + mp.game.ui.setRadarBigmapEnabled(false, false); + mp.game.ui.setRadarZoom(1.0); + bigmap.status = 0; + } + } + }); +} \ No newline at end of file diff --git a/ReallifeGamemode.Client/index.ts b/ReallifeGamemode.Client/index.ts index b78ad73a..72f41def 100644 --- a/ReallifeGamemode.Client/index.ts +++ b/ReallifeGamemode.Client/index.ts @@ -274,6 +274,8 @@ handsup(); import spawnschutz from './Player/spawnschutz'; spawnschutz(); +import bigmap from './Gui/bigmap'; +bigmap(); require('./Gui/policedepartment'); require('./Gui/helptext'); @@ -287,4 +289,4 @@ interface VehicleData { export { VehicleData -} +} \ No newline at end of file From 4403f0c23859feac3f1b4712942a80ce2bbd6bf7 Mon Sep 17 00:00:00 2001 From: kookroach Date: Wed, 28 Apr 2021 00:39:55 +0200 Subject: [PATCH 056/114] push --- ReallifeGamemode.Client/Gui/blips.ts | 28 ++++++++--------- ReallifeGamemode.Client/Gui/notification.ts | 31 +++++++++++++++++++ ReallifeGamemode.Client/index.ts | 3 ++ .../Extensions/ClientExtension.cs | 5 ++- .../Wanted/WantedEscapeTimer.cs | 4 +-- 5 files changed, 52 insertions(+), 19 deletions(-) create mode 100644 ReallifeGamemode.Client/Gui/notification.ts diff --git a/ReallifeGamemode.Client/Gui/blips.ts b/ReallifeGamemode.Client/Gui/blips.ts index ba6b8446..d02df572 100644 --- a/ReallifeGamemode.Client/Gui/blips.ts +++ b/ReallifeGamemode.Client/Gui/blips.ts @@ -16,7 +16,7 @@ export default function playerBlips() { mp.players.forEachInStreamRange( (player) => { if (mp.players.local == player) - return; + return; if (!playerBlipMap.has(player)) { let pBlip = mp.blips.new(1, player.position, { @@ -59,21 +59,21 @@ export default function playerBlips() { } return; } - - if (!escapeTimer && !afkStatus && getWantedCount() > 0) { - mp.events.call("SERVER:SetWantedFlash", true); - escapeTimer = setInterval(() => { - if (getWantedCount() == 0) { - clearInterval(escapeTimer); - escapeTimer = null; - return; - } - - mp.events.callRemote("CLIENT:EscapeWanted"); - }, 300000); //120000 -> 2 min , 300000 -> 5min - } } }); + + if (!escapeTimer && !afkStatus && getWantedCount() > 0) { + mp.events.call("SERVER:SetWantedFlash", true); + escapeTimer = setInterval(() => { + if (getWantedCount() == 0) { + clearInterval(escapeTimer); + escapeTimer = null; + return; + } + + mp.events.callRemote("CLIENT:EscapeWanted"); + }, 5000); //120000 -> 2 min , 300000 -> 5min + } }, 50); mp.events.add("playerReady", () => { diff --git a/ReallifeGamemode.Client/Gui/notification.ts b/ReallifeGamemode.Client/Gui/notification.ts new file mode 100644 index 00000000..486c603c --- /dev/null +++ b/ReallifeGamemode.Client/Gui/notification.ts @@ -0,0 +1,31 @@ +export default function notification() { + const _SET_NOTIFICATION_COLOR_NEXT = "0x39BBF623FC803EAC"; + const _SET_NOTIFICATION_BACKGROUND_COLOR = "0x92F0DA1E27DB96DC"; + + mp.events.add("BN_Show", (message, flashing = false, textColor = -1, bgColor = -1, flashColor = [77, 77, 77, 200]) => { + if (textColor > -1) mp.game.invoke(_SET_NOTIFICATION_COLOR_NEXT, textColor); + if (bgColor > -1) mp.game.invoke(_SET_NOTIFICATION_BACKGROUND_COLOR, bgColor); + if (flashing) mp.game.ui.setNotificationFlashColor(flashColor[0], flashColor[1], flashColor[2], flashColor[3]); + + mp.game.gxt.set("BNOTIF_LONG_TEXT_ENTRY", `~a~${message}`); + mp.game.ui.setNotificationTextEntry("BNOTIF_LONG_TEXT_ENTRY"); + mp.game.ui.addTextComponentSubstringPlayerName(""); // needed for text color to work + mp.game.ui.drawNotification(flashing, true); + }); + + mp.events.add("BN_ShowWithPicture", (title, sender, message, notifPic, icon = 0, flashing = false, textColor = -1, bgColor = -1, flashColor = [77, 77, 77, 200]) => { + if (textColor > -1) mp.game.invoke(_SET_NOTIFICATION_COLOR_NEXT, textColor); + if (bgColor > -1) mp.game.invoke(_SET_NOTIFICATION_BACKGROUND_COLOR, bgColor); + if (flashing) mp.game.ui.setNotificationFlashColor(flashColor[0], flashColor[1], flashColor[2], flashColor[3]); + + mp.game.gxt.set("BNOTIF_LONG_TEXT_ENTRY_IMG", `~a~${message}`); + mp.game.ui.setNotificationTextEntry("BNOTIF_LONG_TEXT_ENTRY_IMG"); + mp.game.ui.addTextComponentSubstringPlayerName(""); // needed for text color to work + mp.game.ui.setNotificationMessage(notifPic, notifPic, flashing, icon, title, sender); + }); + + const notifications = { + show: (message, flashing = false, textColor = -1, bgColor = -1, flashColor = [77, 77, 77, 200]) => mp.events.call("BN_Show", message, flashing, textColor, bgColor, flashColor), + showWithPicture: (title, sender, message, notifPic, icon = 0, flashing = false, textColor = -1, bgColor = -1, flashColor = [77, 77, 77, 200]) => mp.events.call("BN_ShowWithPicture", title, sender, message, notifPic, icon, flashing, textColor, bgColor, flashColor) + }; +} \ No newline at end of file diff --git a/ReallifeGamemode.Client/index.ts b/ReallifeGamemode.Client/index.ts index 72f41def..1d47c140 100644 --- a/ReallifeGamemode.Client/index.ts +++ b/ReallifeGamemode.Client/index.ts @@ -277,6 +277,9 @@ spawnschutz(); import bigmap from './Gui/bigmap'; bigmap(); +import notification from './Gui/notification'; +notification(); + require('./Gui/policedepartment'); require('./Gui/helptext'); require('./admin/spectate'); diff --git a/ReallifeGamemode.Server/Extensions/ClientExtension.cs b/ReallifeGamemode.Server/Extensions/ClientExtension.cs index 56f0d4f7..3d66bfc3 100644 --- a/ReallifeGamemode.Server/Extensions/ClientExtension.cs +++ b/ReallifeGamemode.Server/Extensions/ClientExtension.cs @@ -103,7 +103,7 @@ namespace ReallifeGamemode.Server.Extensions int factionMoney = user.Wanteds * 6; var executiveFactions = dbContext.Factions.Include(f => f.BankAccount).Where(f => f.Id == 1 || f.Id == 3); - foreach(var faction in executiveFactions) + foreach (var faction in executiveFactions) { faction.BankAccount.Balance += factionMoney; } @@ -224,8 +224,7 @@ namespace ReallifeGamemode.Server.Extensions dbUser.SetBlipAndNametagColor(); dbContext.SaveChanges(); } - ChatService.SendMessage(user.Player, "!{#FF614A}Du hast ein Verbrechen begangen: " + reason + "" + (cop != null ? " | Gemeldet von: " + cop.Name + "." : "")); - ChatService.SendMessage(user.Player, " !{#FFFF00}Fahndungslevel:~s~ " + newWanteds); + user.Player.TriggerEvent("BN_ShowWithPicture", "Straftat", cop != null ? "Officer " + cop.Name + "" : "LSPD", "Du hast ein Verbrechen begangen: " + reason + ".'\n' Fahndungslevel: " + newWanteds, "DIA_POLICE", 1, true, 15); foreach (var copPlayer in NAPI.Pools.GetAllPlayers()) { diff --git a/ReallifeGamemode.Server/Wanted/WantedEscapeTimer.cs b/ReallifeGamemode.Server/Wanted/WantedEscapeTimer.cs index ffbac518..32985165 100644 --- a/ReallifeGamemode.Server/Wanted/WantedEscapeTimer.cs +++ b/ReallifeGamemode.Server/Wanted/WantedEscapeTimer.cs @@ -21,10 +21,10 @@ namespace ReallifeGamemode.Server.Wanted using var dbContext = new DatabaseContext(); User user = player.GetUser(dbContext); - if (user.Wanteds <= 0) + if (user.Wanteds <= 0) return; - player.SendChatMessage("~y~Du hast erfolgreich einen Wanted abgetaucht."); + player.TriggerEvent("BN_ShowWithPicture", "Abgetaucht", "Lester", "Du hast erfolgreich ein Wanted ~y~abgetaucht", "CHAR_LESTER", 1, true); user.Wanteds -= 1; if (user.Wanteds == 0) { From fac04cf8b8fb9d6f226da8934aa6293718dc664a Mon Sep 17 00:00:00 2001 From: kookroach Date: Wed, 28 Apr 2021 00:40:28 +0200 Subject: [PATCH 057/114] fix timer --- ReallifeGamemode.Client/Gui/blips.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ReallifeGamemode.Client/Gui/blips.ts b/ReallifeGamemode.Client/Gui/blips.ts index d02df572..a648181b 100644 --- a/ReallifeGamemode.Client/Gui/blips.ts +++ b/ReallifeGamemode.Client/Gui/blips.ts @@ -72,7 +72,7 @@ export default function playerBlips() { } mp.events.callRemote("CLIENT:EscapeWanted"); - }, 5000); //120000 -> 2 min , 300000 -> 5min + }, 300000); //120000 -> 2 min , 300000 -> 5min } }, 50); From b5621e38c3f30775bc56a2c43f6a2148390abbcf Mon Sep 17 00:00:00 2001 From: kookroach Date: Wed, 28 Apr 2021 00:52:04 +0200 Subject: [PATCH 058/114] try fix --- ReallifeGamemode.Client/Gui/notification.ts | 1 + ReallifeGamemode.Server/Extensions/ClientExtension.cs | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/ReallifeGamemode.Client/Gui/notification.ts b/ReallifeGamemode.Client/Gui/notification.ts index 486c603c..50b50780 100644 --- a/ReallifeGamemode.Client/Gui/notification.ts +++ b/ReallifeGamemode.Client/Gui/notification.ts @@ -17,6 +17,7 @@ export default function notification() { if (textColor > -1) mp.game.invoke(_SET_NOTIFICATION_COLOR_NEXT, textColor); if (bgColor > -1) mp.game.invoke(_SET_NOTIFICATION_BACKGROUND_COLOR, bgColor); if (flashing) mp.game.ui.setNotificationFlashColor(flashColor[0], flashColor[1], flashColor[2], flashColor[3]); + mp.game.graphics.requestStreamedTextureDict(notifPic, true); mp.game.gxt.set("BNOTIF_LONG_TEXT_ENTRY_IMG", `~a~${message}`); mp.game.ui.setNotificationTextEntry("BNOTIF_LONG_TEXT_ENTRY_IMG"); diff --git a/ReallifeGamemode.Server/Extensions/ClientExtension.cs b/ReallifeGamemode.Server/Extensions/ClientExtension.cs index 3d66bfc3..38e66284 100644 --- a/ReallifeGamemode.Server/Extensions/ClientExtension.cs +++ b/ReallifeGamemode.Server/Extensions/ClientExtension.cs @@ -224,7 +224,7 @@ namespace ReallifeGamemode.Server.Extensions dbUser.SetBlipAndNametagColor(); dbContext.SaveChanges(); } - user.Player.TriggerEvent("BN_ShowWithPicture", "Straftat", cop != null ? "Officer " + cop.Name + "" : "LSPD", "Du hast ein Verbrechen begangen: " + reason + ".'\n' Fahndungslevel: " + newWanteds, "DIA_POLICE", 1, true, 15); + user.Player.TriggerEvent("BN_ShowWithPicture", "Straftat", cop != null ? "Officer " + cop.Name + "" : "LSPD", "Du hast ein Verbrechen begangen: " + reason + ".'\n' Fahndungslevel: " + newWanteds, "DIA_POLICE", 1, true, 6); foreach (var copPlayer in NAPI.Pools.GetAllPlayers()) { From d9078e5ceb747f84fbff16d480ad24714d5adf5d Mon Sep 17 00:00:00 2001 From: kookroach Date: Wed, 28 Apr 2021 02:06:17 +0200 Subject: [PATCH 059/114] fix message --- ReallifeGamemode.Server/Extensions/ClientExtension.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ReallifeGamemode.Server/Extensions/ClientExtension.cs b/ReallifeGamemode.Server/Extensions/ClientExtension.cs index 38e66284..eb4de67e 100644 --- a/ReallifeGamemode.Server/Extensions/ClientExtension.cs +++ b/ReallifeGamemode.Server/Extensions/ClientExtension.cs @@ -224,7 +224,7 @@ namespace ReallifeGamemode.Server.Extensions dbUser.SetBlipAndNametagColor(); dbContext.SaveChanges(); } - user.Player.TriggerEvent("BN_ShowWithPicture", "Straftat", cop != null ? "Officer " + cop.Name + "" : "LSPD", "Du hast ein Verbrechen begangen: " + reason + ".'\n' Fahndungslevel: " + newWanteds, "DIA_POLICE", 1, true, 6); + user.Player.TriggerEvent("BN_ShowWithPicture", "Straftat", cop != null ? "Officer " + cop.Name + "" : "LSPD", "Du hast ein Verbrechen begangen: " + reason + " (" + newWanteds + ")", "DIA_POLICE", 1, true, 6); foreach (var copPlayer in NAPI.Pools.GetAllPlayers()) { From 0cc701755549950cb6b9bc939ff4d9b6fe33778f Mon Sep 17 00:00:00 2001 From: Alex_qp Date: Wed, 28 Apr 2021 21:00:08 +0200 Subject: [PATCH 060/114] catch FormatException in pay --- .../Managers/InteractionManager.cs | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/ReallifeGamemode.Server/Managers/InteractionManager.cs b/ReallifeGamemode.Server/Managers/InteractionManager.cs index 926dd56f..ce438abe 100644 --- a/ReallifeGamemode.Server/Managers/InteractionManager.cs +++ b/ReallifeGamemode.Server/Managers/InteractionManager.cs @@ -1,4 +1,4 @@ -using System.Collections.Generic; +using System.Collections.Generic; using System.Linq; using GTANetworkAPI; using Newtonsoft.Json; @@ -753,7 +753,16 @@ namespace ReallifeGamemode.Server.Managers public void InteractionMenu_Pay(Player player, string jsonNameOrId, string stringAmount) { string nameOrId = (string)JsonConvert.DeserializeObject(jsonNameOrId); - int amount = Int32.Parse(stringAmount); + int amount; + try + { + amount = Int32.Parse(stringAmount); + } + catch + { + player.SendNotification("~r~" + stringAmount + " ist kein gültiger Betrag."); + return; + } Player target = PlayerService.GetPlayerByNameOrId(nameOrId); List nearbyPlayers = NAPI.Player.GetPlayersInRadiusOfPlayer(3, player); @@ -769,7 +778,7 @@ namespace ReallifeGamemode.Server.Managers } else if (!nearbyPlayers.Contains(target)) { - player.SendNotification("~r~Dieser Spieler befindet sich nicht in deiner nähe!"); + player.SendNotification("~r~Dieser Spieler befindet sich nicht in deiner Nähe!"); } else if (player.GetUser().Handmoney < amount) { From d48022b02e3e97d6894491a55302c32a7acb5809 Mon Sep 17 00:00:00 2001 From: Luke Date: Wed, 28 Apr 2021 20:55:28 +0000 Subject: [PATCH 061/114] =?UTF-8?q?weiter=20zur=C3=BCck=20in=20die=20verga?= =?UTF-8?q?ngenheit=20(chat)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ReallifeGamemode.Client/assets/js/chat/main.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ReallifeGamemode.Client/assets/js/chat/main.js b/ReallifeGamemode.Client/assets/js/chat/main.js index 61037421..4fa78a5c 100644 --- a/ReallifeGamemode.Client/assets/js/chat/main.js +++ b/ReallifeGamemode.Client/assets/js/chat/main.js @@ -1,7 +1,7 @@ let chat = { size: 0, - history_limit: 50, + history_limit: 150, container: null, input: null, enabled: false, From 53874659452b40f69636cfca7ca82c3b5ea37ad8 Mon Sep 17 00:00:00 2001 From: hydrant Date: Thu, 29 Apr 2021 12:44:12 +0200 Subject: [PATCH 062/114] bigmap nicht wenn chat auf ist --- ReallifeGamemode.Client/Gui/bigmap.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/ReallifeGamemode.Client/Gui/bigmap.ts b/ReallifeGamemode.Client/Gui/bigmap.ts index 1e99ec5f..4fd5e4c9 100644 --- a/ReallifeGamemode.Client/Gui/bigmap.ts +++ b/ReallifeGamemode.Client/Gui/bigmap.ts @@ -1,3 +1,5 @@ +import { GlobalData } from ".."; + export default function bigmap() { var bigmap = { status: 0, timer: null }; @@ -9,7 +11,7 @@ export default function bigmap() { mp.events.add("render", () => { mp.game.controls.disableControlAction(0, 48, true); - if (mp.game.controls.isDisabledControlJustPressed(0, 48)) { + if (mp.game.controls.isDisabledControlJustPressed(0, 48) && !GlobalData.InChat) { if (bigmap.status === 0) { mp.game.ui.setRadarZoom(0.0); bigmap.status = 1; From 07c6da70310e576be38813c6e4c101eafc6bf7e2 Mon Sep 17 00:00:00 2001 From: hydrant Date: Thu, 29 Apr 2021 15:10:06 +0200 Subject: [PATCH 063/114] [BUG-93][BUG-49] Tuning Preise angepasst und Fehler behoben --- ReallifeGamemode.Client/Tuning/main.ts | 41 ++++++++---- .../Managers/TuningManager.cs | 65 +++++++++++++++++-- 2 files changed, 88 insertions(+), 18 deletions(-) diff --git a/ReallifeGamemode.Client/Tuning/main.ts b/ReallifeGamemode.Client/Tuning/main.ts index 9da9b31b..c825708f 100644 --- a/ReallifeGamemode.Client/Tuning/main.ts +++ b/ReallifeGamemode.Client/Tuning/main.ts @@ -26,7 +26,7 @@ export default function tuning(globalData: IGlobalData) { const carModSlotName = [ { Slot: 0, Name: "Spoiler", Price: 1000 }, - { Slot: 1, Name: "Frontstoßstange", Price: 1500}, + { Slot: 1, Name: "Frontstoßstange", Price: 1500 }, { Slot: 2, Name: "Heckstoßstange", Price: 1500 }, { Slot: 3, Name: "Seitenschweller", Price: 1500 }, { Slot: 4, Name: "Auspuff", Price: 500 }, @@ -36,12 +36,12 @@ export default function tuning(globalData: IGlobalData) { { Slot: 8, Name: "Extra 1", Price: 2000 }, { Slot: 9, Name: "Extra 2", Price: 2000 }, { Slot: 10, Name: "Dach", Price: 1500 }, - { Slot: 11, Name: "Motor", Price: 50000 }, - { Slot: 12, Name: "Bremsen", Price: 30000 }, - { Slot: 13, Name: "Getriebe", Price: 15000 }, + { Slot: 11, Name: "Motor", BasePercentage: 20, PriceIncreasePerLevel: 7.5 }, + { Slot: 12, Name: "Bremsen", BasePercentage: 5, PriceIncreasePerLevel: 2.5 }, + { Slot: 13, Name: "Getriebe", BasePercentage: 10, PriceIncreasePerLevel: 2.5 }, { Slot: 14, Name: "Hupe", Price: 500 }, { Slot: 15, Name: "Federung", Price: 2000 }, - { Slot: 18, Name: "Turbo", Price: 40000 }, + { Slot: 18, Name: "Turbo", BasePercentage: 45, PriceIncreasePerLevel: 0 }, { Slot: 22, Name: "Licht", Price: 500 }, { Slot: 23, Name: "Reifen", Price: 1000 }, { Slot: -1, Name: "Lackierung", Price: 1000 }, @@ -165,7 +165,7 @@ export default function tuning(globalData: IGlobalData) { var currentActiveModItem = new Array(); var currentSelectedItem: VehicleModMenuItem = null; - mp.events.add("showTuningMenu", (noMoney) => { + mp.events.add("showTuningMenu", (noMoney, basePrice) => { mp.events.call("hideTuningInfo", false); mp.gui.chat.show(false); @@ -226,9 +226,6 @@ export default function tuning(globalData: IGlobalData) { } } - var price = noMoney? 0 : getModSlotPrice(modType); - - if (mod === null) { mod = localVehicle.getMod(modType); } @@ -248,6 +245,7 @@ export default function tuning(globalData: IGlobalData) { currentMod[modType] = mod; for (var x = -1; x < modNum; x++) { + var price = noMoney ? 0 : getModSlotPrice(modType, basePrice, x); var modText = ""; if (x === -1) { modText = "Serie"; @@ -265,7 +263,7 @@ export default function tuning(globalData: IGlobalData) { modMenu.CurrentSelection = x; } else { - item.SetRightLabel("$"+ moneyformat(price)); + item.SetRightLabel("$" + moneyformat(price)); } } @@ -304,7 +302,7 @@ export default function tuning(globalData: IGlobalData) { }); }); - + mainMenu.ItemSelect.on((item: NativeUI.UIMenuItem, index: number) => { if (item === repairItem) { @@ -315,7 +313,9 @@ export default function tuning(globalData: IGlobalData) { mainMenu.Visible = true; mainMenu.MenuClose.on(() => { - localVehicle.setLights(0); + if (localVehicle && mp.vehicles.exists(localVehicle)) { + localVehicle.setLights(0); + } globalData.InTuning = false; globalData.InMenu = false; mp.events.call("hideTuningInfo", false); @@ -456,8 +456,21 @@ export default function tuning(globalData: IGlobalData) { return realModName; } - function getModSlotPrice(modType: number): number { - return carModSlotName.filter(x => x.Slot == modType)[0].Price; + function getModSlotPrice(modType: number, basePrice: number, modIndex?: number): number { + if (modIndex === -1) { + return 0; + } + + let price = 0; + let priceInfo = carModSlotName.filter(x => x.Slot == modType)[0]; + + if (priceInfo.BasePercentage) { + price = ((priceInfo.BasePercentage + priceInfo.PriceIncreasePerLevel * modIndex) / 100) * basePrice; + } else { + price = priceInfo.Price; + } + + return price; } function setHeadlightsColor(vehicle, index) { diff --git a/ReallifeGamemode.Server/Managers/TuningManager.cs b/ReallifeGamemode.Server/Managers/TuningManager.cs index 9a4d9cc9..3799c5eb 100644 --- a/ReallifeGamemode.Server/Managers/TuningManager.cs +++ b/ReallifeGamemode.Server/Managers/TuningManager.cs @@ -1,4 +1,5 @@ -using System.Collections.Generic; +using System; +using System.Collections.Generic; using System.Linq; using GTANetworkAPI; using ReallifeGamemode.Database.Entities; @@ -35,7 +36,7 @@ namespace ReallifeGamemode.Server.Managers colShape.OnEntityEnterColShape += (cs, c) => { using var dbContext = new DatabaseContext(); - if (c.IsInVehicle && c.VehicleSeat == 0) + if (c.IsInVehicle && c.VehicleSeat == 0 && IsPlayerAllowedToTuneVehicle(c, c.Vehicle, dbContext)) { c.TriggerEvent("showTuningInfo"); } @@ -43,12 +44,42 @@ namespace ReallifeGamemode.Server.Managers colShape.OnEntityExitColShape += (cs, c) => { - c.TriggerEvent("hideTuningInfo", true); + if(c.IsInVehicle) + { + c.TriggerEvent("hideTuningInfo", true); + } }; tuningGarages.Add(colShape); } + private static bool IsPlayerAllowedToTuneVehicle(Player c, Vehicle vehicle, DatabaseContext dbContext) + { + User user = c.GetUser(); + if(user == null) + { + return false; + } + + ServerVehicle serverVehicle = vehicle.GetServerVehicle(dbContext); + if(serverVehicle == null) + { + return false; + } + + if(serverVehicle is UserVehicle userVehicle && userVehicle.UserId == user.Id) + { + return true; + } + + if(serverVehicle is FactionVehicle factionVehicle && factionVehicle.GetOwners().Contains(user.FactionId ?? 0)) + { + return true; + } + + return false; + } + public static void ApplyTuningToServerVehicle(ServerVehicle sVeh) { Vehicle veh = VehicleManager.GetVehicleFromServerVehicle(sVeh); @@ -81,7 +112,33 @@ namespace ReallifeGamemode.Server.Managers { if (!player.IsInVehicle) return; - player.TriggerEvent("showTuningMenu"); + player.TriggerEvent("showTuningMenu", false, GetVehicleBasePrice(player.Vehicle)); + } + + private int GetVehicleBasePrice(Vehicle vehicle) + { + if(vehicle == null) + { + return 0; + } + + ServerVehicle serverVehicle = vehicle.GetServerVehicle(); + if(serverVehicle == null) + { + return 0; + } + + if(serverVehicle is UserVehicle userVehicle) + { + return userVehicle.Price ?? 0; + } + + if(serverVehicle is FactionVehicle factionVehicle) + { + return factionVehicle.BuyPrice; + } + + return 0; } [RemoteEvent("repairVehicle")] From 1a6e22823c5cf88770b63da4b9fdef6fbbb455eb Mon Sep 17 00:00:00 2001 From: hydrant Date: Thu, 29 Apr 2021 17:09:53 +0200 Subject: [PATCH 064/114] =?UTF-8?q?[BUG-94]=20T=C3=BCren=20immer=20=C3=B6f?= =?UTF-8?q?fnen?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ReallifeGamemode.Database/Entities/Door.cs | 1 + ...29134927_AddDoorAlwaysOpenFlag.Designer.cs | 2180 +++++++++++++++++ .../20210429134927_AddDoorAlwaysOpenFlag.cs | 23 + .../DatabaseContextModelSnapshot.cs | 3 + .../Managers/DoorManager.cs | 11 +- 5 files changed, 2215 insertions(+), 3 deletions(-) create mode 100644 ReallifeGamemode.Database/Migrations/20210429134927_AddDoorAlwaysOpenFlag.Designer.cs create mode 100644 ReallifeGamemode.Database/Migrations/20210429134927_AddDoorAlwaysOpenFlag.cs diff --git a/ReallifeGamemode.Database/Entities/Door.cs b/ReallifeGamemode.Database/Entities/Door.cs index 19eb04c4..ab26cf4a 100644 --- a/ReallifeGamemode.Database/Entities/Door.cs +++ b/ReallifeGamemode.Database/Entities/Door.cs @@ -22,6 +22,7 @@ namespace ReallifeGamemode.Database.Entities public float Y { get; set; } public float Z { get; set; } public float Radius { get; set; } + public bool AlwaysOpen { get; set; } [NotMapped] public Vector3 Position => new Vector3(X, Y, Z); diff --git a/ReallifeGamemode.Database/Migrations/20210429134927_AddDoorAlwaysOpenFlag.Designer.cs b/ReallifeGamemode.Database/Migrations/20210429134927_AddDoorAlwaysOpenFlag.Designer.cs new file mode 100644 index 00000000..14f87b5b --- /dev/null +++ b/ReallifeGamemode.Database/Migrations/20210429134927_AddDoorAlwaysOpenFlag.Designer.cs @@ -0,0 +1,2180 @@ +// +using System; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; +using ReallifeGamemode.Database.Models; + +namespace ReallifeGamemode.Database.Migrations +{ + [DbContext(typeof(DatabaseContext))] + [Migration("20210429134927_AddDoorAlwaysOpenFlag")] + partial class AddDoorAlwaysOpenFlag + { + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .HasAnnotation("ProductVersion", "3.1.3") + .HasAnnotation("PropertyAccessMode", PropertyAccessMode.PreferFieldDuringConstruction) + .HasAnnotation("Relational:MaxIdentifierLength", 64); + + modelBuilder.Entity("ReallifeGamemode.Database.Entities.ATM", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + b.Property("Active") + .HasColumnType("tinyint(1)"); + + b.Property("Balance") + .HasColumnType("int"); + + b.Property("Faulty") + .HasColumnType("tinyint(1)"); + + b.Property("X") + .HasColumnType("float"); + + b.Property("Y") + .HasColumnType("float"); + + b.Property("Z") + .HasColumnType("float"); + + b.HasKey("Id"); + + b.ToTable("ATMs"); + }); + + modelBuilder.Entity("ReallifeGamemode.Database.Entities.Ban", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + b.Property("Applied") + .HasColumnType("int"); + + b.Property("BannedBy") + .HasColumnType("longtext CHARACTER SET utf8mb4"); + + b.Property("Reason") + .HasColumnType("longtext CHARACTER SET utf8mb4"); + + b.Property("UntilDateTime") + .HasColumnType("int"); + + b.Property("UserId") + .HasColumnType("int"); + + b.HasKey("Id"); + + b.HasIndex("UserId"); + + b.ToTable("Bans"); + }); + + modelBuilder.Entity("ReallifeGamemode.Database.Entities.BusRoute", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + b.Property("Description") + .HasColumnType("longtext CHARACTER SET utf8mb4"); + + b.HasKey("Id"); + + b.ToTable("BusRoutes"); + }); + + modelBuilder.Entity("ReallifeGamemode.Database.Entities.BusRoutePoint", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + b.Property("BusRouteId") + .HasColumnType("int"); + + b.Property("Description") + .HasColumnType("longtext CHARACTER SET utf8mb4"); + + b.Property("X") + .HasColumnType("float"); + + b.Property("Y") + .HasColumnType("float"); + + b.Property("Z") + .HasColumnType("float"); + + b.HasKey("Id"); + + b.HasIndex("BusRouteId"); + + b.ToTable("BusRoutesPoints"); + }); + + modelBuilder.Entity("ReallifeGamemode.Database.Entities.BusinessBankAccount", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + b.Property("Balance") + .HasColumnType("int"); + + b.Property("BusinessId") + .HasColumnType("int"); + + b.HasKey("Id"); + + b.HasIndex("BusinessId") + .IsUnique(); + + b.ToTable("BusinessBankAccounts"); + }); + + modelBuilder.Entity("ReallifeGamemode.Database.Entities.BusinessData", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + b.Property("BusinessId") + .HasColumnType("int"); + + b.Property("Price") + .HasColumnType("int"); + + b.HasKey("Id"); + + b.ToTable("BusinessData"); + }); + + modelBuilder.Entity("ReallifeGamemode.Database.Entities.Character", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + b.Property("Ageing") + .HasColumnType("tinyint unsigned"); + + b.Property("AgeingOpacity") + .HasColumnType("float"); + + b.Property("BeardColor") + .HasColumnType("tinyint unsigned"); + + b.Property("Blemishes") + .HasColumnType("tinyint unsigned"); + + b.Property("BlemishesOpacity") + .HasColumnType("float"); + + b.Property("Blush") + .HasColumnType("tinyint unsigned"); + + b.Property("BlushColor") + .HasColumnType("tinyint unsigned"); + + b.Property("BlushOpacity") + .HasColumnType("float"); + + b.Property("BrowDepth") + .HasColumnType("float"); + + b.Property("BrowHeight") + .HasColumnType("float"); + + b.Property("CheekDepth") + .HasColumnType("float"); + + b.Property("CheekboneHeight") + .HasColumnType("float"); + + b.Property("CheekboneWidth") + .HasColumnType("float"); + + b.Property("ChestHair") + .HasColumnType("tinyint unsigned"); + + b.Property("ChestHairColor") + .HasColumnType("tinyint unsigned"); + + b.Property("ChestHairOpacity") + .HasColumnType("float"); + + b.Property("ChinDepth") + .HasColumnType("float"); + + b.Property("ChinHeight") + .HasColumnType("float"); + + b.Property("ChinIndent") + .HasColumnType("float"); + + b.Property("ChinWidth") + .HasColumnType("float"); + + b.Property("Complexion") + .HasColumnType("tinyint unsigned"); + + b.Property("ComplexionOpacity") + .HasColumnType("float"); + + b.Property("EyeColor") + .HasColumnType("tinyint unsigned"); + + b.Property("EyeSize") + .HasColumnType("float"); + + b.Property("EyebrowColor") + .HasColumnType("tinyint unsigned"); + + b.Property("Eyebrows") + .HasColumnType("tinyint unsigned"); + + b.Property("EyebrowsOpacity") + .HasColumnType("float"); + + b.Property("FacialHair") + .HasColumnType("tinyint unsigned"); + + b.Property("FacialHairOpacity") + .HasColumnType("float"); + + b.Property("Father") + .HasColumnType("tinyint unsigned"); + + b.Property("Freckles") + .HasColumnType("tinyint unsigned"); + + b.Property("FrecklesOpacity") + .HasColumnType("float"); + + b.Property("Gender") + .HasColumnType("tinyint(1)"); + + b.Property("Hair") + .HasColumnType("tinyint unsigned"); + + b.Property("HairColor") + .HasColumnType("tinyint unsigned"); + + b.Property("HairHighlightColor") + .HasColumnType("tinyint unsigned"); + + b.Property("JawShape") + .HasColumnType("float"); + + b.Property("JawWidth") + .HasColumnType("float"); + + b.Property("LipThickness") + .HasColumnType("float"); + + b.Property("Lipstick") + .HasColumnType("tinyint unsigned"); + + b.Property("LipstickColor") + .HasColumnType("tinyint unsigned"); + + b.Property("LipstickOpacity") + .HasColumnType("float"); + + b.Property("Makeup") + .HasColumnType("tinyint unsigned"); + + b.Property("MakeupOpacity") + .HasColumnType("float"); + + b.Property("Mother") + .HasColumnType("tinyint unsigned"); + + b.Property("NeckWidth") + .HasColumnType("float"); + + b.Property("NoseBottomHeight") + .HasColumnType("float"); + + b.Property("NoseBridgeDepth") + .HasColumnType("float"); + + b.Property("NoseBroken") + .HasColumnType("float"); + + b.Property("NoseTipHeight") + .HasColumnType("float"); + + b.Property("NoseTipLength") + .HasColumnType("float"); + + b.Property("NoseWidth") + .HasColumnType("float"); + + b.Property("Similarity") + .HasColumnType("float"); + + b.Property("SkinSimilarity") + .HasColumnType("float"); + + b.Property("SunDamage") + .HasColumnType("tinyint unsigned"); + + b.Property("SunDamageOpacity") + .HasColumnType("float"); + + b.Property("UserId") + .HasColumnType("int"); + + b.HasKey("Id"); + + b.HasIndex("UserId"); + + b.ToTable("Characters"); + }); + + modelBuilder.Entity("ReallifeGamemode.Database.Entities.CharacterCloth", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + b.Property("ClothId") + .HasColumnType("int"); + + b.Property("Duty") + .HasColumnType("tinyint(1)"); + + b.Property("SlotId") + .HasColumnType("int"); + + b.Property("SlotType") + .HasColumnType("tinyint unsigned"); + + b.Property("Texture") + .HasColumnType("int"); + + b.Property("UserId") + .HasColumnType("int"); + + b.HasKey("Id"); + + b.HasIndex("UserId"); + + b.ToTable("CharacterClothes"); + }); + + modelBuilder.Entity("ReallifeGamemode.Database.Entities.ClothCombination", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + b.Property("Gender") + .HasColumnType("tinyint(1)"); + + b.Property("Top") + .HasColumnType("int"); + + b.Property("Torso") + .HasColumnType("int"); + + b.Property("Undershirt") + .HasColumnType("int"); + + b.HasKey("Id"); + + b.ToTable("ClothCombinations"); + }); + + modelBuilder.Entity("ReallifeGamemode.Database.Entities.Door", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + b.Property("AlwaysOpen") + .HasColumnType("tinyint(1)"); + + b.Property("Category") + .HasColumnType("longtext CHARACTER SET utf8mb4"); + + b.Property("FactionId") + .HasColumnType("int"); + + b.Property("Locked") + .HasColumnType("tinyint(1)"); + + b.Property("Model") + .HasColumnType("int"); + + b.Property("Name") + .HasColumnType("longtext CHARACTER SET utf8mb4"); + + b.Property("Radius") + .HasColumnType("float"); + + b.Property("X") + .HasColumnType("float"); + + b.Property("Y") + .HasColumnType("float"); + + b.Property("Z") + .HasColumnType("float"); + + b.HasKey("Id"); + + b.HasIndex("FactionId"); + + b.ToTable("Doors"); + }); + + modelBuilder.Entity("ReallifeGamemode.Database.Entities.DutyCloth", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + b.Property("ClothId") + .HasColumnType("int"); + + b.Property("FactionId") + .HasColumnType("int"); + + b.Property("Gender") + .HasColumnType("tinyint(1)"); + + b.Property("SlotId") + .HasColumnType("int"); + + b.Property("SlotType") + .HasColumnType("tinyint unsigned"); + + b.HasKey("Id"); + + b.HasIndex("FactionId"); + + b.ToTable("DutyClothes"); + }); + + modelBuilder.Entity("ReallifeGamemode.Database.Entities.Faction", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + b.Property("BankAccountId") + .HasColumnType("int"); + + b.Property("GangOwned") + .HasColumnType("tinyint(1)"); + + b.Property("Name") + .HasColumnType("varchar(32) CHARACTER SET utf8mb4") + .HasMaxLength(32); + + b.Property("StateOwned") + .HasColumnType("tinyint(1)"); + + b.Property("WeaponDealTime") + .HasColumnType("int"); + + b.HasKey("Id"); + + b.HasIndex("BankAccountId"); + + b.ToTable("Factions"); + }); + + modelBuilder.Entity("ReallifeGamemode.Database.Entities.FactionBankAccount", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + b.Property("Active") + .HasColumnType("tinyint(1)"); + + b.Property("Balance") + .HasColumnType("int"); + + b.Property("Bic") + .HasColumnType("varchar(12) CHARACTER SET utf8mb4") + .HasMaxLength(12); + + b.Property("Iban") + .HasColumnType("varchar(32) CHARACTER SET utf8mb4") + .HasMaxLength(32); + + b.HasKey("Id"); + + b.ToTable("FactionBankAccounts"); + }); + + modelBuilder.Entity("ReallifeGamemode.Database.Entities.FactionRank", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + b.Property("FactionId") + .HasColumnType("int"); + + b.Property("Order") + .HasColumnType("int"); + + b.Property("RankName") + .HasColumnType("longtext CHARACTER SET utf8mb4"); + + b.HasKey("Id"); + + b.HasIndex("FactionId"); + + b.ToTable("FactionRanks"); + }); + + modelBuilder.Entity("ReallifeGamemode.Database.Entities.FactionWeapon", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + b.Property("Ammount") + .HasColumnType("int"); + + b.Property("FactionId") + .HasColumnType("int"); + + b.Property("Rank") + .HasColumnType("int"); + + b.Property("SlotID") + .HasColumnType("int"); + + b.Property("WeaponModel") + .HasColumnType("longtext CHARACTER SET utf8mb4"); + + b.HasKey("Id"); + + b.HasIndex("FactionId"); + + b.ToTable("FactionWeapons"); + }); + + modelBuilder.Entity("ReallifeGamemode.Database.Entities.GotoPoint", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + b.Property("Active") + .HasColumnType("tinyint(1)"); + + b.Property("Description") + .HasColumnType("varchar(32) CHARACTER SET utf8mb4") + .HasMaxLength(32); + + b.Property("X") + .HasColumnType("float"); + + b.Property("Y") + .HasColumnType("float"); + + b.Property("Z") + .HasColumnType("float"); + + b.HasKey("Id"); + + b.ToTable("GotoPoints"); + }); + + modelBuilder.Entity("ReallifeGamemode.Database.Entities.Group", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + b.Property("BankAccountId") + .HasColumnType("int"); + + b.Property("Name") + .HasColumnType("longtext CHARACTER SET utf8mb4"); + + b.HasKey("Id"); + + b.HasIndex("BankAccountId"); + + b.ToTable("Groups"); + }); + + modelBuilder.Entity("ReallifeGamemode.Database.Entities.GroupBankAccount", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + b.Property("Balance") + .HasColumnType("int"); + + b.HasKey("Id"); + + b.ToTable("GroupBankAccounts"); + }); + + modelBuilder.Entity("ReallifeGamemode.Database.Entities.House", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + b.Property("BankAccountId") + .HasColumnType("int"); + + b.Property("CanRentIn") + .HasColumnType("tinyint(1)"); + + b.Property("LastRentSetTime") + .HasColumnType("datetime(6)"); + + b.Property("OwnerId") + .HasColumnType("int"); + + b.Property("Price") + .HasColumnType("int"); + + b.Property("RentalFee") + .HasColumnType("int"); + + b.Property("Type") + .HasColumnType("longtext CHARACTER SET utf8mb4"); + + b.Property("X") + .HasColumnType("float"); + + b.Property("Y") + .HasColumnType("float"); + + b.Property("Z") + .HasColumnType("float"); + + b.HasKey("Id"); + + b.HasIndex("BankAccountId"); + + b.HasIndex("OwnerId"); + + b.ToTable("Houses"); + }); + + modelBuilder.Entity("ReallifeGamemode.Database.Entities.HouseBankAccount", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + b.Property("Balance") + .HasColumnType("int"); + + b.HasKey("Id"); + + b.ToTable("HouseBankAccounts"); + }); + + modelBuilder.Entity("ReallifeGamemode.Database.Entities.HouseRental", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + b.Property("HouseId") + .HasColumnType("int"); + + b.Property("UserId") + .HasColumnType("int"); + + b.HasKey("Id"); + + b.HasIndex("HouseId"); + + b.HasIndex("UserId"); + + b.ToTable("HouseRentals"); + }); + + modelBuilder.Entity("ReallifeGamemode.Database.Entities.Interior", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + b.Property("EnterPositionStr") + .HasColumnName("EnterPosition") + .HasColumnType("longtext CHARACTER SET utf8mb4"); + + b.Property("ExitPositionStr") + .HasColumnName("ExitPosition") + .HasColumnType("longtext CHARACTER SET utf8mb4"); + + b.Property("Name") + .HasColumnType("longtext CHARACTER SET utf8mb4"); + + b.HasKey("Id"); + + b.ToTable("Interiors"); + }); + + modelBuilder.Entity("ReallifeGamemode.Database.Entities.Location", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + b.Property("Description") + .HasColumnType("longtext CHARACTER SET utf8mb4"); + + b.Property("Heading") + .HasColumnType("double"); + + b.Property("X") + .HasColumnType("double"); + + b.Property("Y") + .HasColumnType("double"); + + b.Property("Z") + .HasColumnType("double"); + + b.HasKey("Id"); + + b.ToTable("Locations"); + }); + + modelBuilder.Entity("ReallifeGamemode.Database.Entities.Logs.BankAccountTransactionHistory", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + b.Property("Fee") + .HasColumnType("int"); + + b.Property("MoneySent") + .HasColumnType("int"); + + b.Property("NewReceiverBalance") + .HasColumnType("int"); + + b.Property("NewSenderBalance") + .HasColumnType("int"); + + b.Property("Origin") + .HasColumnType("varchar(32) CHARACTER SET utf8mb4") + .HasMaxLength(32); + + b.Property("Receiver") + .HasColumnType("varchar(32) CHARACTER SET utf8mb4") + .HasMaxLength(32); + + b.Property("ReceiverBalance") + .HasColumnType("int"); + + b.Property("Sender") + .HasColumnType("varchar(32) CHARACTER SET utf8mb4") + .HasMaxLength(32); + + b.Property("SenderBalance") + .HasColumnType("int"); + + b.Property("Timestamp") + .ValueGeneratedOnAdd() + .HasColumnType("datetime(6)"); + + b.HasKey("Id"); + + b.ToTable("BankAccountTransactionLogs"); + }); + + modelBuilder.Entity("ReallifeGamemode.Database.Entities.Logs.Chat.ChatLogEntry", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + b.Property("Discriminator") + .IsRequired() + .HasColumnType("longtext CHARACTER SET utf8mb4"); + + b.Property("Text") + .HasColumnType("longtext CHARACTER SET utf8mb4"); + + b.Property("Time") + .ValueGeneratedOnAdd() + .HasColumnType("datetime(6)"); + + b.Property("UserId") + .HasColumnType("int"); + + b.HasKey("Id"); + + b.HasIndex("UserId"); + + b.ToTable("ChatLogs"); + + b.HasDiscriminator("Discriminator").HasValue("ChatLogEntry"); + }); + + modelBuilder.Entity("ReallifeGamemode.Database.Entities.Logs.CommandLogEntry", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + b.Property("Command") + .HasColumnType("longtext CHARACTER SET utf8mb4"); + + b.Property("Time") + .HasColumnType("datetime(6)"); + + b.Property("UserId") + .HasColumnType("int"); + + b.HasKey("Id"); + + b.HasIndex("UserId"); + + b.ToTable("CommandLogs"); + }); + + modelBuilder.Entity("ReallifeGamemode.Database.Entities.Logs.Death", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + b.Property("CauseOfDeath") + .HasColumnType("varchar(64) CHARACTER SET utf8mb4") + .HasMaxLength(64); + + b.Property("KillerHeading") + .HasColumnType("float"); + + b.Property("KillerId") + .HasColumnType("int"); + + b.Property("KillerPositionX") + .HasColumnType("float"); + + b.Property("KillerPositionY") + .HasColumnType("float"); + + b.Property("KillerPositionZ") + .HasColumnType("float"); + + b.Property("Timestamp") + .ValueGeneratedOnAdd() + .HasColumnType("datetime(6)"); + + b.Property("VictimHeading") + .HasColumnType("float"); + + b.Property("VictimId") + .HasColumnType("int"); + + b.Property("VictimPositionX") + .HasColumnType("float"); + + b.Property("VictimPositionY") + .HasColumnType("float"); + + b.Property("VictimPositionZ") + .HasColumnType("float"); + + b.HasKey("Id"); + + b.HasIndex("KillerId"); + + b.HasIndex("VictimId"); + + b.ToTable("DeathLogs"); + }); + + modelBuilder.Entity("ReallifeGamemode.Database.Entities.Logs.LoginLogoutLogEntry", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + b.Property("IpAddress") + .HasColumnType("longtext CHARACTER SET utf8mb4"); + + b.Property("LoginLogout") + .HasColumnType("tinyint(1)"); + + b.Property("PlayerId") + .HasColumnType("bigint"); + + b.Property("SocialClubName") + .HasColumnType("longtext CHARACTER SET utf8mb4"); + + b.Property("Time") + .HasColumnType("datetime(6)"); + + b.Property("UserId") + .HasColumnType("int"); + + b.Property("Username") + .HasColumnType("longtext CHARACTER SET utf8mb4"); + + b.HasKey("Id"); + + b.HasIndex("UserId"); + + b.ToTable("LoginLogoutLogs"); + }); + + modelBuilder.Entity("ReallifeGamemode.Database.Entities.News", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + b.Property("Active") + .HasColumnType("tinyint(1)"); + + b.Property("Caption") + .HasColumnType("longtext CHARACTER SET utf8mb4"); + + b.Property("Content") + .HasColumnType("longtext CHARACTER SET utf8mb4"); + + b.Property("Timestamp") + .HasColumnType("int"); + + b.Property("UserId") + .HasColumnType("int"); + + b.HasKey("Id"); + + b.HasIndex("UserId"); + + b.ToTable("News"); + }); + + modelBuilder.Entity("ReallifeGamemode.Database.Entities.Saves.SavedBlip", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + b.Property("Active") + .HasColumnType("tinyint(1)"); + + b.Property("Alpha") + .HasColumnType("tinyint unsigned"); + + b.Property("Color") + .HasColumnType("tinyint unsigned"); + + b.Property("Dimension") + .HasColumnType("tinyint unsigned"); + + b.Property("DrawDistance") + .HasColumnType("float"); + + b.Property("Name") + .HasColumnType("longtext CHARACTER SET utf8mb4"); + + b.Property("PositionX") + .HasColumnType("float"); + + b.Property("PositionY") + .HasColumnType("float"); + + b.Property("PositionZ") + .HasColumnType("float"); + + b.Property("Rotation") + .HasColumnType("float"); + + b.Property("Scale") + .HasColumnType("float"); + + b.Property("ShortRange") + .HasColumnType("tinyint(1)"); + + b.Property("Sprite") + .HasColumnType("smallint"); + + b.HasKey("Id"); + + b.ToTable("Blips"); + }); + + modelBuilder.Entity("ReallifeGamemode.Database.Entities.Saves.SavedMarker", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + b.Property("Active") + .HasColumnType("tinyint(1)"); + + b.Property("ColorA") + .HasColumnType("tinyint unsigned"); + + b.Property("ColorB") + .HasColumnType("tinyint unsigned"); + + b.Property("ColorG") + .HasColumnType("tinyint unsigned"); + + b.Property("ColorR") + .HasColumnType("tinyint unsigned"); + + b.Property("Dimension") + .HasColumnType("tinyint unsigned"); + + b.Property("DirectionX") + .HasColumnType("float"); + + b.Property("DirectionY") + .HasColumnType("float"); + + b.Property("DirectionZ") + .HasColumnType("float"); + + b.Property("PositionX") + .HasColumnType("float"); + + b.Property("PositionY") + .HasColumnType("float"); + + b.Property("PositionZ") + .HasColumnType("float"); + + b.Property("RotationX") + .HasColumnType("float"); + + b.Property("RotationY") + .HasColumnType("float"); + + b.Property("RotationZ") + .HasColumnType("float"); + + b.Property("Scale") + .HasColumnType("float"); + + b.Property("Type") + .HasColumnType("tinyint unsigned"); + + b.Property("Visible") + .HasColumnType("tinyint(1)"); + + b.HasKey("Id"); + + b.ToTable("Markers"); + }); + + modelBuilder.Entity("ReallifeGamemode.Database.Entities.Saves.SavedPed", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + b.Property("Active") + .HasColumnType("tinyint(1)"); + + b.Property("Dimension") + .HasColumnType("tinyint unsigned"); + + b.Property("HashModel") + .HasColumnType("longtext CHARACTER SET utf8mb4"); + + b.Property("Heading") + .HasColumnType("float"); + + b.Property("PositionX") + .HasColumnType("float"); + + b.Property("PositionY") + .HasColumnType("float"); + + b.Property("PositionZ") + .HasColumnType("float"); + + b.Property("Type") + .HasColumnType("int"); + + b.HasKey("Id"); + + b.ToTable("Peds"); + }); + + modelBuilder.Entity("ReallifeGamemode.Database.Entities.Saves.SavedPickup", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + b.Property("Active") + .HasColumnType("tinyint(1)"); + + b.Property("Dimension") + .HasColumnType("tinyint unsigned"); + + b.Property("PositionX") + .HasColumnType("float") + .HasMaxLength(128); + + b.Property("PositionY") + .HasColumnType("float"); + + b.Property("PositionZ") + .HasColumnType("float"); + + b.Property("RespawnTime") + .HasColumnType("int"); + + b.Property("RotationX") + .HasColumnType("float"); + + b.Property("RotationY") + .HasColumnType("float"); + + b.Property("RotationZ") + .HasColumnType("float"); + + b.Property("Vehicle") + .HasColumnType("tinyint(1)"); + + b.HasKey("Id"); + + b.ToTable("Pickups"); + }); + + modelBuilder.Entity("ReallifeGamemode.Database.Entities.Saves.SavedTextLabel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + b.Property("Active") + .HasColumnType("tinyint(1)"); + + b.Property("ColorA") + .HasColumnType("tinyint unsigned"); + + b.Property("ColorB") + .HasColumnType("tinyint unsigned"); + + b.Property("ColorG") + .HasColumnType("tinyint unsigned"); + + b.Property("ColorR") + .HasColumnType("tinyint unsigned"); + + b.Property("Dimension") + .HasColumnType("tinyint unsigned"); + + b.Property("DrawDistance") + .HasColumnType("float"); + + b.Property("Font") + .HasColumnType("tinyint unsigned"); + + b.Property("LOS") + .HasColumnType("tinyint(1)"); + + b.Property("PositionX") + .HasColumnType("float"); + + b.Property("PositionY") + .HasColumnType("float"); + + b.Property("PositionZ") + .HasColumnType("float"); + + b.Property("Text") + .IsRequired() + .HasColumnType("longtext CHARACTER SET utf8mb4"); + + b.HasKey("Id"); + + b.ToTable("TextLabels"); + }); + + modelBuilder.Entity("ReallifeGamemode.Database.Entities.ServerVariable", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + b.Property("Value") + .HasColumnType("int"); + + b.Property("Variable") + .HasColumnType("longtext CHARACTER SET utf8mb4"); + + b.HasKey("Id"); + + b.ToTable("ServerVariables"); + }); + + modelBuilder.Entity("ReallifeGamemode.Database.Entities.ServerVehicle", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + b.Property("Active") + .ValueGeneratedOnAdd() + .HasColumnType("tinyint(1)") + .HasDefaultValue(true); + + b.Property("Discriminator") + .IsRequired() + .HasColumnType("longtext CHARACTER SET utf8mb4"); + + b.Property("DistanceDriven") + .HasColumnType("float"); + + b.Property("Heading") + .HasColumnType("float"); + + b.Property("Livery") + .HasColumnType("int"); + + b.Property("Locked") + .HasColumnType("tinyint(1)"); + + b.Property("Model") + .HasColumnType("int unsigned"); + + b.Property("NumberPlate") + .HasColumnType("varchar(8) CHARACTER SET utf8mb4") + .HasMaxLength(8); + + b.Property("PositionX") + .HasColumnType("float"); + + b.Property("PositionY") + .HasColumnType("float"); + + b.Property("PositionZ") + .HasColumnType("float"); + + b.Property("PrimaryColor") + .HasColumnType("int"); + + b.Property("SecondaryColor") + .HasColumnType("int"); + + b.Property("TankAmount") + .HasColumnType("float"); + + b.HasKey("Id"); + + b.ToTable("ServerVehicles"); + + b.HasDiscriminator("Discriminator").HasValue("ServerVehicle"); + }); + + modelBuilder.Entity("ReallifeGamemode.Database.Entities.ShopClothe", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + b.Property("Category") + .HasColumnType("int"); + + b.Property("ClotheId") + .HasColumnType("int"); + + b.Property("ComponentId") + .HasColumnType("int"); + + b.Property("Gender") + .HasColumnType("tinyint(1)"); + + b.Property("Price") + .HasColumnType("int"); + + b.Property("TypeId") + .HasColumnType("longtext CHARACTER SET utf8mb4"); + + b.HasKey("Id"); + + b.ToTable("ShopClothes"); + }); + + modelBuilder.Entity("ReallifeGamemode.Database.Entities.ShopItem", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + b.Property("Amount") + .HasColumnType("int"); + + b.Property("ItemId") + .HasColumnType("int"); + + b.Property("Price") + .HasColumnType("int"); + + b.Property("ShopId") + .HasColumnType("int"); + + b.HasKey("Id"); + + b.ToTable("ShopItems"); + }); + + modelBuilder.Entity("ReallifeGamemode.Database.Entities.TuningGarage", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + b.Property("X") + .HasColumnType("float"); + + b.Property("Y") + .HasColumnType("float"); + + b.Property("Z") + .HasColumnType("float"); + + b.HasKey("Id"); + + b.ToTable("TuningGarages"); + }); + + modelBuilder.Entity("ReallifeGamemode.Database.Entities.Turfs", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + b.Property("Color") + .HasColumnType("int"); + + b.Property("FactionId") + .HasColumnType("int"); + + b.Property("MaxValue") + .HasColumnType("int"); + + b.Property("Name") + .HasColumnType("longtext CHARACTER SET utf8mb4"); + + b.Property("Owner") + .HasColumnType("longtext CHARACTER SET utf8mb4"); + + b.Property("Range") + .HasColumnType("float"); + + b.Property("Rotation") + .HasColumnType("float"); + + b.Property("Surplus") + .HasColumnType("tinyint(1)"); + + b.Property("Value") + .HasColumnType("int"); + + b.Property("Vector") + .HasColumnType("longtext CHARACTER SET utf8mb4"); + + b.Property("X") + .HasColumnType("float"); + + b.Property("Y") + .HasColumnType("float"); + + b.HasKey("Id"); + + b.ToTable("Turfs"); + }); + + modelBuilder.Entity("ReallifeGamemode.Database.Entities.User", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + b.Property("AdminLevel") + .HasColumnType("int"); + + b.Property("BanId") + .HasColumnType("int"); + + b.Property("BankAccountId") + .HasColumnType("int"); + + b.Property("BusSkill") + .HasColumnType("int"); + + b.Property("BusinessId") + .HasColumnType("int"); + + b.Property("CharacterId") + .HasColumnType("int"); + + b.Property("Dead") + .HasColumnType("tinyint(1)"); + + b.Property("DriverLicenseBike") + .HasColumnType("tinyint(1)"); + + b.Property("DriverLicenseVehicle") + .HasColumnType("tinyint(1)"); + + b.Property("Email") + .HasColumnType("varchar(64) CHARACTER SET utf8mb4") + .HasMaxLength(64); + + b.Property("FactionId") + .HasColumnType("int"); + + b.Property("FactionLeader") + .HasColumnType("tinyint(1)"); + + b.Property("FactionRankId") + .HasColumnType("int"); + + b.Property("FlyingLicensePlane") + .HasColumnType("tinyint(1)"); + + b.Property("GroupId") + .HasColumnType("int"); + + b.Property("GroupRank") + .HasColumnType("int"); + + b.Property("Handmoney") + .HasColumnType("int"); + + b.Property("HouseId") + .HasColumnType("int"); + + b.Property("JailTime") + .HasColumnType("int"); + + b.Property("JobId") + .HasColumnType("int"); + + b.Property("LogUserId") + .HasColumnType("int"); + + b.Property("Name") + .HasColumnType("varchar(32) CHARACTER SET utf8mb4") + .HasMaxLength(32); + + b.Property("Password") + .HasColumnType("varchar(64) CHARACTER SET utf8mb4") + .HasMaxLength(64); + + b.Property("PaydayTimer") + .HasColumnType("int"); + + b.Property("PilotSkill") + .HasColumnType("int"); + + b.Property("PlayedMinutes") + .HasColumnType("int"); + + b.Property("Points") + .HasColumnType("int"); + + b.Property("PositionX") + .HasColumnType("float"); + + b.Property("PositionY") + .HasColumnType("float"); + + b.Property("PositionZ") + .HasColumnType("float"); + + b.Property("RegistrationDate") + .ValueGeneratedOnAdd() + .HasColumnType("datetime(6)"); + + b.Property("SocialClubName") + .HasColumnType("varchar(32) CHARACTER SET utf8mb4") + .HasMaxLength(32); + + b.Property("Wage") + .HasColumnType("int"); + + b.Property("Wanteds") + .HasColumnType("int"); + + b.Property("WeaponLicense") + .HasColumnType("tinyint(1)"); + + b.Property("failpoints") + .HasColumnType("int"); + + b.Property("otheramount") + .HasColumnType("int"); + + b.Property("trashcount") + .HasColumnType("int"); + + b.Property("warn") + .HasColumnType("int"); + + b.HasKey("Id"); + + b.HasIndex("BanId"); + + b.HasIndex("BankAccountId"); + + b.HasIndex("BusinessId") + .IsUnique(); + + b.HasIndex("CharacterId"); + + b.HasIndex("FactionId"); + + b.HasIndex("FactionRankId"); + + b.HasIndex("GroupId"); + + b.HasIndex("HouseId"); + + b.HasIndex("Name") + .IsUnique(); + + b.ToTable("Users"); + }); + + modelBuilder.Entity("ReallifeGamemode.Database.Entities.UserBankAccount", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + b.Property("Active") + .HasColumnType("tinyint(1)"); + + b.Property("Balance") + .HasColumnType("int"); + + b.Property("Bic") + .HasColumnType("varchar(12) CHARACTER SET utf8mb4") + .HasMaxLength(12); + + b.Property("Iban") + .HasColumnType("varchar(32) CHARACTER SET utf8mb4") + .HasMaxLength(32); + + b.HasKey("Id"); + + b.ToTable("UserBankAccounts"); + }); + + modelBuilder.Entity("ReallifeGamemode.Database.Entities.UserItem", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + b.Property("Amount") + .HasColumnType("int"); + + b.Property("ItemId") + .HasColumnType("int"); + + b.Property("Slot") + .HasColumnType("int"); + + b.Property("UserId") + .HasColumnType("int"); + + b.HasKey("Id"); + + b.HasIndex("UserId"); + + b.ToTable("UserItems"); + }); + + modelBuilder.Entity("ReallifeGamemode.Database.Entities.UserWeapon", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + b.Property("Ammo") + .HasColumnType("int"); + + b.Property("UserId") + .HasColumnType("int"); + + b.Property("WeaponId") + .HasColumnType("int"); + + b.HasKey("Id"); + + b.HasIndex("UserId"); + + b.HasIndex("WeaponId"); + + b.ToTable("UserWeapons"); + }); + + modelBuilder.Entity("ReallifeGamemode.Database.Entities.VehicleItem", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + b.Property("Amount") + .HasColumnType("int"); + + b.Property("ItemId") + .HasColumnType("int"); + + b.Property("Slot") + .HasColumnType("int"); + + b.Property("VehicleId") + .HasColumnType("int"); + + b.HasKey("Id"); + + b.HasIndex("VehicleId"); + + b.ToTable("VehicleItems"); + }); + + modelBuilder.Entity("ReallifeGamemode.Database.Entities.VehicleMod", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + b.Property("ModId") + .HasColumnType("int"); + + b.Property("ServerVehicleId") + .HasColumnType("int"); + + b.Property("Slot") + .HasColumnType("int"); + + b.HasKey("Id"); + + b.HasIndex("ServerVehicleId", "Slot") + .IsUnique(); + + b.ToTable("VehicleMods"); + }); + + modelBuilder.Entity("ReallifeGamemode.Database.Entities.Weapon", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + b.Property("Ammo") + .HasColumnType("int"); + + b.Property("AmmunationActive") + .HasColumnType("tinyint(1)"); + + b.Property("CategoryId") + .HasColumnType("int"); + + b.Property("Legal") + .HasColumnType("tinyint(1)"); + + b.Property("Price") + .HasColumnType("float"); + + b.Property("SlotID") + .HasColumnType("int"); + + b.Property("WeaponModel") + .HasColumnType("longtext CHARACTER SET utf8mb4"); + + b.HasKey("Id"); + + b.HasIndex("CategoryId"); + + b.ToTable("Weapons"); + }); + + modelBuilder.Entity("ReallifeGamemode.Database.Entities.WeaponCategory", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + b.Property("Category") + .HasColumnType("longtext CHARACTER SET utf8mb4"); + + b.HasKey("Id"); + + b.ToTable("WeaponCategories"); + }); + + modelBuilder.Entity("ReallifeGamemode.Database.Entities.Whitelist", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + b.Property("SocialClubName") + .HasColumnType("longtext CHARACTER SET utf8mb4"); + + b.HasKey("Id"); + + b.ToTable("WhitelistEntries"); + }); + + modelBuilder.Entity("ReallifeGamemode.Database.Entities.Logs.Chat.DepartmentChatLogEntry", b => + { + b.HasBaseType("ReallifeGamemode.Database.Entities.Logs.Chat.ChatLogEntry"); + + b.HasDiscriminator().HasValue("DepartmentChatLogEntry"); + }); + + modelBuilder.Entity("ReallifeGamemode.Database.Entities.Logs.Chat.FactionChatLogEntry", b => + { + b.HasBaseType("ReallifeGamemode.Database.Entities.Logs.Chat.ChatLogEntry"); + + b.Property("FactionId") + .HasColumnType("int"); + + b.HasIndex("FactionId"); + + b.HasDiscriminator().HasValue("FactionChatLogEntry"); + }); + + modelBuilder.Entity("ReallifeGamemode.Database.Entities.Logs.Chat.GangChatLogEntry", b => + { + b.HasBaseType("ReallifeGamemode.Database.Entities.Logs.Chat.ChatLogEntry"); + + b.HasDiscriminator().HasValue("GangChatLogEntry"); + }); + + modelBuilder.Entity("ReallifeGamemode.Database.Entities.Logs.Chat.GroupChatLogEntry", b => + { + b.HasBaseType("ReallifeGamemode.Database.Entities.Logs.Chat.ChatLogEntry"); + + b.Property("GroupId") + .HasColumnType("int"); + + b.HasIndex("GroupId"); + + b.HasDiscriminator().HasValue("GroupChatLogEntry"); + }); + + modelBuilder.Entity("ReallifeGamemode.Database.Entities.Logs.Chat.LeaderChatLogEntry", b => + { + b.HasBaseType("ReallifeGamemode.Database.Entities.Logs.Chat.ChatLogEntry"); + + b.HasDiscriminator().HasValue("LeaderChatLogEntry"); + }); + + modelBuilder.Entity("ReallifeGamemode.Database.Entities.Logs.Chat.LocalChatLogEntry", b => + { + b.HasBaseType("ReallifeGamemode.Database.Entities.Logs.Chat.ChatLogEntry"); + + b.HasDiscriminator().HasValue("LocalChatLogEntry"); + }); + + modelBuilder.Entity("ReallifeGamemode.Database.Entities.Logs.Chat.NewsChatLogEntry", b => + { + b.HasBaseType("ReallifeGamemode.Database.Entities.Logs.Chat.ChatLogEntry"); + + b.HasDiscriminator().HasValue("NewsChatLogEntry"); + }); + + modelBuilder.Entity("ReallifeGamemode.Database.Entities.Logs.Chat.OChatLogEntry", b => + { + b.HasBaseType("ReallifeGamemode.Database.Entities.Logs.Chat.ChatLogEntry"); + + b.HasDiscriminator().HasValue("OChatLogEntry"); + }); + + modelBuilder.Entity("ReallifeGamemode.Database.Entities.FactionVehicle", b => + { + b.HasBaseType("ReallifeGamemode.Database.Entities.ServerVehicle"); + + b.Property("BuyPrice") + .HasColumnType("int"); + + b.Property("Owners") + .HasColumnType("longtext CHARACTER SET utf8mb4"); + + b.ToTable("FactionVehicles"); + + b.HasDiscriminator().HasValue("FactionVehicle"); + }); + + modelBuilder.Entity("ReallifeGamemode.Database.Entities.GroupVehicle", b => + { + b.HasBaseType("ReallifeGamemode.Database.Entities.ServerVehicle"); + + b.Property("GroupId") + .HasColumnType("int"); + + b.HasIndex("GroupId"); + + b.HasDiscriminator().HasValue("GroupVehicle"); + }); + + modelBuilder.Entity("ReallifeGamemode.Database.Entities.JobVehicle", b => + { + b.HasBaseType("ReallifeGamemode.Database.Entities.ServerVehicle"); + + b.Property("JobId") + .HasColumnType("int"); + + b.HasDiscriminator().HasValue("JobVehicle"); + }); + + modelBuilder.Entity("ReallifeGamemode.Database.Entities.NoobSpawnVehicle", b => + { + b.HasBaseType("ReallifeGamemode.Database.Entities.ServerVehicle"); + + b.HasDiscriminator().HasValue("NoobSpawnVehicle"); + }); + + modelBuilder.Entity("ReallifeGamemode.Database.Entities.NoobVehicle", b => + { + b.HasBaseType("ReallifeGamemode.Database.Entities.ServerVehicle"); + + b.HasDiscriminator().HasValue("NoobVehicle"); + }); + + modelBuilder.Entity("ReallifeGamemode.Database.Entities.Saves.SavedVehicle", b => + { + b.HasBaseType("ReallifeGamemode.Database.Entities.ServerVehicle"); + + b.HasDiscriminator().HasValue("SavedVehicle"); + }); + + modelBuilder.Entity("ReallifeGamemode.Database.Entities.SchoolVehicle", b => + { + b.HasBaseType("ReallifeGamemode.Database.Entities.ServerVehicle"); + + b.Property("SchoolId") + .HasColumnType("int"); + + b.HasDiscriminator().HasValue("SchoolVehicle"); + }); + + modelBuilder.Entity("ReallifeGamemode.Database.Entities.ShopVehicle", b => + { + b.HasBaseType("ReallifeGamemode.Database.Entities.ServerVehicle"); + + b.Property("BusinessId") + .HasColumnType("int"); + + b.Property("Price") + .HasColumnType("int"); + + b.ToTable("ShopVehicles"); + + b.HasDiscriminator().HasValue("ShopVehicle"); + }); + + modelBuilder.Entity("ReallifeGamemode.Database.Entities.UserVehicle", b => + { + b.HasBaseType("ReallifeGamemode.Database.Entities.ServerVehicle"); + + b.Property("BusinessId") + .HasColumnName("UserVehicle_BusinessId") + .HasColumnType("int"); + + b.Property("Price") + .HasColumnName("UserVehicle_Price") + .HasColumnType("int"); + + b.Property("UserId") + .HasColumnType("int"); + + b.HasIndex("UserId"); + + b.ToTable("UserVehicles"); + + b.HasDiscriminator().HasValue("UserVehicle"); + }); + + modelBuilder.Entity("ReallifeGamemode.Database.Entities.Ban", b => + { + b.HasOne("ReallifeGamemode.Database.Entities.User", "User") + .WithMany() + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("ReallifeGamemode.Database.Entities.BusRoutePoint", b => + { + b.HasOne("ReallifeGamemode.Database.Entities.BusRoute", "BusRoute") + .WithMany("RoutePoints") + .HasForeignKey("BusRouteId"); + }); + + modelBuilder.Entity("ReallifeGamemode.Database.Entities.Character", b => + { + b.HasOne("ReallifeGamemode.Database.Entities.User", "User") + .WithMany() + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("ReallifeGamemode.Database.Entities.CharacterCloth", b => + { + b.HasOne("ReallifeGamemode.Database.Entities.User", "User") + .WithMany() + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("ReallifeGamemode.Database.Entities.Door", b => + { + b.HasOne("ReallifeGamemode.Database.Entities.Faction", "Faction") + .WithMany() + .HasForeignKey("FactionId"); + }); + + modelBuilder.Entity("ReallifeGamemode.Database.Entities.DutyCloth", b => + { + b.HasOne("ReallifeGamemode.Database.Entities.Faction", "Faction") + .WithMany() + .HasForeignKey("FactionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("ReallifeGamemode.Database.Entities.Faction", b => + { + b.HasOne("ReallifeGamemode.Database.Entities.FactionBankAccount", "BankAccount") + .WithMany() + .HasForeignKey("BankAccountId"); + }); + + modelBuilder.Entity("ReallifeGamemode.Database.Entities.FactionRank", b => + { + b.HasOne("ReallifeGamemode.Database.Entities.Faction", "Faction") + .WithMany() + .HasForeignKey("FactionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("ReallifeGamemode.Database.Entities.FactionWeapon", b => + { + b.HasOne("ReallifeGamemode.Database.Entities.Faction", "Faction") + .WithMany() + .HasForeignKey("FactionId"); + }); + + modelBuilder.Entity("ReallifeGamemode.Database.Entities.Group", b => + { + b.HasOne("ReallifeGamemode.Database.Entities.GroupBankAccount", "BankAccount") + .WithMany() + .HasForeignKey("BankAccountId"); + }); + + modelBuilder.Entity("ReallifeGamemode.Database.Entities.House", b => + { + b.HasOne("ReallifeGamemode.Database.Entities.HouseBankAccount", "BankAccount") + .WithMany() + .HasForeignKey("BankAccountId"); + + b.HasOne("ReallifeGamemode.Database.Entities.User", "Owner") + .WithMany() + .HasForeignKey("OwnerId"); + }); + + modelBuilder.Entity("ReallifeGamemode.Database.Entities.HouseRental", b => + { + b.HasOne("ReallifeGamemode.Database.Entities.House", "House") + .WithMany("Rentals") + .HasForeignKey("HouseId"); + + b.HasOne("ReallifeGamemode.Database.Entities.User", "User") + .WithMany() + .HasForeignKey("UserId"); + }); + + modelBuilder.Entity("ReallifeGamemode.Database.Entities.Logs.Chat.ChatLogEntry", b => + { + b.HasOne("ReallifeGamemode.Database.Entities.User", "User") + .WithMany() + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("ReallifeGamemode.Database.Entities.Logs.CommandLogEntry", b => + { + b.HasOne("ReallifeGamemode.Database.Entities.User", "User") + .WithMany() + .HasForeignKey("UserId"); + }); + + modelBuilder.Entity("ReallifeGamemode.Database.Entities.Logs.Death", b => + { + b.HasOne("ReallifeGamemode.Database.Entities.User", "Killer") + .WithMany() + .HasForeignKey("KillerId"); + + b.HasOne("ReallifeGamemode.Database.Entities.User", "Victim") + .WithMany() + .HasForeignKey("VictimId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("ReallifeGamemode.Database.Entities.Logs.LoginLogoutLogEntry", b => + { + b.HasOne("ReallifeGamemode.Database.Entities.User", "User") + .WithMany() + .HasForeignKey("UserId"); + }); + + modelBuilder.Entity("ReallifeGamemode.Database.Entities.News", b => + { + b.HasOne("ReallifeGamemode.Database.Entities.User", "User") + .WithMany() + .HasForeignKey("UserId"); + }); + + modelBuilder.Entity("ReallifeGamemode.Database.Entities.User", b => + { + b.HasOne("ReallifeGamemode.Database.Entities.Ban", "Ban") + .WithMany() + .HasForeignKey("BanId"); + + b.HasOne("ReallifeGamemode.Database.Entities.UserBankAccount", "BankAccount") + .WithMany() + .HasForeignKey("BankAccountId"); + + b.HasOne("ReallifeGamemode.Database.Entities.Character", "Character") + .WithMany() + .HasForeignKey("CharacterId"); + + b.HasOne("ReallifeGamemode.Database.Entities.Faction", "Faction") + .WithMany() + .HasForeignKey("FactionId"); + + b.HasOne("ReallifeGamemode.Database.Entities.FactionRank", "FactionRank") + .WithMany() + .HasForeignKey("FactionRankId"); + + b.HasOne("ReallifeGamemode.Database.Entities.Group", "Group") + .WithMany() + .HasForeignKey("GroupId"); + + b.HasOne("ReallifeGamemode.Database.Entities.House", "House") + .WithMany() + .HasForeignKey("HouseId"); + }); + + modelBuilder.Entity("ReallifeGamemode.Database.Entities.UserItem", b => + { + b.HasOne("ReallifeGamemode.Database.Entities.User", "User") + .WithMany() + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("ReallifeGamemode.Database.Entities.UserWeapon", b => + { + b.HasOne("ReallifeGamemode.Database.Entities.User", "User") + .WithMany() + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("ReallifeGamemode.Database.Entities.Weapon", "Weapon") + .WithMany() + .HasForeignKey("WeaponId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("ReallifeGamemode.Database.Entities.VehicleItem", b => + { + b.HasOne("ReallifeGamemode.Database.Entities.ServerVehicle", "Vehicle") + .WithMany() + .HasForeignKey("VehicleId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("ReallifeGamemode.Database.Entities.VehicleMod", b => + { + b.HasOne("ReallifeGamemode.Database.Entities.ServerVehicle", "Vehicle") + .WithMany() + .HasForeignKey("ServerVehicleId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("ReallifeGamemode.Database.Entities.Weapon", b => + { + b.HasOne("ReallifeGamemode.Database.Entities.WeaponCategory", "WeaponCategory") + .WithMany() + .HasForeignKey("CategoryId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("ReallifeGamemode.Database.Entities.Logs.Chat.FactionChatLogEntry", b => + { + b.HasOne("ReallifeGamemode.Database.Entities.Faction", "Faction") + .WithMany() + .HasForeignKey("FactionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("ReallifeGamemode.Database.Entities.Logs.Chat.GroupChatLogEntry", b => + { + b.HasOne("ReallifeGamemode.Database.Entities.Group", "Group") + .WithMany() + .HasForeignKey("GroupId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("ReallifeGamemode.Database.Entities.GroupVehicle", b => + { + b.HasOne("ReallifeGamemode.Database.Entities.Group", "Group") + .WithMany() + .HasForeignKey("GroupId"); + }); + + modelBuilder.Entity("ReallifeGamemode.Database.Entities.UserVehicle", b => + { + b.HasOne("ReallifeGamemode.Database.Entities.User", "User") + .WithMany() + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/ReallifeGamemode.Database/Migrations/20210429134927_AddDoorAlwaysOpenFlag.cs b/ReallifeGamemode.Database/Migrations/20210429134927_AddDoorAlwaysOpenFlag.cs new file mode 100644 index 00000000..eb390066 --- /dev/null +++ b/ReallifeGamemode.Database/Migrations/20210429134927_AddDoorAlwaysOpenFlag.cs @@ -0,0 +1,23 @@ +using Microsoft.EntityFrameworkCore.Migrations; + +namespace ReallifeGamemode.Database.Migrations +{ + public partial class AddDoorAlwaysOpenFlag : Migration + { + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.AddColumn( + name: "AlwaysOpen", + table: "Doors", + nullable: false, + defaultValue: false); + } + + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropColumn( + name: "AlwaysOpen", + table: "Doors"); + } + } +} diff --git a/ReallifeGamemode.Database/Migrations/DatabaseContextModelSnapshot.cs b/ReallifeGamemode.Database/Migrations/DatabaseContextModelSnapshot.cs index fcb3068f..31a73d51 100644 --- a/ReallifeGamemode.Database/Migrations/DatabaseContextModelSnapshot.cs +++ b/ReallifeGamemode.Database/Migrations/DatabaseContextModelSnapshot.cs @@ -398,6 +398,9 @@ namespace ReallifeGamemode.Database.Migrations .ValueGeneratedOnAdd() .HasColumnType("int"); + b.Property("AlwaysOpen") + .HasColumnType("tinyint(1)"); + b.Property("Category") .HasColumnType("longtext CHARACTER SET utf8mb4"); diff --git a/ReallifeGamemode.Server/Managers/DoorManager.cs b/ReallifeGamemode.Server/Managers/DoorManager.cs index c5a6e223..61431ca5 100644 --- a/ReallifeGamemode.Server/Managers/DoorManager.cs +++ b/ReallifeGamemode.Server/Managers/DoorManager.cs @@ -24,7 +24,7 @@ namespace ReallifeGamemode.Server.Managers { foreach (Door door in dbContext.Doors) { - _doorColShapes[door.Id] = NAPI.ColShape.CreateSphereColShape(door.Position, 30f); + _doorColShapes[door.Id] = NAPI.ColShape.CreateSphereColShape(door.Position, door.AlwaysOpen ? 200f : 30f); } } } @@ -63,7 +63,7 @@ namespace ReallifeGamemode.Server.Managers player.SendNotification(notStr, true); - NAPI.Pools.GetAllPlayers().ForEach(p => p.TriggerEvent("changeDoorState", d.Model, d.X, d.Y, d.Z, (d.Locked ? 1 : 0), 0.0f, 0.0f, 0.0f)); + NAPI.Pools.GetAllPlayers().ForEach(p => UpdateDoorState(p, d)); } } dbContext.SaveChanges(); @@ -80,9 +80,14 @@ namespace ReallifeGamemode.Server.Managers using (var dbContext = new DatabaseContext()) { Door door = dbContext.Doors.Where(d => d.Id == doorId).First(); - player.TriggerEvent("changeDoorState", door.Model, door.X, door.Y, door.Z, (door.Locked ? 1 : 0), 0.0f, 0.0f, 0.0f); + UpdateDoorState(player, door); } } } + + private static void UpdateDoorState(Player player, Door door) + { + player.TriggerEvent("changeDoorState", door.Model, door.X, door.Y, door.Z, (door.Locked || door.AlwaysOpen ? 1 : 0), 0.0f, 0.0f, door.AlwaysOpen ? 1.0f : 0.0f); + } } } From e517b4ac81c3b3dfa19a5a03e0d88213807d2638 Mon Sep 17 00:00:00 2001 From: Luke Date: Thu, 29 Apr 2021 15:25:24 +0000 Subject: [PATCH 065/114] =?UTF-8?q?Leerzeichen=20bei=20/takeweapon=20hinzu?= =?UTF-8?q?gef=C3=BCgt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ReallifeGamemode.Server/Commands/AdminCommands.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ReallifeGamemode.Server/Commands/AdminCommands.cs b/ReallifeGamemode.Server/Commands/AdminCommands.cs index 7c35178a..d86f8c57 100644 --- a/ReallifeGamemode.Server/Commands/AdminCommands.cs +++ b/ReallifeGamemode.Server/Commands/AdminCommands.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.Linq; using System.Net.Http; @@ -1182,7 +1182,7 @@ namespace ReallifeGamemode.Server.Commands return; } target.RemoveAllWeapons(); - ChatService.SendMessage(target, "~b~Deine Waffen wurden dir von " + player.Name + "(Admin) abgenommen"); + ChatService.SendMessage(target, "~b~Deine Waffen wurden dir von " + player.Name + " (Admin) abgenommen"); ChatService.SendMessage(player, "~b~Dem Spieler " + target.Name + " wurden erfolgreich alle Waffen abgenommen "); } From 3bf0f82abb911d7e6dbf1c7164fa0be5c0aab526 Mon Sep 17 00:00:00 2001 From: Fabian Date: Thu, 29 Apr 2021 18:57:46 +0200 Subject: [PATCH 066/114] TEST: gangwar kill message --- ReallifeGamemode.Client/Gui/infobox.ts | 23 ++++++++++++++++++- .../Commands/UserCommands.cs | 2 +- ReallifeGamemode.Server/Events/Death.cs | 6 +++++ 3 files changed, 29 insertions(+), 2 deletions(-) diff --git a/ReallifeGamemode.Client/Gui/infobox.ts b/ReallifeGamemode.Client/Gui/infobox.ts index cf1ba033..ac006e26 100644 --- a/ReallifeGamemode.Client/Gui/infobox.ts +++ b/ReallifeGamemode.Client/Gui/infobox.ts @@ -56,6 +56,9 @@ export default function (globalData: IGlobalData): void { var playerId; var playerMoney = "5000"; + var gangwarMessage = ""; + var gangwarMessageTimer; + mp.events.add("draw", (pName, pId) => { playerName = pName; playerId = pId; @@ -94,6 +97,15 @@ export default function (globalData: IGlobalData): void { spawnschutz = toggle; }); + mp.events.add("setGangwarKillMessage", (msg) => { + gangwarMessage = msg; + + clearInterval(gangwarMessageTimer); + gangwarMessageTimer = setTimeout(() => { + gangwarMessage = ""; + }, 5000); + }); + mp.events.add("jailTime", (time) => { jailTime = JSON.parse(time); }); @@ -307,9 +319,18 @@ export default function (globalData: IGlobalData): void { centre: false }) mp.game.graphics.drawRect(0.0, 0.555, 0.3, 0.11, 0, 0, 0, 70) - } + mp.game.graphics.drawText(gangwarMessage, [0.08, 0.68], + { + font: 4, + color: [255, 255, 255, 255], + scale: [0.5, 0.5], + outline: true, + centre: false + }) + } } + if (editMode === true) { mp.game.graphics.drawText("~r~EDIT-MODE AKTIV", [0.5, 0], { diff --git a/ReallifeGamemode.Server/Commands/UserCommands.cs b/ReallifeGamemode.Server/Commands/UserCommands.cs index f9718c59..cf5d581b 100644 --- a/ReallifeGamemode.Server/Commands/UserCommands.cs +++ b/ReallifeGamemode.Server/Commands/UserCommands.cs @@ -16,7 +16,7 @@ using ReallifeGamemode.Services; namespace ReallifeGamemode.Server.Commands { internal class UserCommands : Script - { + { [Command("eventport", "~m~eventport")] public void CmdUserEventport(Player player, String option = "") { diff --git a/ReallifeGamemode.Server/Events/Death.cs b/ReallifeGamemode.Server/Events/Death.cs index 21c12c75..0829b426 100644 --- a/ReallifeGamemode.Server/Events/Death.cs +++ b/ReallifeGamemode.Server/Events/Death.cs @@ -79,6 +79,12 @@ namespace ReallifeGamemode.Server.Events var playerInGangwar = player.HasData("inGangWar"); var killerInGangwar = killer.HasData("inGangWar"); + + if (playerInGangwar && killerInGangwar) + { + killer.TriggerEvent("setGangwarKillMessage", "Du hast ~r~" + player.Name + " getötet"); + } + NAPI.Util.ConsoleOutput($"OnPlayerDeath - Player {player.Name} died - PlayerInGangwar = {playerInGangwar}, KillerInGangwar = {killerInGangwar}"); if (playerInGangwar && killerInGangwar) { From 6537e0551cf619e44a54a49e9a9190c41ad3458b Mon Sep 17 00:00:00 2001 From: Fabian Date: Thu, 29 Apr 2021 19:24:36 +0200 Subject: [PATCH 067/114] Test: gangwar kill mstg --- ReallifeGamemode.Client/Gui/infobox.ts | 21 --------------------- ReallifeGamemode.Client/util/Gangwar.ts | 10 ++++++++++ ReallifeGamemode.Server/Events/Death.cs | 5 ----- ReallifeGamemode.Server/Gangwar/Gangwar.cs | 5 +++-- ReallifeGamemode.Server/Gangwar/Turf.cs | 9 ++++++--- 5 files changed, 19 insertions(+), 31 deletions(-) diff --git a/ReallifeGamemode.Client/Gui/infobox.ts b/ReallifeGamemode.Client/Gui/infobox.ts index ac006e26..72dc766e 100644 --- a/ReallifeGamemode.Client/Gui/infobox.ts +++ b/ReallifeGamemode.Client/Gui/infobox.ts @@ -56,9 +56,6 @@ export default function (globalData: IGlobalData): void { var playerId; var playerMoney = "5000"; - var gangwarMessage = ""; - var gangwarMessageTimer; - mp.events.add("draw", (pName, pId) => { playerName = pName; playerId = pId; @@ -97,15 +94,6 @@ export default function (globalData: IGlobalData): void { spawnschutz = toggle; }); - mp.events.add("setGangwarKillMessage", (msg) => { - gangwarMessage = msg; - - clearInterval(gangwarMessageTimer); - gangwarMessageTimer = setTimeout(() => { - gangwarMessage = ""; - }, 5000); - }); - mp.events.add("jailTime", (time) => { jailTime = JSON.parse(time); }); @@ -319,15 +307,6 @@ export default function (globalData: IGlobalData): void { centre: false }) mp.game.graphics.drawRect(0.0, 0.555, 0.3, 0.11, 0, 0, 0, 70) - - mp.game.graphics.drawText(gangwarMessage, [0.08, 0.68], - { - font: 4, - color: [255, 255, 255, 255], - scale: [0.5, 0.5], - outline: true, - centre: false - }) } } diff --git a/ReallifeGamemode.Client/util/Gangwar.ts b/ReallifeGamemode.Client/util/Gangwar.ts index f9136552..3fdc949c 100644 --- a/ReallifeGamemode.Client/util/Gangwar.ts +++ b/ReallifeGamemode.Client/util/Gangwar.ts @@ -1,4 +1,6 @@ export default function gangwarHandle(globalData: IGlobalData) { + var gangwarKillCounter = 0; + function inside(point, vs) { let x = point[0], y = point[1]; @@ -625,4 +627,12 @@ //turf.render(); } }); + + mp.events.add("gangWarKillNotification", (deathPlayername) => { + mp.events.call("BN_Show", "GANGWAR: Du hast ~r~" + deathPlayername + " ~w~getötet. Kills: " + ++gangwarKillCounter); + }); + + mp.events.add("resetKillcounter", () => { + gangwarKillCounter = 0; + }); } \ No newline at end of file diff --git a/ReallifeGamemode.Server/Events/Death.cs b/ReallifeGamemode.Server/Events/Death.cs index 0829b426..965733cf 100644 --- a/ReallifeGamemode.Server/Events/Death.cs +++ b/ReallifeGamemode.Server/Events/Death.cs @@ -80,11 +80,6 @@ namespace ReallifeGamemode.Server.Events var playerInGangwar = player.HasData("inGangWar"); var killerInGangwar = killer.HasData("inGangWar"); - if (playerInGangwar && killerInGangwar) - { - killer.TriggerEvent("setGangwarKillMessage", "Du hast ~r~" + player.Name + " getötet"); - } - NAPI.Util.ConsoleOutput($"OnPlayerDeath - Player {player.Name} died - PlayerInGangwar = {playerInGangwar}, KillerInGangwar = {killerInGangwar}"); if (playerInGangwar && killerInGangwar) { diff --git a/ReallifeGamemode.Server/Gangwar/Gangwar.cs b/ReallifeGamemode.Server/Gangwar/Gangwar.cs index 56d7f42d..c2252bef 100644 --- a/ReallifeGamemode.Server/Gangwar/Gangwar.cs +++ b/ReallifeGamemode.Server/Gangwar/Gangwar.cs @@ -1,4 +1,4 @@ -using System.Collections.Generic; +using System.Collections.Generic; using System.Linq; using GTANetworkAPI; using Newtonsoft.Json; @@ -56,7 +56,8 @@ namespace ReallifeGamemode.Server.Gangwar if (killerInsideTurf && victimInsideTurf) { - NAPI.Util.ConsoleOutput($"GangwarKill - Victim {victim.Name} - Killer and Victim are in Turf area"); + NAPI.Util.ConsoleOutput($"GangwarKill - Victim {victim.Name} - Killer and Victim are in Turf area"); + killer.TriggerEvent("gangWarKillNotification", victim.Name); foreach (var turf in getTurfs()) { if (turf.getId() == victim.GetData("inGangWar")) diff --git a/ReallifeGamemode.Server/Gangwar/Turf.cs b/ReallifeGamemode.Server/Gangwar/Turf.cs index 09f85b64..423b3c3a 100644 --- a/ReallifeGamemode.Server/Gangwar/Turf.cs +++ b/ReallifeGamemode.Server/Gangwar/Turf.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; @@ -31,6 +31,8 @@ namespace ReallifeGamemode.Server.Gangwar public Player[] playerInGangwar { get; set; } public int timerCount; + private const int GANGWAR_TOTAL_TIME = 900; + public Turf(int TurfID, string TurfName, int color, string Owner, int value, int maxValue, bool surplus) { this.TurfID = TurfID; @@ -142,7 +144,7 @@ namespace ReallifeGamemode.Server.Gangwar continue; } - gangwarPlayer.TriggerEvent("GangwarScore", this.Attacker, this.Owner, this.Att_Score, this.Def_Score, 900 - timerCount); + gangwarPlayer.TriggerEvent("GangwarScore", this.Attacker, this.Owner, this.Att_Score, this.Def_Score, GANGWAR_TOTAL_TIME - timerCount); } /*if (this.Att_Score >= 200) { @@ -153,7 +155,7 @@ namespace ReallifeGamemode.Server.Gangwar this.takeOver(this.Owner); }*/ timerCount += 1; - if (timerCount >= 900) //change to 900 (seconds) before release for testing reasons change to whatever you like + if (timerCount >= GANGWAR_TOTAL_TIME) { if (this.Att_Score > this.Def_Score) { @@ -312,6 +314,7 @@ namespace ReallifeGamemode.Server.Gangwar c.TriggerEvent("CLIENT:setAttackBlip", false, TurfID); c.ResetData("inGangWar"); c.ResetData("GotInsideOfTurf"); + c.TriggerEvent("resetKillcounter"); } this.playerInGangwar = null; this.status = "conquered"; From 550d2a9ef9f46c5bc41c88e4752d77c52f54732b Mon Sep 17 00:00:00 2001 From: Fabian Date: Thu, 29 Apr 2021 19:27:18 +0200 Subject: [PATCH 068/114] zu testzwecken gw timer runtergesetzt --- ReallifeGamemode.Server/Gangwar/Turf.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ReallifeGamemode.Server/Gangwar/Turf.cs b/ReallifeGamemode.Server/Gangwar/Turf.cs index 423b3c3a..d7406dcf 100644 --- a/ReallifeGamemode.Server/Gangwar/Turf.cs +++ b/ReallifeGamemode.Server/Gangwar/Turf.cs @@ -31,7 +31,7 @@ namespace ReallifeGamemode.Server.Gangwar public Player[] playerInGangwar { get; set; } public int timerCount; - private const int GANGWAR_TOTAL_TIME = 900; + private const int GANGWAR_TOTAL_TIME = 30; public Turf(int TurfID, string TurfName, int color, string Owner, int value, int maxValue, bool surplus) { From 9afb37f20075d2284b64e5ca9a6f2d10928880d3 Mon Sep 17 00:00:00 2001 From: Fabian Date: Thu, 29 Apr 2021 19:37:13 +0200 Subject: [PATCH 069/114] zum testen: gangwar --- ReallifeGamemode.Client/util/Gangwar.ts | 2 +- ReallifeGamemode.Server/Gangwar/Gangwar.cs | 1 + ReallifeGamemode.Server/Gangwar/Turf.cs | 6 ++---- 3 files changed, 4 insertions(+), 5 deletions(-) diff --git a/ReallifeGamemode.Client/util/Gangwar.ts b/ReallifeGamemode.Client/util/Gangwar.ts index 3fdc949c..a7b94ac8 100644 --- a/ReallifeGamemode.Client/util/Gangwar.ts +++ b/ReallifeGamemode.Client/util/Gangwar.ts @@ -629,7 +629,7 @@ }); mp.events.add("gangWarKillNotification", (deathPlayername) => { - mp.events.call("BN_Show", "GANGWAR: Du hast ~r~" + deathPlayername + " ~w~getötet. Kills: " + ++gangwarKillCounter); + mp.events.call("BN_Show", "~y~GANGWAR~w~: Du hast ~r~" + deathPlayername + " ~w~getötet. Kills: " + ++gangwarKillCounter); }); mp.events.add("resetKillcounter", () => { diff --git a/ReallifeGamemode.Server/Gangwar/Gangwar.cs b/ReallifeGamemode.Server/Gangwar/Gangwar.cs index c2252bef..326a4919 100644 --- a/ReallifeGamemode.Server/Gangwar/Gangwar.cs +++ b/ReallifeGamemode.Server/Gangwar/Gangwar.cs @@ -13,6 +13,7 @@ namespace ReallifeGamemode.Server.Gangwar { public static Turf[] _loadedTurfs; private static List turfs; + public const int GANGWAR_TOTAL_TIME = 90; public static void loadTurfs() { diff --git a/ReallifeGamemode.Server/Gangwar/Turf.cs b/ReallifeGamemode.Server/Gangwar/Turf.cs index d7406dcf..3cd1d52b 100644 --- a/ReallifeGamemode.Server/Gangwar/Turf.cs +++ b/ReallifeGamemode.Server/Gangwar/Turf.cs @@ -31,8 +31,6 @@ namespace ReallifeGamemode.Server.Gangwar public Player[] playerInGangwar { get; set; } public int timerCount; - private const int GANGWAR_TOTAL_TIME = 30; - public Turf(int TurfID, string TurfName, int color, string Owner, int value, int maxValue, bool surplus) { this.TurfID = TurfID; @@ -144,7 +142,7 @@ namespace ReallifeGamemode.Server.Gangwar continue; } - gangwarPlayer.TriggerEvent("GangwarScore", this.Attacker, this.Owner, this.Att_Score, this.Def_Score, GANGWAR_TOTAL_TIME - timerCount); + gangwarPlayer.TriggerEvent("GangwarScore", this.Attacker, this.Owner, this.Att_Score, this.Def_Score, Gangwar.GANGWAR_TOTAL_TIME - timerCount); } /*if (this.Att_Score >= 200) { @@ -155,7 +153,7 @@ namespace ReallifeGamemode.Server.Gangwar this.takeOver(this.Owner); }*/ timerCount += 1; - if (timerCount >= GANGWAR_TOTAL_TIME) + if (timerCount >= Gangwar.GANGWAR_TOTAL_TIME) { if (this.Att_Score > this.Def_Score) { From 8ccb9b93c0d912c0350cbe5235af409453238363 Mon Sep 17 00:00:00 2001 From: Fabian Date: Thu, 29 Apr 2021 19:42:06 +0200 Subject: [PATCH 070/114] =?UTF-8?q?gangwartimer=20erh=C3=B6ht,=20das=20din?= =?UTF-8?q?g=20l=C3=A4uft?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ReallifeGamemode.Server/Gangwar/Gangwar.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ReallifeGamemode.Server/Gangwar/Gangwar.cs b/ReallifeGamemode.Server/Gangwar/Gangwar.cs index 326a4919..8d6ac346 100644 --- a/ReallifeGamemode.Server/Gangwar/Gangwar.cs +++ b/ReallifeGamemode.Server/Gangwar/Gangwar.cs @@ -13,7 +13,7 @@ namespace ReallifeGamemode.Server.Gangwar { public static Turf[] _loadedTurfs; private static List turfs; - public const int GANGWAR_TOTAL_TIME = 90; + public const int GANGWAR_TOTAL_TIME = 900; public static void loadTurfs() { From 8da4cc41cdbdd6e33e03602fc791a631a69ea5b1 Mon Sep 17 00:00:00 2001 From: "michael.reiswich" Date: Thu, 29 Apr 2021 23:59:27 +0200 Subject: [PATCH 071/114] add mal healatms --- ReallifeGamemode.Client/dlcpacks/heal/dlc.rpf | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 ReallifeGamemode.Client/dlcpacks/heal/dlc.rpf diff --git a/ReallifeGamemode.Client/dlcpacks/heal/dlc.rpf b/ReallifeGamemode.Client/dlcpacks/heal/dlc.rpf new file mode 100644 index 00000000..7ba23ab4 --- /dev/null +++ b/ReallifeGamemode.Client/dlcpacks/heal/dlc.rpf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bb41e0f12df5bc1a1d0425d0b01f0918a18d27d6e10fec95145cd5d4633a29cd +size 38912 From 2192063008d7e5117707e13e4988ac449b5fd535 Mon Sep 17 00:00:00 2001 From: hydrant Date: Thu, 29 Apr 2021 22:32:08 +0200 Subject: [PATCH 072/114] =?UTF-8?q?DeathLogs=20standardm=C3=A4=C3=9Fig=20a?= =?UTF-8?q?n?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ReallifeGamemode.Server/Events/Login.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/ReallifeGamemode.Server/Events/Login.cs b/ReallifeGamemode.Server/Events/Login.cs index cef95c6c..6bba950a 100644 --- a/ReallifeGamemode.Server/Events/Login.cs +++ b/ReallifeGamemode.Server/Events/Login.cs @@ -82,6 +82,7 @@ namespace ReallifeGamemode.Server.Events player.SetData("Adminduty", false); player.TriggerEvent("SERVER:SET_HANDMONEY", user.Handmoney, 0); player.TriggerEvent("headshotoff"); + player.SetData("togdeath", true); Gangwar.Gangwar.loadPlayer(player); if (user.FactionLeader) { From 7bebdcd039fd36aebceace0727ae3eb11cf11977 Mon Sep 17 00:00:00 2001 From: "michael.reiswich" Date: Sat, 1 May 2021 17:37:36 +0200 Subject: [PATCH 073/114] add vagos base --- ReallifeGamemode.Client/dlcpacks/vagos/dlc.rpf | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 ReallifeGamemode.Client/dlcpacks/vagos/dlc.rpf diff --git a/ReallifeGamemode.Client/dlcpacks/vagos/dlc.rpf b/ReallifeGamemode.Client/dlcpacks/vagos/dlc.rpf new file mode 100644 index 00000000..d5d31aa5 --- /dev/null +++ b/ReallifeGamemode.Client/dlcpacks/vagos/dlc.rpf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e881ff859b49942bfa942525cb5acac5bd5a123c3febbbec28da3b84acc266b6 +size 98816 From f932e5fe2e099b43e5bfb3a4237eb0e076e4f11e Mon Sep 17 00:00:00 2001 From: hydrant Date: Sun, 2 May 2021 01:19:57 +0200 Subject: [PATCH 074/114] login nachrichten --- ReallifeGamemode.Server/Util/GlobalHelper.cs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/ReallifeGamemode.Server/Util/GlobalHelper.cs b/ReallifeGamemode.Server/Util/GlobalHelper.cs index 8fcd8b3a..3cc9ffca 100644 --- a/ReallifeGamemode.Server/Util/GlobalHelper.cs +++ b/ReallifeGamemode.Server/Util/GlobalHelper.cs @@ -14,6 +14,9 @@ namespace ReallifeGamemode.Server.Util { ".MichaPlays.", "Der echte Ballas Leader ist online (MichaPlays)" }, { "iCroniX", "Life of Malle - Eimer für Alle - Alle für Malle - Böllern! (CroniX)" }, { "balboistderbeste", "Hurra! Hurra! Der Balbo ist jetzt da! (balbo)" }, + { "AirMake", "The fresh breeze of the stone ist back. (AirMake)" }, + { "raviatex", "I'll remember you all in therapy. (aviate)" }, + { "datgame__", "KOPF ENTWICKLUNG!! (hydrant)" } }; public static DateTime CountdownUntil { get; internal set; } From 7ccb58094941db2703d3debbffc8352ff3947cb6 Mon Sep 17 00:00:00 2001 From: Siga Date: Sun, 2 May 2021 02:01:50 +0000 Subject: [PATCH 075/114] Login messages --- ReallifeGamemode.Server/Util/GlobalHelper.cs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/ReallifeGamemode.Server/Util/GlobalHelper.cs b/ReallifeGamemode.Server/Util/GlobalHelper.cs index 3cc9ffca..91c3e025 100644 --- a/ReallifeGamemode.Server/Util/GlobalHelper.cs +++ b/ReallifeGamemode.Server/Util/GlobalHelper.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using GTANetworkAPI; @@ -16,7 +16,8 @@ namespace ReallifeGamemode.Server.Util { "balboistderbeste", "Hurra! Hurra! Der Balbo ist jetzt da! (balbo)" }, { "AirMake", "The fresh breeze of the stone ist back. (AirMake)" }, { "raviatex", "I'll remember you all in therapy. (aviate)" }, - { "datgame__", "KOPF ENTWICKLUNG!! (hydrant)" } + { "datgame__", "KOPF ENTWICKLUNG!! (hydrant)" }, + { "Roachkook", "2head Entwickler ist wieder online (kookroach)" } }; public static DateTime CountdownUntil { get; internal set; } From 81c82f215a7184cb93c7f229a5ebe71575a8767d Mon Sep 17 00:00:00 2001 From: kookroach Date: Sun, 2 May 2021 06:13:53 +0200 Subject: [PATCH 076/114] Disable some Interactions while player is in vehicle or dead. Change Keybind X to Z. --- ReallifeGamemode.Server/Events/Key.cs | 35 ++++++++++++--------------- 1 file changed, 15 insertions(+), 20 deletions(-) diff --git a/ReallifeGamemode.Server/Events/Key.cs b/ReallifeGamemode.Server/Events/Key.cs index f15ad483..b5522c9f 100644 --- a/ReallifeGamemode.Server/Events/Key.cs +++ b/ReallifeGamemode.Server/Events/Key.cs @@ -34,7 +34,7 @@ namespace ReallifeGamemode.Server.Events [RemoteEvent("keyPress:NUM2")] public void KeyPressNUM2(Player player) { - if (!player.IsLoggedIn()) return; + if (!player.IsLoggedIn() || player.GetData("isDead")) return; if (player.GetData("editmode") == true && player.GetUser().IsAdmin(AdminLevel.HEADADMIN) == true) { var saveMode = player.GetData("quicksavemode"); @@ -91,7 +91,7 @@ namespace ReallifeGamemode.Server.Events [RemoteEvent("keyPress:RIGHT_ARROW")] public void KeyPressRightArrow(Player player) { - if (!player.IsLoggedIn()) return; + if (!player.IsLoggedIn() || player.GetData("isDead")) return; User user = player.GetUser(); if (!player.IsDuty()) @@ -116,10 +116,10 @@ namespace ReallifeGamemode.Server.Events [RemoteEvent("keyPress:M")] public void KeyPressM(Player player) { + if (!player.IsLoggedIn() || player.GetData("isDead")) return; using var dbContext = new DatabaseContext(); User u = player.GetUser(dbContext); if (u == null) return; - if (player.GetData("isDead")) return; var vehicles = dbContext.UserVehicles.Where(veh => veh.UserId == u.Id).OrderBy(veh => veh.Id).Select(v => new { @@ -135,7 +135,6 @@ namespace ReallifeGamemode.Server.Events Price = f.BuyPrice }); - Paycheck paycheck = null; if (Economy.Paychecks.ContainsKey(u.Id)) paycheck = Economy.Paychecks[u.Id]; @@ -210,7 +209,7 @@ namespace ReallifeGamemode.Server.Events [RemoteEvent("keyPress:E")] public void KeyPressE(Player player) { - if (!player.IsLoggedIn()) return; + if (!player.IsLoggedIn() || player.GetData("isDead") || player.IsInVehicle) return; var user = player.GetUser(); if (player.HasData("nearATM")) @@ -219,12 +218,9 @@ namespace ReallifeGamemode.Server.Events return; } - if (!player.IsInVehicle) + if (GroundItem.PickUpGroundItem(player)) { - if (GroundItem.PickUpGroundItem(player)) - { - return; - } + return; } DutyPoint nearestDuty = PositionManager.DutyPoints.Find(d => d.Position.DistanceTo(player.Position) <= 1.5 && d.FactionId == user.FactionId); @@ -466,9 +462,7 @@ namespace ReallifeGamemode.Server.Events }); } - player.TriggerEvent("showWeaponMenu", primarys.ToArray(), secondarys.ToArray(), melees.ToArray(), specials.ToArray(), armor.ToArray(), JsonConvert.SerializeObject(timer.ToArray()), JsonConvert.SerializeObject(amountInfos)); - } } if (nearestJailReleasePoint != null) @@ -608,17 +602,18 @@ namespace ReallifeGamemode.Server.Events [RemoteEvent("keyPress:I")] public void KeyPressI(Player player) { - if (!player.IsLoggedIn()) return; + if (!player.IsLoggedIn() || player.GetData("isDead")) return; if (player.GetData("isDead")) return; player.TriggerEvent("inventoryShow"); InventoryManager.SetBackpackItems(player); + } [RemoteEvent("keyPress:J")] public void KeyPressJ(Player player) { - if (!player.IsLoggedIn()) return; + if (!player.IsLoggedIn() || player.GetData("isDead")) return; if (player.GetData("healDecision") == true) { player.ResetData("healDecision"); @@ -626,11 +621,11 @@ namespace ReallifeGamemode.Server.Events return; } - if(player.GetData("SellVehicleDecision") == true && player.HasData("VehicleToSell")) + if (player.GetData("SellVehicleDecision") == true && player.HasData("VehicleToSell")) { InteractionManager.SellServerVehicle(player, player.GetData("VehicleToSell")); player.ResetData("SellVehicleDecision"); - player.ResetData("VehicleToSell"); + player.ResetData("VehicleToSell"); return; } @@ -714,7 +709,7 @@ namespace ReallifeGamemode.Server.Events [RemoteEvent("keyPress:K")] public void KeyPressK(Player player) { - if (!player.IsLoggedIn()) return; + if (!player.IsLoggedIn() || player.GetData("isDead")) return; var user = player.GetUser(); if (user == null) { @@ -774,14 +769,14 @@ namespace ReallifeGamemode.Server.Events [RemoteEvent("keyPress:L")] public void KeyPressL(Player player) { - if (!player.IsLoggedIn()) return; + if (!player.IsLoggedIn() || player.GetData("isDead")) return; DoorManager.ChangeDoorState(player); } [RemoteEvent("keyPress:N")] public void KeyPressN(Player player) { - if (!player.IsLoggedIn()) return; + if (!player.IsLoggedIn() || player.GetData("isDead")) return; if (player.GetData("healDecision") == true) { @@ -875,7 +870,7 @@ namespace ReallifeGamemode.Server.Events [RemoteEvent("keyPress:X")] public void KeyPressX(Player player) { - if (!player.IsLoggedIn()) return; + if (!player.IsLoggedIn() || player.GetData("isDead")) return; if (!player.IsInVehicle) { From 6d675018dc5dc30f8380360e2901c037620030ed Mon Sep 17 00:00:00 2001 From: kookroach Date: Sun, 2 May 2021 06:15:50 +0200 Subject: [PATCH 077/114] Disable some interactions while player is in vehicle or dead. Change keybind mapping from X to Z due to interference with game functions. --- ReallifeGamemode.Client/Player/keys.ts | 6 +++--- ReallifeGamemode.Server/Events/Key.cs | 5 ++--- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/ReallifeGamemode.Client/Player/keys.ts b/ReallifeGamemode.Client/Player/keys.ts index 92ffe3e0..406d79b9 100644 --- a/ReallifeGamemode.Client/Player/keys.ts +++ b/ReallifeGamemode.Client/Player/keys.ts @@ -122,10 +122,10 @@ export default function keys(globalData: IGlobalData) { } }); - //X // Fahrzeug Verwaltung - Menü - mp.keys.bind(0x58, false, function () { + //Z // Fahrzeug Verwaltung - Menü + KeyBinder.bind(0x5A, false, function () { if (!globalData.InChat && !globalData.InMenu && !globalData.InTuning) { - mp.events.callRemote("keyPress:X"); + mp.events.callRemote("keyPress:Z"); } }); diff --git a/ReallifeGamemode.Server/Events/Key.cs b/ReallifeGamemode.Server/Events/Key.cs index b5522c9f..5079b3ee 100644 --- a/ReallifeGamemode.Server/Events/Key.cs +++ b/ReallifeGamemode.Server/Events/Key.cs @@ -116,7 +116,7 @@ namespace ReallifeGamemode.Server.Events [RemoteEvent("keyPress:M")] public void KeyPressM(Player player) { - if (!player.IsLoggedIn() || player.GetData("isDead")) return; + if (!player.IsLoggedIn()) return; using var dbContext = new DatabaseContext(); User u = player.GetUser(dbContext); if (u == null) return; @@ -607,7 +607,6 @@ namespace ReallifeGamemode.Server.Events player.TriggerEvent("inventoryShow"); InventoryManager.SetBackpackItems(player); - } [RemoteEvent("keyPress:J")] @@ -867,7 +866,7 @@ namespace ReallifeGamemode.Server.Events VehicleStreaming.SetEngineState(v, !state); } - [RemoteEvent("keyPress:X")] + [RemoteEvent("keyPress:Z")] public void KeyPressX(Player player) { if (!player.IsLoggedIn() || player.GetData("isDead")) return; From 4bd5e5aa493e74734717417c1d12787c72ca9164 Mon Sep 17 00:00:00 2001 From: kookroach Date: Sun, 2 May 2021 06:19:15 +0200 Subject: [PATCH 078/114] Inventory and onlinelist now pre load on login and open without delay on keybind press. --- ReallifeGamemode.Client/Gui/playerlist.ts | 29 ++-- .../assets/css/onlinelist/style.css | 8 ++ .../assets/html/inventory/inventory.html | 133 ++++++++++-------- .../assets/html/onlinelist/index.html | 79 ++++++----- .../assets/js/onlinelist/script.js | 16 ++- .../inventory/inventory.ts | 83 +++-------- ReallifeGamemode.Server/Events/Login.cs | 3 + .../Managers/InventoryManager.cs | 4 +- 8 files changed, 181 insertions(+), 174 deletions(-) diff --git a/ReallifeGamemode.Client/Gui/playerlist.ts b/ReallifeGamemode.Client/Gui/playerlist.ts index 1d176cba..d714cf2b 100644 --- a/ReallifeGamemode.Client/Gui/playerlist.ts +++ b/ReallifeGamemode.Client/Gui/playerlist.ts @@ -5,30 +5,39 @@ */ export default function playerList(globalData: IGlobalData): void { - var playerlistBrowser: BrowserMp = null; - var pList; + var pList = []; + var loaded = false; var factionPlayersMap: Map = new Map(); const factionIds = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]; - mp.events.add("showPlayerlist", (playersJson) => { + mp.events.add("loadPlayerListCEF", () => { if (playerlistBrowser !== null) { playerlistBrowser.destroy(); - playerlistBrowser = null; - globalData.InMenu = false; - mp.gui.cursor.show(false, false); - mp.gui.chat.activate(true); } - else if (!globalData.InMenu) { + playerlistBrowser = mp.browsers.new('package://assets/html/onlinelist/index.html'); + }); + + mp.events.add("showPlayerlist", (playersJson) => { + if (!globalData.InMenu && !loaded) { globalData.InMenu = true; - playerlistBrowser = mp.browsers.new('package://assets/html/onlinelist/index.html'); + loaded = true; mp.gui.chat.activate(false); mp.gui.cursor.show(true, true); pList = JSON.parse(playersJson); + playerlistBrowser.execute(`showPlayerList()`); + } else if (loaded) { + globalData.InMenu = false; + loaded = false; + mp.gui.cursor.show(false, false); + mp.gui.chat.activate(true); + playerlistBrowser.execute(`closePlayerList()`); } }); mp.events.add("CEF:PlayerList_Loaded", () => { + playerlistBrowser.execute(`clear_row()`); + factionIds.forEach(f => { factionPlayersMap.set(f, 0); }); @@ -54,4 +63,4 @@ export default function playerList(globalData: IGlobalData): void { // table = table + tableRow; // }) // return document.write(table); -//} +//} \ No newline at end of file diff --git a/ReallifeGamemode.Client/assets/css/onlinelist/style.css b/ReallifeGamemode.Client/assets/css/onlinelist/style.css index 9daec4a7..f4793000 100644 --- a/ReallifeGamemode.Client/assets/css/onlinelist/style.css +++ b/ReallifeGamemode.Client/assets/css/onlinelist/style.css @@ -8,7 +8,13 @@ html { -ms-user-select: none; user-select: none; } +.show { + display: show !important; +} +.hidden { + display: none !important; +} html, body { margin: unset; } @@ -209,4 +215,6 @@ ol.inline.stats { ol.inline.stats abbr { text-decoration: none; } + + /*# sourceMappingURL=style.css.map */ diff --git a/ReallifeGamemode.Client/assets/html/inventory/inventory.html b/ReallifeGamemode.Client/assets/html/inventory/inventory.html index 5e537caf..23e0cc6f 100644 --- a/ReallifeGamemode.Client/assets/html/inventory/inventory.html +++ b/ReallifeGamemode.Client/assets/html/inventory/inventory.html @@ -10,76 +10,78 @@ -
    -
    +