From 3cb15837daba6595bd91cde1de4d85c9cf822239 Mon Sep 17 00:00:00 2001 From: kookroach <62265045+kookroach@users.noreply.github.com> Date: Mon, 5 Apr 2021 05:30:06 +0200 Subject: [PATCH 01/50] =?UTF-8?q?=F0=9F=A4=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ReallifeGamemode.Server/Job/MuellmannData.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ReallifeGamemode.Server/Job/MuellmannData.cs b/ReallifeGamemode.Server/Job/MuellmannData.cs index 295205e8..a91d5574 100644 --- a/ReallifeGamemode.Server/Job/MuellmannData.cs +++ b/ReallifeGamemode.Server/Job/MuellmannData.cs @@ -32,7 +32,7 @@ namespace ReallifeGamemode.Server.Job public void removeClientFromData(Player player) { if (client1 == player) { client1 = null; } - if (client2 == player) { client2 = null; } + if (client2 == player) { client2 = null;} } public int getTrashCount() From 39c772487b481e936fdba055fe14f899d77f5098 Mon Sep 17 00:00:00 2001 From: hydrant Date: Mon, 5 Apr 2021 12:11:32 +0200 Subject: [PATCH 02/50] d chat for admins fix when zivi --- ReallifeGamemode.Server/Commands/FactionCommands.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ReallifeGamemode.Server/Commands/FactionCommands.cs b/ReallifeGamemode.Server/Commands/FactionCommands.cs index 8cebc338..147b79dc 100644 --- a/ReallifeGamemode.Server/Commands/FactionCommands.cs +++ b/ReallifeGamemode.Server/Commands/FactionCommands.cs @@ -109,9 +109,9 @@ namespace ReallifeGamemode.Server.Commands string factionName = string.Empty; - if(f.StateOwned) + if(f?.StateOwned ?? false) { - factionName = player.GetUser().GetFactionRank().RankName; + factionName = u.GetFactionRank().RankName; } else { From a6e98a7c795684a7422f303e385e4d7a3a7b6f35 Mon Sep 17 00:00:00 2001 From: hydrant Date: Mon, 5 Apr 2021 12:22:07 +0200 Subject: [PATCH 03/50] reset nametag when in jail --- ReallifeGamemode.Server/Wanted/Jail.cs | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/ReallifeGamemode.Server/Wanted/Jail.cs b/ReallifeGamemode.Server/Wanted/Jail.cs index 54239222..806337b1 100644 --- a/ReallifeGamemode.Server/Wanted/Jail.cs +++ b/ReallifeGamemode.Server/Wanted/Jail.cs @@ -104,18 +104,23 @@ namespace ReallifeGamemode.Server.Wanted { case null: client.SetSharedData("blipColor", 0); + client.SetSharedData("nameTagColor", 0); break; case 8: client.SetSharedData("blipColor", 83); + client.SetSharedData("nameTagColor", 8); break; case 7: client.SetSharedData("blipColor", 52); + client.SetSharedData("nameTagColor", 7); break; case 4: client.SetSharedData("blipColor", 5); + client.SetSharedData("nameTagColor", 4); break; case 9: client.SetSharedData("blipColor", 25); + client.SetSharedData("nameTagColor", 9); break; } From d1fa71167eda77f418f5112a993423359855ed43 Mon Sep 17 00:00:00 2001 From: hydrant Date: Mon, 5 Apr 2021 12:25:39 +0200 Subject: [PATCH 04/50] car output db id when admin --- ReallifeGamemode.Server/Commands/UserCommands.cs | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/ReallifeGamemode.Server/Commands/UserCommands.cs b/ReallifeGamemode.Server/Commands/UserCommands.cs index 5cf6dd91..f61103e3 100644 --- a/ReallifeGamemode.Server/Commands/UserCommands.cs +++ b/ReallifeGamemode.Server/Commands/UserCommands.cs @@ -78,9 +78,12 @@ namespace ReallifeGamemode.Server.Commands return; } - if (pVeh.GetServerVehicle() is ServerVehicle veh) + using var dbContext = new DatabaseContext(); + + if (pVeh.GetServerVehicle(dbContext) is ServerVehicle veh) { - ChatService.SendMessage(player, "~m~" + ((VehicleHash)pVeh.Model) + " | " + veh.ToString() + " | Farbe 1: " + pVeh.PrimaryColor + " | Farbe 2: " + pVeh.SecondaryColor + " | ID: " + pVeh.Handle.Value); + string dbIdStr = player.GetUser(dbContext).IsAdmin(AdminLevel.ADMIN) ? $" | DB-ID: {veh.Id}" : ""; + ChatService.SendMessage(player, "~m~" + ((VehicleHash)pVeh.Model) + " | " + veh.ToString() + " | Farbe 1: " + pVeh.PrimaryColor + " | Farbe 2: " + pVeh.SecondaryColor + " | ID: " + pVeh.Handle.Value + dbIdStr); } else { From 3eddd930371f30bbb3ebaaa6b2982915a3fee61c Mon Sep 17 00:00:00 2001 From: hydrant Date: Mon, 5 Apr 2021 12:52:24 +0200 Subject: [PATCH 05/50] tsupport raus wenn aduty raus --- ReallifeGamemode.Server/Commands/AdminCommands.cs | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/ReallifeGamemode.Server/Commands/AdminCommands.cs b/ReallifeGamemode.Server/Commands/AdminCommands.cs index 2979765b..bcc93fbe 100644 --- a/ReallifeGamemode.Server/Commands/AdminCommands.cs +++ b/ReallifeGamemode.Server/Commands/AdminCommands.cs @@ -354,6 +354,11 @@ namespace ReallifeGamemode.Server.Commands } else { + if(player.GetData("SAdminduty")) + { + CmdAdminTSupport(player); + } + player.SetData("Adminduty", false); ChatService.Broadcast("!{#ee4d2e}[SUPPORT] " + player.Name + " hat sich vom Support abgemeldet"); From 6b3e8bd7cfd9af4877e2a23aed103a78ec5f4a69 Mon Sep 17 00:00:00 2001 From: hydrant Date: Mon, 5 Apr 2021 14:02:46 +0200 Subject: [PATCH 06/50] checkstats supporter --- ReallifeGamemode.Server/Commands/AdminCommands.cs | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/ReallifeGamemode.Server/Commands/AdminCommands.cs b/ReallifeGamemode.Server/Commands/AdminCommands.cs index bcc93fbe..b7a64a36 100644 --- a/ReallifeGamemode.Server/Commands/AdminCommands.cs +++ b/ReallifeGamemode.Server/Commands/AdminCommands.cs @@ -2523,7 +2523,6 @@ namespace ReallifeGamemode.Server.Commands case 9: target.SetSharedData("blipColor", 25); target.SetSharedData("nameTagColor", 9); - break; } dbContext.SaveChanges(); @@ -3642,7 +3641,7 @@ namespace ReallifeGamemode.Server.Commands public void CmdAdminCheckStats(Player player, string nameOrId) { User user = player.GetUser(); - if(!user.IsAdmin(AdminLevel.ADMIN)) + if(!user.IsAdmin(AdminLevel.SUPPORTER)) { ChatService.NotAuthorized(player); } From 64158278722ee803d605c776ed98fd2dc9d9dbe9 Mon Sep 17 00:00:00 2001 From: VegaZ Date: Mon, 5 Apr 2021 14:11:24 +0200 Subject: [PATCH 07/50] Fix nullReference Medic --- ReallifeGamemode.Server/Factions/Medic/Medic.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ReallifeGamemode.Server/Factions/Medic/Medic.cs b/ReallifeGamemode.Server/Factions/Medic/Medic.cs index a9acc028..b5e03f2f 100644 --- a/ReallifeGamemode.Server/Factions/Medic/Medic.cs +++ b/ReallifeGamemode.Server/Factions/Medic/Medic.cs @@ -84,7 +84,7 @@ namespace ReallifeGamemode.Server.Factions.Medic var taskTimeLeft = Math.Abs((Int32)(((DateTimeOffset)actualTime).ToUnixTimeSeconds() - ((DateTimeOffset)task.Time).ToUnixTimeSeconds() - reviveTaskTime)); task.TimeLeft = taskTimeLeft; var medic = PlayerService.GetPlayerByNameOrId(task.MedicName); - if(task.MedicName != "none") medic.TriggerEvent("setTaskTimeLeft", taskTimeLeft); + if(medic != null) medic.TriggerEvent("setTaskTimeLeft", taskTimeLeft); } } } From 3bb70d112e19f06ce0276be1017df9528c13d97a Mon Sep 17 00:00:00 2001 From: VegaZ Date: Mon, 5 Apr 2021 14:15:12 +0200 Subject: [PATCH 08/50] Fix ShapeTonne.destroy() --- ReallifeGamemode.Client/Jobs/RefuseCollector.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/ReallifeGamemode.Client/Jobs/RefuseCollector.ts b/ReallifeGamemode.Client/Jobs/RefuseCollector.ts index e3a73646..ae4efcdd 100644 --- a/ReallifeGamemode.Client/Jobs/RefuseCollector.ts +++ b/ReallifeGamemode.Client/Jobs/RefuseCollector.ts @@ -41,6 +41,7 @@ mp.events.add('SERVER:MuellmannBCSEntfernen', () => { for (var i = 0; i < BlipTonne.length; i++) { if (BlipTonne[i] == null) continue; + if (ShapeTonne[i] == null) continue; BlipTonne[i].destroy(); ShapeTonne[i].destroy(); } From 10939c6f0cfc1cbc92afc552ad5f7fd41688dbda Mon Sep 17 00:00:00 2001 From: hydrant Date: Mon, 5 Apr 2021 14:25:39 +0200 Subject: [PATCH 09/50] item aufheben E --- ReallifeGamemode.Server/Events/Key.cs | 10 ++++++++-- ReallifeGamemode.Server/Inventory/GroundItem.cs | 5 ++++- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/ReallifeGamemode.Server/Events/Key.cs b/ReallifeGamemode.Server/Events/Key.cs index b70039f2..41e08be7 100644 --- a/ReallifeGamemode.Server/Events/Key.cs +++ b/ReallifeGamemode.Server/Events/Key.cs @@ -198,6 +198,14 @@ namespace ReallifeGamemode.Server.Events return; } + if(!player.IsInVehicle) + { + if(GroundItem.PickUpGroundItem(player)) + { + return; + } + } + DutyPoint nearestDuty = PositionManager.DutyPoints.Find(d => d.Position.DistanceTo(player.Position) <= 1.5 && d.FactionId == user.FactionId); WeaponPoint nearestWeapon = PositionManager.WeaponPoints.Find(w => w.Position.DistanceTo(player.Position) <= 1.5 && w.FactionId == user.FactionId); JailReleasePoint nearestJailReleasePoint = PositionManager.JailReleasePoints.Find(j => j.Position.DistanceTo(player.Position) <= 1.5 && (user.FactionId == 1 || user.FactionId == 3) && user.GetData("duty")); @@ -875,8 +883,6 @@ namespace ReallifeGamemode.Server.Events if (!player.IsInVehicle) { Vehicle.VehicleMenuLockCarEvent(player); - - GroundItem.PickUpGroundItem(player); } if (player.IsInVehicle && player.VehicleSeat == 0) diff --git a/ReallifeGamemode.Server/Inventory/GroundItem.cs b/ReallifeGamemode.Server/Inventory/GroundItem.cs index 25f8dcb6..253c1ab4 100644 --- a/ReallifeGamemode.Server/Inventory/GroundItem.cs +++ b/ReallifeGamemode.Server/Inventory/GroundItem.cs @@ -26,7 +26,7 @@ namespace ReallifeGamemode.Server.Inventory GroundTextLabels.Add(grndTextLabel); } - public static void PickUpGroundItem(Player player) + public static bool PickUpGroundItem(Player player) { GroundItem nearest = GroundItems.FirstOrDefault(d => d.Position.DistanceTo(player.Position) <= 1.2); if (nearest != null) @@ -106,7 +106,10 @@ namespace ReallifeGamemode.Server.Inventory NAPI.Player.SetPlayerCurrentWeapon(player, WeaponHash.Unarmed); } } + return true; } + + return false; } public static void RemoveGroundItem(GroundItem grndItem, GTANetworkAPI.Object grndObject, TextLabel grndTextLabel) From 53f46d28c8738948e5705c519bccf6fcbbf1ad8b Mon Sep 17 00:00:00 2001 From: VegaZ Date: Mon, 5 Apr 2021 14:38:33 +0200 Subject: [PATCH 10/50] =?UTF-8?q?M=C3=BCll=20Blip=20h=C3=B6he=20angepasst?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Jobs/RefuseCollector.ts | 2 +- .../Job/RefuseCollectorJob.cs | 234 +++++++++--------- 2 files changed, 119 insertions(+), 117 deletions(-) diff --git a/ReallifeGamemode.Client/Jobs/RefuseCollector.ts b/ReallifeGamemode.Client/Jobs/RefuseCollector.ts index ae4efcdd..88f7a283 100644 --- a/ReallifeGamemode.Client/Jobs/RefuseCollector.ts +++ b/ReallifeGamemode.Client/Jobs/RefuseCollector.ts @@ -29,7 +29,7 @@ vehicle = veh; for (var i = 0; i < posArr.length; i++) { let pos = new mp.Vector3(posArr[i].x, posArr[i].y, posArr[i].z - 1) - BlipTonne.push(mp.blips.new(1, pos, { name: 'Mülltonne', color: 45, shortRange: false })); + BlipTonne.push(mp.blips.new(1, new mp.Vector3(pos.x, pos.y, 1000), { name: 'Mülltonne', color: 45, shortRange: false })); BlipTonne[i].setFlashTimer(2000); ShapeTonne.push(mp.colshapes.newSphere(posArr[i].x, posArr[i].y, posArr[i].z + 0.5, 1.75)); } diff --git a/ReallifeGamemode.Server/Job/RefuseCollectorJob.cs b/ReallifeGamemode.Server/Job/RefuseCollectorJob.cs index 5bdde8eb..cdd1c14e 100644 --- a/ReallifeGamemode.Server/Job/RefuseCollectorJob.cs +++ b/ReallifeGamemode.Server/Job/RefuseCollectorJob.cs @@ -39,131 +39,133 @@ namespace ReallifeGamemode.Server.Job } public static List muellmanData = new List(); + public float blipHeight = 1000; private readonly IReadOnlyCollection vector3s = new List - { - new Vector3(332.9839782714844, -1741.807373046875, 29.73055076599121), - new Vector3(321.3463439941406, -1759.986572265625, 29.644014358520508), - new Vector3(305.2624206542969, -1776.0458984375, 28.871641159057617), - new Vector3(300.1080017089844, -1784.01123046875, 28.438663482666016), - new Vector3(348.7510986328125, -1820.57373046875, 28.89409637451172), - new Vector3(328.7326965332031, -1845.462890625, 27.748090744018555), - new Vector3(439.82269287109375, -1830.4090576171875, 28.36185646057129), - new Vector3(427.9081115722656, -1841.7236328125, 28.463409423828125), - new Vector3(412.9471130371094, -1856.100341796875, 27.32313346862793), - new Vector3(399.9404296875, -1865.1639404296875, 26.716350555419922), - new Vector3(386.0218811035156, -1882.2705078125, 25.788604736328125), - new Vector3(368.0433349609375, -1896.9063720703125, 25.17853355407715), - new Vector3(473.30694580078125, -1775.0206298828125, 28.69390296936035), - new Vector3(475.3251647949219, -1758.085205078125, 28.892553329467773), - new Vector3(479.7771301269531, -1736.3861083984375, 29.151023864746094), - new Vector3(490.24884033203125, -1714.48974609375, 29.618074417114258), - new Vector3(500.4996643066406, -1697.649658203125, 29.78924560546875), - new Vector3(997.3480834960938, -729.1090087890625, 57.81574630737305), - new Vector3(979.4336547851562, -716.036376953125, 58.22065734863281), - new Vector3(970.9692993164062, -700.552978515625, 58.48196029663086), - new Vector3(960.6688232421875, -669.340576171875, 58.44976806640625), - new Vector3(943.6602783203125, -653.6834716796875, 58.4287109375), - new Vector3(929.2879028320312, -639.0972900390625, 58.242271423339844), - new Vector3(903.5896606445312, -616.0307006835938, 58.4549560546875), - new Vector3(886.8736572265625, -607.783447265625, 58.445091247558594), - new Vector3(861.7691650390625, -582.5391845703125, 58.156497955322266), - new Vector3(920.3253784179688, -571.0201416015625, 58.36641311645508), - new Vector3(963.1478881835938, -595.95654296875, 59.902706146240234), - new Vector3(976.3702392578125, -579.7669067382812, 59.63575744628906), - new Vector3(1010.3785400390625, -572.6109008789062, 60.59443283081055), - new Vector3(999.9313354492188, -594.0516357421875, 59.63548278808594), - new Vector3(1200.4964599609375, -576.1556396484375, 69.13911437988281), - new Vector3(1206.1680908203125, -620.3853759765625, 66.43684387207031), - new Vector3(1221.357421875, -668.6166381835938, 63.49313735961914), - new Vector3(1222.5732421875, -697.0482788085938, 60.806724548339844), - new Vector3(1228.840576171875, -725.5143432617188, 60.79587173461914), - new Vector3(1266.1864013671875, -703.4100341796875, 64.55311584472656), - new Vector3(1271.0609130859375, -682.7374267578125, 66.03081512451172), - new Vector3(1265.1763916015625, -647.4813842773438, 67.92143249511719), - new Vector3(1251.595947265625, -621.8599853515625, 69.41301727294922), - new Vector3(1241.6507568359375, -601.6868286132812, 69.42526245117188), - new Vector3(1242.1136474609375, -565.8869018554688, 69.65742492675781), - new Vector3(-1898.0162353515625, 133.0081787109375, 81.85769653320312), - new Vector3(-1960.471435546875, 212.37518310546875, 86.6491470336914), - new Vector3(-1969.3568115234375, 246.49497985839844, 87.61412811279297), - new Vector3(-1995.2470703125, 300.3732604980469, 91.96467590332031), - new Vector3(-2009.92822265625, 445.47509765625, 103.01591491699219), - new Vector3(-1995.321044921875, 590.8935546875, 117.90331268310547), - new Vector3(-1973.7674560546875, 630.2719116210938, 122.53621673583984), - new Vector3(-1929.476806640625, 595.318603515625, 122.28478240966797), - new Vector3(-1939.19873046875, 551.6788330078125, 114.82840728759766), - new Vector3(-1943.7459716796875, 449.3956298828125, 102.92235565185547), - new Vector3(-1932.1275634765625, 362.3074035644531, 93.78870391845703), - new Vector3(-1923.6715087890625, 298.3466796875, 89.28668975830078), - new Vector3(-1874.3028564453125, 201.1282958984375, 84.2945327758789), - new Vector3(-1805.06298828125, 438.19415283203125, 128.7073974609375), - new Vector3(-1540.2606201171875, 421.3618469238281, 110.0140151977539), - new Vector3(-1496.3275146484375, 437.88836669921875, 112.49789428710938), - new Vector3(-1308.279541015625, 449.301513671875, 100.96974182128906), - new Vector3(-1215.8623046875, 458.5867919921875, 91.85366821289062), - new Vector3(-1109.628662109375, -1481.669677734375, 4.9089436531066895), - new Vector3(-1118.3216552734375, -1487.53125, 4.71043586730957), - new Vector3(-1130.783935546875, -1495.6463623046875, 4.425413131713867), - new Vector3(-1108.7491455078125, -1527.6431884765625, 6.779527187347412), - new Vector3(-1078.477783203125, -1524.1884765625, 4.883235454559326), - new Vector3(-1087.1422119140625, -1529.7557373046875, 4.693511486053467), - new Vector3(-1070.019775390625, -1514.546875, 5.107278347015381), - new Vector3(-1058.235595703125, -1540.304443359375, 5.044498920440674), - new Vector3(-1066.30029296875, -1545.3839111328125, 4.898682117462158), - new Vector3(-1077.4962158203125, -1553.4862060546875, 4.626119136810303), - new Vector3(-1085.2286376953125, -1558.1461181640625, 4.497615814208984), - new Vector3(-1026.8060302734375, -1574.6785888671875, 5.1846923828125), - new Vector3(-1022.8525390625, -1615.1187744140625, 5.009416580200195), - new Vector3(-1031.4603271484375, -1620.6160888671875, 5.0109710693359375), - new Vector3(-1754.563720703125, -707.9927368164062, 10.391398429870605), - new Vector3(-1753.5606689453125, -701.3380737304688, 10.276473999023438), - new Vector3(-1780.638427734375, -679.9152221679688, 10.493252754211426), - new Vector3(-1788.612548828125, -671.464599609375, 10.494956970214844), - new Vector3(-1793.9669189453125, -664.3781127929688, 10.487747192382812), - new Vector3(-1803.5460205078125, -662.5227661132812, 10.716209411621094), - new Vector3(-1818.578857421875, -656.5636596679688, 13.811768531799316), - new Vector3(-1824.976806640625, -645.830810546875, 10.946636199951172), - new Vector3(-1836.8272705078125, -631.3432006835938, 10.752060890197754), - new Vector3(-1849.099609375, -632.3333740234375, 11.160981178283691), - new Vector3(-1874.4722900390625, -593.102294921875, 11.885177612304688), - new Vector3(-1880.3685302734375, -588.2398071289062, 11.835262298583984), - new Vector3(-1897.9107666015625, -572.6138916015625, 11.845343589782715), - new Vector3(-1923.3765869140625, -559.2033081054688, 12.060995101928711), - new Vector3(-1947.757080078125, -532.0737915039062, 11.82839584350586), - new Vector3(-1953.445556640625, -526.7276611328125, 11.844695091247559), - new Vector3(-1968.46923828125, -532.5272216796875, 12.170670509338379), - new Vector3(-1968.8458251953125, -523.1318969726562, 11.8456392288208), - new Vector3(-1203.9110107421875, -1021.6611328125, 5.945137977600098), - new Vector3(-1183.8720703125, -1044.6856689453125, 2.1502246856689453), - new Vector3(-1176.88818359375, -1073.1439208984375, 5.906428813934326), - new Vector3(-1145.39697265625, -1127.4779052734375, 6.5086894035339355), - new Vector3(-1128.85546875, -1143.3876953125, 2.8391337394714355), - new Vector3(-1128.4967041015625, -1162.18212890625, 6.494985103607178), - new Vector3(-1082.1358642578125, -1139.9630126953125, 2.158600091934204), - new Vector3(-1069.0244140625, -1161.9306640625, 2.158600091934204), - new Vector3(-1064.1807861328125, -1159.49853515625, 2.15861105918884284), - new Vector3(-1046.37890625, -1159.2188720703125, 2.158600091934204), - new Vector3(-1035.042236328125, -1146.635498046875, 2.158597469329834), - new Vector3(-1025.6204833984375, -1138.19384765625, 2.158599853515625), - new Vector3(-1031.4193115234375, -1109.0096435546875, 2.1585986614227295), - new Vector3(-986.4617309570312, -1122.275390625, 4.545365810394287), - new Vector3(-991.5133056640625, -1104.2479248046875, 2.1503100395202637), - new Vector3(-978.42822265625, -1107.8594970703125, 2.1503751277923584), - new Vector3(-982.0960693359375, -1083.4771728515625, 2.5452053546905518), - new Vector3(-949.2151489257812, -1107.6964111328125, 2.171846866607666), - new Vector3(-945.9578247070312, -1123.4737548828125, 2.1503098011016846), - new Vector3(-921.0493774414062, -1095.1513671875, 2.1503124237060547), - new Vector3(-942.0684204101562, -1077.1378173828125, 2.1503121852874756), - new Vector3(-951.5316772460938, -1078.955078125, 2.1503100395202637), + { + new Vector3(332.9839782714844, -1741.807373046875, 29.73055076599121), + new Vector3(321.3463439941406, -1759.986572265625, 29.644014358520508), + new Vector3(305.2624206542969, -1776.0458984375, 28.871641159057617), + new Vector3(300.1080017089844, -1784.01123046875, 28.438663482666016), + new Vector3(348.7510986328125, -1820.57373046875, 28.89409637451172), + new Vector3(328.7326965332031, -1845.462890625, 27.748090744018555), + new Vector3(439.82269287109375, -1830.4090576171875, 28.36185646057129), + new Vector3(427.9081115722656, -1841.7236328125, 28.463409423828125), + new Vector3(412.9471130371094, -1856.100341796875, 27.32313346862793), + new Vector3(399.9404296875, -1865.1639404296875, 26.716350555419922), + new Vector3(386.0218811035156, -1882.2705078125, 25.788604736328125), + new Vector3(368.0433349609375, -1896.9063720703125, 25.17853355407715), + new Vector3(473.30694580078125, -1775.0206298828125, 28.69390296936035), + new Vector3(475.3251647949219, -1758.085205078125, 28.892553329467773), + new Vector3(479.7771301269531, -1736.3861083984375, 29.151023864746094), + new Vector3(490.24884033203125, -1714.48974609375, 29.618074417114258), + new Vector3(500.4996643066406, -1697.649658203125, 29.78924560546875), + new Vector3(997.3480834960938, -729.1090087890625, 57.81574630737305), + new Vector3(979.4336547851562, -716.036376953125, 58.22065734863281), + new Vector3(970.9692993164062, -700.552978515625, 58.48196029663086), + new Vector3(960.6688232421875, -669.340576171875, 58.44976806640625), + new Vector3(943.6602783203125, -653.6834716796875, 58.4287109375), + new Vector3(929.2879028320312, -639.0972900390625, 58.242271423339844), + new Vector3(903.5896606445312, -616.0307006835938, 58.4549560546875), + new Vector3(886.8736572265625, -607.783447265625, 58.445091247558594), + new Vector3(861.7691650390625, -582.5391845703125, 58.156497955322266), + new Vector3(920.3253784179688, -571.0201416015625, 58.36641311645508), + new Vector3(963.1478881835938, -595.95654296875, 59.902706146240234), + new Vector3(976.3702392578125, -579.7669067382812, 59.63575744628906), + new Vector3(1010.3785400390625, -572.6109008789062, 60.59443283081055), + new Vector3(999.9313354492188, -594.0516357421875, 59.63548278808594), + new Vector3(1200.4964599609375, -576.1556396484375, 69.13911437988281), + new Vector3(1206.1680908203125, -620.3853759765625, 66.43684387207031), + new Vector3(1221.357421875, -668.6166381835938, 63.49313735961914), + new Vector3(1222.5732421875, -697.0482788085938, 60.806724548339844), + new Vector3(1228.840576171875, -725.5143432617188, 60.79587173461914), + new Vector3(1266.1864013671875, -703.4100341796875, 64.55311584472656), + new Vector3(1271.0609130859375, -682.7374267578125, 66.03081512451172), + new Vector3(1265.1763916015625, -647.4813842773438, 67.92143249511719), + new Vector3(1251.595947265625, -621.8599853515625, 69.41301727294922), + new Vector3(1241.6507568359375, -601.6868286132812, 69.42526245117188), + new Vector3(1242.1136474609375, -565.8869018554688, 69.65742492675781), + new Vector3(-1898.0162353515625, 133.0081787109375, 81.85769653320312), + new Vector3(-1960.471435546875, 212.37518310546875, 86.6491470336914), + new Vector3(-1969.3568115234375, 246.49497985839844, 87.61412811279297), + new Vector3(-1995.2470703125, 300.3732604980469, 91.96467590332031), + new Vector3(-2009.92822265625, 445.47509765625, 103.01591491699219), + new Vector3(-1995.321044921875, 590.8935546875, 117.90331268310547), + new Vector3(-1973.7674560546875, 630.2719116210938, 122.53621673583984), + new Vector3(-1929.476806640625, 595.318603515625, 122.28478240966797), + new Vector3(-1939.19873046875, 551.6788330078125, 114.82840728759766), + new Vector3(-1943.7459716796875, 449.3956298828125, 102.92235565185547), + new Vector3(-1932.1275634765625, 362.3074035644531, 93.78870391845703), + new Vector3(-1923.6715087890625, 298.3466796875, 89.28668975830078), + new Vector3(-1874.3028564453125, 201.1282958984375, 84.2945327758789), + new Vector3(-1805.06298828125, 438.19415283203125, 128.7073974609375), + new Vector3(-1540.2606201171875, 421.3618469238281, 110.0140151977539), + new Vector3(-1496.3275146484375, 437.88836669921875, 112.49789428710938), + new Vector3(-1308.279541015625, 449.301513671875, 100.96974182128906), + new Vector3(-1215.8623046875, 458.5867919921875, 91.85366821289062), + new Vector3(-1109.628662109375, -1481.669677734375, 4.9089436531066895), + new Vector3(-1118.3216552734375, -1487.53125, 4.71043586730957), + new Vector3(-1130.783935546875, -1495.6463623046875, 4.425413131713867), + new Vector3(-1108.7491455078125, -1527.6431884765625, 6.779527187347412), + new Vector3(-1078.477783203125, -1524.1884765625, 4.883235454559326), + new Vector3(-1087.1422119140625, -1529.7557373046875, 4.693511486053467), + new Vector3(-1070.019775390625, -1514.546875, 5.107278347015381), + new Vector3(-1058.235595703125, -1540.304443359375, 5.044498920440674), + new Vector3(-1066.30029296875, -1545.3839111328125, 4.898682117462158), + new Vector3(-1077.4962158203125, -1553.4862060546875, 4.626119136810303), + new Vector3(-1085.2286376953125, -1558.1461181640625, 4.497615814208984), + new Vector3(-1026.8060302734375, -1574.6785888671875, 5.1846923828125), + new Vector3(-1022.8525390625, -1615.1187744140625, 5.009416580200195), + new Vector3(-1031.4603271484375, -1620.6160888671875, 5.0109710693359375), + new Vector3(-1754.563720703125, -707.9927368164062, 10.391398429870605), + new Vector3(-1753.5606689453125, -701.3380737304688, 10.276473999023438), + new Vector3(-1780.638427734375, -679.9152221679688, 10.493252754211426), + new Vector3(-1788.612548828125, -671.464599609375, 10.494956970214844), + new Vector3(-1793.9669189453125, -664.3781127929688, 10.487747192382812), + new Vector3(-1803.5460205078125, -662.5227661132812, 10.716209411621094), + new Vector3(-1818.578857421875, -656.5636596679688, 13.811768531799316), + new Vector3(-1824.976806640625, -645.830810546875, 10.946636199951172), + new Vector3(-1836.8272705078125, -631.3432006835938, 10.752060890197754), + new Vector3(-1849.099609375, -632.3333740234375, 11.160981178283691), + new Vector3(-1874.4722900390625, -593.102294921875, 11.885177612304688), + new Vector3(-1880.3685302734375, -588.2398071289062, 11.835262298583984), + new Vector3(-1897.9107666015625, -572.6138916015625, 11.845343589782715), + new Vector3(-1923.3765869140625, -559.2033081054688, 12.060995101928711), + new Vector3(-1947.757080078125, -532.0737915039062, 11.82839584350586), + new Vector3(-1953.445556640625, -526.7276611328125, 11.844695091247559), + new Vector3(-1968.46923828125, -532.5272216796875, 12.170670509338379), + new Vector3(-1968.8458251953125, -523.1318969726562, 11.8456392288208), + new Vector3(-1203.9110107421875, -1021.6611328125, 5.945137977600098), + new Vector3(-1183.8720703125, -1044.6856689453125, 2.1502246856689453), + new Vector3(-1176.88818359375, -1073.1439208984375, 5.906428813934326), + new Vector3(-1145.39697265625, -1127.4779052734375, 6.5086894035339355), + new Vector3(-1128.85546875, -1143.3876953125, 2.8391337394714355), + new Vector3(-1128.4967041015625, -1162.18212890625, 6.494985103607178), + new Vector3(-1082.1358642578125, -1139.9630126953125, 2.158600091934204), + new Vector3(-1069.0244140625, -1161.9306640625, 2.158600091934204), + new Vector3(-1064.1807861328125, -1159.49853515625, 2.15861105918884284), + new Vector3(-1046.37890625, -1159.2188720703125, 2.158600091934204), + new Vector3(-1035.042236328125, -1146.635498046875, 2.158597469329834), + new Vector3(-1025.6204833984375, -1138.19384765625, 2.158599853515625), + new Vector3(-1031.4193115234375, -1109.0096435546875, 2.1585986614227295), + new Vector3(-986.4617309570312, -1122.275390625, 4.545365810394287), + new Vector3(-991.5133056640625, -1104.2479248046875, 2.1503100395202637), + new Vector3(-978.42822265625, -1107.8594970703125, 2.1503751277923584), + new Vector3(-982.0960693359375, -1083.4771728515625, 2.5452053546905518), + new Vector3(-949.2151489257812, -1107.6964111328125, 2.171846866607666), + new Vector3(-945.9578247070312, -1123.4737548828125, 2.1503098011016846), + new Vector3(-921.0493774414062, -1095.1513671875, 2.1503124237060547), + new Vector3(-942.0684204101562, -1077.1378173828125, 2.1503121852874756), + new Vector3(-951.5316772460938, -1078.955078125, 2.1503100395202637), - }.AsReadOnly(); + }.AsReadOnly(); [RemoteEvent("CLIENT:MuellmannJobStarten")] public void MuellmannJobStarten(Player player, Vehicle vehicle) { if (vehicle.Model == (uint)Types.VehicleModel.Trash || vehicle.Model == (uint)Types.VehicleModel.Trash2) { + Vehicle veh; foreach (var data in muellmanData) { From f1c76080ed542b9a0ff489a41f9056eb256e0a40 Mon Sep 17 00:00:00 2001 From: VegaZ Date: Mon, 5 Apr 2021 15:06:24 +0200 Subject: [PATCH 11/50] Fix Revive not setting DB --- .../Commands/FactionCommands.cs | 47 +++++++++---------- 1 file changed, 23 insertions(+), 24 deletions(-) diff --git a/ReallifeGamemode.Server/Commands/FactionCommands.cs b/ReallifeGamemode.Server/Commands/FactionCommands.cs index 147b79dc..4d760f2c 100644 --- a/ReallifeGamemode.Server/Commands/FactionCommands.cs +++ b/ReallifeGamemode.Server/Commands/FactionCommands.cs @@ -296,7 +296,6 @@ namespace ReallifeGamemode.Server.Commands return; } - using var dbContext = new DatabaseContext(); var nearPlayers = NAPI.Player.GetPlayersInRadiusOfPlayer(4, player); var deadPlayer = nearPlayers.Where(i => i.GetData("isDead") == true).FirstOrDefault(); if (player == deadPlayer) @@ -310,35 +309,35 @@ namespace ReallifeGamemode.Server.Commands ChatService.ErrorMessage(player, "Es wurde kein toter Spieler gefunden"); return; } - - var deadPlayerUser = deadPlayer.GetUser(dbContext); - - if (deadPlayerUser.Handmoney >= 100) + using (var dbContext = new DatabaseContext()) { - deadPlayerUser.Handmoney -= 100; - } - else - { - int bankMoney = 100 - deadPlayerUser.Handmoney; - deadPlayerUser.Handmoney = 0; - deadPlayerUser.BankAccount.Balance -= bankMoney; - } + var deadPlayerUser = deadPlayer.GetUser(dbContext); - dbContext.Factions.Include(f => f.BankAccount).Where(f => f.Id == 2).First().BankAccount.Balance += Medic.ReviveIncome; + if (deadPlayerUser.Handmoney >= 100) + { + deadPlayerUser.Handmoney -= 100; + } + else + { + int bankMoney = 100 - deadPlayerUser.Handmoney; + deadPlayerUser.Handmoney = 0; + deadPlayerUser.BankAccount.Balance -= bankMoney; + } + + dbContext.Factions.Include(f => f.BankAccount).Where(f => f.Id == 2).First().BankAccount.Balance += Medic.ReviveIncome; - dbContext.SaveChanges(); + dbContext.SaveChanges(); - player.PlayAnimation("amb@medic@standing@kneel@enter", "enter", 0); + player.PlayAnimation("amb@medic@standing@kneel@enter", "enter", 0); - deadPlayer.TriggerEvent("onPlayerRevived"); - player.TriggerEvent("destroyMedicTaskCheckpoint"); - deadPlayer.SendNotification($"Du wurdest von ~y~{player.Name}~s~ für ~g~{100.ToMoneyString()} ~s~wiederbelebt."); - player.SendNotification($"Du hast ~y~{deadPlayer.Name}~s~ wiederbelebt und ~g~{Medic.ReviveIncome}$ ~s~für die Fraktion verdient."); - deadPlayer.SetData("isDead", false); - using (var dbContext1 = new DatabaseContext()) - { + deadPlayer.TriggerEvent("onPlayerRevived"); + player.TriggerEvent("destroyMedicTaskCheckpoint"); + deadPlayer.SendNotification($"Du wurdest von ~y~{player.Name}~s~ für ~g~{100.ToMoneyString()} ~s~wiederbelebt."); + player.SendNotification($"Du hast ~y~{deadPlayer.Name}~s~ wiederbelebt und ~g~{Medic.ReviveIncome}$ ~s~für die Fraktion verdient."); + deadPlayer.SetData("isDead", false); + User u; - u = deadPlayer.GetUser(dbContext1); + u = deadPlayer.GetUser(dbContext); u.Dead = false; dbContext.SaveChanges(); } From 9ac0a15d13c4ab1a979e2954865df6ce6a96578b Mon Sep 17 00:00:00 2001 From: VegaZ Date: Mon, 5 Apr 2021 15:07:13 +0200 Subject: [PATCH 12/50] Fix Revive not setting DB --- ReallifeGamemode.Server/Commands/FactionCommands.cs | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/ReallifeGamemode.Server/Commands/FactionCommands.cs b/ReallifeGamemode.Server/Commands/FactionCommands.cs index 4d760f2c..c2fbe406 100644 --- a/ReallifeGamemode.Server/Commands/FactionCommands.cs +++ b/ReallifeGamemode.Server/Commands/FactionCommands.cs @@ -323,11 +323,7 @@ namespace ReallifeGamemode.Server.Commands deadPlayerUser.Handmoney = 0; deadPlayerUser.BankAccount.Balance -= bankMoney; } - - dbContext.Factions.Include(f => f.BankAccount).Where(f => f.Id == 2).First().BankAccount.Balance += Medic.ReviveIncome; - - dbContext.SaveChanges(); - + player.PlayAnimation("amb@medic@standing@kneel@enter", "enter", 0); deadPlayer.TriggerEvent("onPlayerRevived"); @@ -335,7 +331,9 @@ namespace ReallifeGamemode.Server.Commands deadPlayer.SendNotification($"Du wurdest von ~y~{player.Name}~s~ für ~g~{100.ToMoneyString()} ~s~wiederbelebt."); player.SendNotification($"Du hast ~y~{deadPlayer.Name}~s~ wiederbelebt und ~g~{Medic.ReviveIncome}$ ~s~für die Fraktion verdient."); deadPlayer.SetData("isDead", false); - + + dbContext.Factions.Include(f => f.BankAccount).Where(f => f.Id == 2).First().BankAccount.Balance += Medic.ReviveIncome; + User u; u = deadPlayer.GetUser(dbContext); u.Dead = false; From 27dc16a1e7689477a91e4e30f76047f50b33e89b Mon Sep 17 00:00:00 2001 From: hydrant Date: Mon, 5 Apr 2021 14:28:27 +0200 Subject: [PATCH 13/50] veh command heading --- ReallifeGamemode.Server/Commands/AdminCommands.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ReallifeGamemode.Server/Commands/AdminCommands.cs b/ReallifeGamemode.Server/Commands/AdminCommands.cs index b7a64a36..21ab38af 100644 --- a/ReallifeGamemode.Server/Commands/AdminCommands.cs +++ b/ReallifeGamemode.Server/Commands/AdminCommands.cs @@ -1578,7 +1578,7 @@ namespace ReallifeGamemode.Server.Commands return; } - Vehicle v = NAPI.Vehicle.CreateVehicle(uHash, player.Position, player.Rotation.Z, color1, color2, engine: true); + Vehicle v = NAPI.Vehicle.CreateVehicle(uHash, player.Position, player.Heading, color1, color2, engine: true); VehicleStreaming.SetEngineState(v, true); VehicleStreaming.SetLockStatus(v, false); player.SetIntoVehicle(v.Handle, 0); From 48b27f952f554dedfa831fda3e935ebd30b7bd5a Mon Sep 17 00:00:00 2001 From: hydrant Date: Mon, 5 Apr 2021 14:52:04 +0200 Subject: [PATCH 14/50] fix grounditem pickup --- ReallifeGamemode.Server/Inventory/GroundItem.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ReallifeGamemode.Server/Inventory/GroundItem.cs b/ReallifeGamemode.Server/Inventory/GroundItem.cs index 253c1ab4..4c6ca743 100644 --- a/ReallifeGamemode.Server/Inventory/GroundItem.cs +++ b/ReallifeGamemode.Server/Inventory/GroundItem.cs @@ -39,7 +39,7 @@ namespace ReallifeGamemode.Server.Inventory UserItem existingItem = InventoryManager.UserHasThisItem(player, nearest.ItemId); var user = player.GetUser(); if (player.HasAttachment("ammobox")) - { player.SendNotification("~r~Du kannst momentan nichts tragen!", false); return; } + { player.SendNotification("~r~Du kannst momentan nichts tragen!", false); return false; } if (nearestItem.Gewicht * nearest.Amount + invWeight > 40000) { for (var i = 1; i <= nearest.Amount; i++) From 23b0d7631d2e155b8cc7a7456a7ac50a6deb5b5b Mon Sep 17 00:00:00 2001 From: VegaZ Date: Mon, 5 Apr 2021 15:08:37 +0200 Subject: [PATCH 15/50] Fix Revive not setting DB --- ReallifeGamemode.Server/Commands/FactionCommands.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ReallifeGamemode.Server/Commands/FactionCommands.cs b/ReallifeGamemode.Server/Commands/FactionCommands.cs index c2fbe406..236320a4 100644 --- a/ReallifeGamemode.Server/Commands/FactionCommands.cs +++ b/ReallifeGamemode.Server/Commands/FactionCommands.cs @@ -292,7 +292,7 @@ namespace ReallifeGamemode.Server.Commands if (player.IsInVehicle) { - ChatService.ErrorMessage(player, "Du kannst in einem Auto nicht wiederbeleben."); + ChatService.ErrorMessage(player, "Du kannst in einem Auto nicht wiederbeleben"); return; } @@ -300,7 +300,7 @@ namespace ReallifeGamemode.Server.Commands var deadPlayer = nearPlayers.Where(i => i.GetData("isDead") == true).FirstOrDefault(); if (player == deadPlayer) { - ChatService.ErrorMessage(player, "Du kannst dich nicht selbst wiederbeleben."); + ChatService.ErrorMessage(player, "Du kannst dich nicht selbst wiederbeleben"); return; } From 8043f3c35b16092817eb3b852fcfa3be38a1b288 Mon Sep 17 00:00:00 2001 From: kookroach Date: Mon, 5 Apr 2021 15:32:48 +0200 Subject: [PATCH 16/50] Refactor Code in RefuseCollector.ts --- .../Jobs/RefuseCollector.ts | 190 +++++++++--------- .../Job/RefuseCollectorJob.cs | 18 +- 2 files changed, 104 insertions(+), 104 deletions(-) diff --git a/ReallifeGamemode.Client/Jobs/RefuseCollector.ts b/ReallifeGamemode.Client/Jobs/RefuseCollector.ts index 88f7a283..bfa1b73c 100644 --- a/ReallifeGamemode.Client/Jobs/RefuseCollector.ts +++ b/ReallifeGamemode.Client/Jobs/RefuseCollector.ts @@ -1,20 +1,19 @@ export default function RefuseCollector() { var State = false; - var Traegt = false; - var HintenVoll = false; + var hasBinBag = false; + var dumptruckIsFull = false; - var BlipTonneHinten = null; - var CheckpointTonneHinten = null; - var ShapeTonneHinten = null; - var BlipTonneBase = null; - var CheckpointTonneBase = null; - var ShapeTonneBase = null; + var blipDumptruck = null; + var dumptruckMarker = null; + var colshapeDumptruck = null; + var blipBase = null; + var markerBase = null; + var colshapeBase = null; var vehicle = null; var interval = null; - var BlipTonne = []; - var ShapeTonne = []; + var garbageToCollect = new Map(); mp.events.add('SERVER:MuellmannStatusTrue', () => { State = true; @@ -29,104 +28,109 @@ vehicle = veh; for (var i = 0; i < posArr.length; i++) { let pos = new mp.Vector3(posArr[i].x, posArr[i].y, posArr[i].z - 1) - BlipTonne.push(mp.blips.new(1, new mp.Vector3(pos.x, pos.y, 1000), { name: 'Mülltonne', color: 45, shortRange: false })); - BlipTonne[i].setFlashTimer(2000); - ShapeTonne.push(mp.colshapes.newSphere(posArr[i].x, posArr[i].y, posArr[i].z + 0.5, 1.75)); + + let newBlip = mp.blips.new(1, new mp.Vector3(pos.x, pos.y, 1000), { name: 'Mülltonne', color: 45, shortRange: false }); + let newColShape = mp.colshapes.newSphere(posArr[i].x, posArr[i].y, posArr[i].z + 0.5, 1.75); + + newBlip.setFlashTimer(2000); + + garbageToCollect.set(newBlip, newColShape); } - BlipTonneBase = mp.blips.new(1, new mp.Vector3(-442.3999, -1701.5234, 18.933002 - 1), { name: 'Recylinganlage', color: 5, shortRange: false }); - CheckpointTonneBase = mp.markers.new(1, new mp.Vector3(-442.3999, -1701.5234, 18.933002 - 1), 10, { direction: new mp.Vector3(-235.5747, -1685.475, 32.7207), color: [255, 255, 0, 150], visible: true, dimension: 0 }); - ShapeTonneBase = mp.colshapes.newSphere(-442.3999, -1701.5234, 18.933002 - 1, 10); + blipBase = mp.blips.new(1, new mp.Vector3(-442.3999, -1701.5234, 18.933002 - 1), { name: 'Recylinganlage', color: 5, shortRange: false }); + markerBase = mp.markers.new(1, new mp.Vector3(-442.3999, -1701.5234, 18.933002 - 1), 10, { direction: new mp.Vector3(-235.5747, -1685.475, 32.7207), color: [255, 255, 0, 150], visible: true, dimension: 0 }); + colshapeBase = mp.colshapes.newSphere(-442.3999, -1701.5234, 18.933002 - 1, 10); }); mp.events.add('SERVER:MuellmannBCSEntfernen', () => { - for (var i = 0; i < BlipTonne.length; i++) { - if (BlipTonne[i] == null) continue; - if (ShapeTonne[i] == null) continue; - BlipTonne[i].destroy(); - ShapeTonne[i].destroy(); - } - BlipTonne = []; - ShapeTonne = []; + garbageToCollect.forEach((colshape, blip) => { + if (colshape) + colshape.destroy(); + if (blip) + blip.destroy(); + }); - if (BlipTonneHinten) BlipTonneHinten.destroy(); - BlipTonneHinten = null; - if (CheckpointTonneHinten) CheckpointTonneHinten.destroy(); - CheckpointTonneHinten = null; - if (ShapeTonneHinten) ShapeTonneHinten.destroy(); - ShapeTonneHinten = null; - if (BlipTonneBase) BlipTonneBase.destroy(); - BlipTonneBase = null; - if (CheckpointTonneBase) CheckpointTonneBase.destroy(); - CheckpointTonneBase = null; - if (ShapeTonneBase) ShapeTonneBase.destroy(); - ShapeTonneBase = null; - Traegt = false; + garbageToCollect.clear(); + + if (blipDumptruck) blipDumptruck.destroy(); + blipDumptruck = null; + if (dumptruckMarker) dumptruckMarker.destroy(); + dumptruckMarker = null; + if (colshapeDumptruck) colshapeDumptruck.destroy(); + colshapeDumptruck = null; + if (blipBase) blipBase.destroy(); + blipBase = null; + if (markerBase) markerBase.destroy(); + markerBase = null; + if (colshapeBase) colshapeBase.destroy(); + colshapeBase = null; + hasBinBag = false; }); - mp.events.add("playerEnterColshape", (Shape, player) => { + mp.events.add("playerEnterColshape", (currentShape, player) => { //mp.events.callRemote('CLIENT:ImShape', JSON.stringify(Shape)); - for (var i = 0; i < ShapeTonne.length; i++) { - if (Shape != ShapeTonne[i]) continue; - if (!mp.players.local.vehicle) { - if (!Traegt) { - if (!HintenVoll) { - mp.events.callRemote('CLIENT:MuellmannImShape', i); - Traegt = true; - BlipTonne[i].destroy(); - BlipTonne[i] = null; - ShapeTonne[i].destroy(); - ShapeTonne[i] = null; - interval = setInterval(function () { createMarker(); }, 2); - } - else { - mp.gui.chat.push("Der Müllwagen ist bereits voll! Fahre zur Base und lade ab!"); - return; - } - } - else { - mp.gui.chat.push(`Du trägst bereits einen Müllsack!`); - return; - } + garbageToCollect.forEach((colshape, blip) => { + if (!colshape || colshape != currentShape) return; + + if (mp.players.local.vehicle) { mp.events.call("renderTextOnScreen", "Steige aus dem Müllwagen aus um den Müllsack zu entnehmen."); return; } + if (hasBinBag) { mp.gui.chat.push("Du trägst bereits einen Müllsack!"); return; } + + if (!dumptruckIsFull) { + mp.events.callRemote('CLIENT:MuellmannImShape', JSON.stringify(blip)); + hasBinBag = true; + + if (colshape) + colshape.destroy(); + if (blip) + blip.destroy(); + + interval = setInterval(function () { createMarker(); }, 2); } else { - mp.events.call("renderTextOnScreen", "Steige aus dem Müllwagen aus um den Müllsack zu entnehmen."); + mp.gui.chat.push("Der Müllwagen ist bereits voll! Fahre zur Base und lade ab!"); + return; } - } - if (Shape == ShapeTonneHinten) { - if (Traegt) { - Traegt = false; + }); + + if (currentShape == colshapeDumptruck) { + if (!hasBinBag) { + hasBinBag = false; mp.events.callRemote('CLIENT:MuellmannAddSack'); clearInterval(interval); - if (BlipTonneHinten) BlipTonneHinten.destroy(); - BlipTonneHinten = null; - if (CheckpointTonneHinten) CheckpointTonneHinten.destroy(); - CheckpointTonneHinten = null; - if (ShapeTonneHinten) ShapeTonneHinten.destroy(); - ShapeTonneHinten = null; + if (blipDumptruck) blipDumptruck.destroy(); + blipDumptruck = null; + if (dumptruckMarker) dumptruckMarker.destroy(); + dumptruckMarker = null; + if (colshapeDumptruck) colshapeDumptruck.destroy(); + colshapeDumptruck = null; } } - else if (Shape == ShapeTonneBase) { - BlipTonneBase.setRoute(false); + else if (currentShape == colshapeBase) { + blipBase.setRoute(false); mp.events.callRemote('CLIENT:MuellmannBaseSack'); - HintenVoll = false; + dumptruckIsFull = false; } }); - mp.events.add("MuellmannUpdateColshape", (index) => { - if (BlipTonne[index] != null) - BlipTonne[index].destroy(); - BlipTonne[index] = null; - if (ShapeTonne[index] != null) - ShapeTonne[index].destroy(); - ShapeTonne[index] = null; + mp.events.add("MuellmannUpdateColshape", (jsonIdentifier) => { + var blip = JSON.parse(jsonIdentifier); + if (!garbageToCollect.has(blip)) return; + + var colShape = garbageToCollect.get(blip); + + if (blip) + blip.destroy(); + if (colShape) + colShape.destroy(); + + garbageToCollect.delete(blip); }); mp.events.add("SERVER:MuellmannZuBase", () => { - BlipTonneBase.setRoute(true); - BlipTonneBase.setRouteColour(5); - HintenVoll = true; + blipBase.setRoute(true); + blipBase.setRouteColour(5); + dumptruckIsFull = true; }); function createMarker() { @@ -154,15 +158,15 @@ let pos = plateVec.add(temp); - if (BlipTonneHinten) BlipTonneHinten.destroy(); - BlipTonneHinten = null; - if (CheckpointTonneHinten) CheckpointTonneHinten.destroy(); - CheckpointTonneHinten = null; - if (ShapeTonneHinten) ShapeTonneHinten.destroy(); - ShapeTonneHinten = null; - BlipTonneHinten = mp.blips.new(318, pos, { name: 'Müllmann', color: 24, shortRange: false }); - CheckpointTonneHinten = mp.markers.new(1, pos, 1, { direction: new mp.Vector3(-235.5747, -1685.475, 32.7207), color: [0, 255, 0, 255], visible: true, dimension: 0 }); - ShapeTonneHinten = mp.colshapes.newSphere(pos.x, pos.y, pos.z, 2); + if (blipDumptruck) blipDumptruck.destroy(); + blipDumptruck = null; + if (dumptruckMarker) dumptruckMarker.destroy(); + dumptruckMarker = null; + if (colshapeDumptruck) colshapeDumptruck.destroy(); + colshapeDumptruck = null; + blipDumptruck = mp.blips.new(318, pos, { name: 'Müllmann', color: 24, shortRange: false }); + dumptruckMarker = mp.markers.new(1, pos, 1, { direction: new mp.Vector3(-235.5747, -1685.475, 32.7207), color: [0, 255, 0, 255], visible: true, dimension: 0 }); + colshapeDumptruck = mp.colshapes.newSphere(pos.x, pos.y, pos.z, 2); } }; } \ No newline at end of file diff --git a/ReallifeGamemode.Server/Job/RefuseCollectorJob.cs b/ReallifeGamemode.Server/Job/RefuseCollectorJob.cs index cdd1c14e..b6296482 100644 --- a/ReallifeGamemode.Server/Job/RefuseCollectorJob.cs +++ b/ReallifeGamemode.Server/Job/RefuseCollectorJob.cs @@ -19,7 +19,7 @@ namespace ReallifeGamemode.Server.Job public override bool NeedVehicleToStart => false; - const int MAX_BAG = 40; + private const int MAX_BAG = 40; public RefuseCollectorJob() { @@ -157,7 +157,6 @@ namespace ReallifeGamemode.Server.Job new Vector3(-921.0493774414062, -1095.1513671875, 2.1503124237060547), new Vector3(-942.0684204101562, -1077.1378173828125, 2.1503121852874756), new Vector3(-951.5316772460938, -1078.955078125, 2.1503100395202637), - }.AsReadOnly(); [RemoteEvent("CLIENT:MuellmannJobStarten")] @@ -165,7 +164,6 @@ namespace ReallifeGamemode.Server.Job { if (vehicle.Model == (uint)Types.VehicleModel.Trash || vehicle.Model == (uint)Types.VehicleModel.Trash2) { - Vehicle veh; foreach (var data in muellmanData) { @@ -192,7 +190,7 @@ namespace ReallifeGamemode.Server.Job if (data.hasFreePlace()) { - if(data.vehicle != null) + if (data.vehicle != null) data.vehicle.GetServerVehicle().Spawn(data.vehicle); muellmanData.Remove(data); return; @@ -211,13 +209,13 @@ namespace ReallifeGamemode.Server.Job } [RemoteEvent("CLIENT:MuellmannImShape")] - public void MuellmannImShape(Player player, int colshapeIndex) + public void MuellmannImShape(Player player, string jsonIdentifier) { foreach (var data in muellmanData) { if (data.getDataFromClient(player) == null) continue; Player target = data.getPartnerClient(player); - if (target != null) target.TriggerEvent("MuellmannUpdateColshape", colshapeIndex); + if (target != null) target.TriggerEvent("MuellmannUpdateColshape", jsonIdentifier); player.TriggerEvent("renderTextOnScreen", "Wirf den Müllsack in den Müllwagen."); player.AddAttachment("binbag", false); return; @@ -260,19 +258,17 @@ namespace ReallifeGamemode.Server.Job } player.TriggerEvent("SERVER:MuellmannZuBase"); } - else if(data.getTrashCount() > MAX_BAG) + else if (data.getTrashCount() > MAX_BAG) { data.setTrashCount(MAX_BAG); ChatService.ErrorMessage((Player)player, "Der Müllwagen ist schon voll."); } else { - if (target != null) { user1.Wage += 25; user2.Wage += 25; - } else { @@ -307,13 +303,13 @@ namespace ReallifeGamemode.Server.Job if (target != null) { user1.Wage += (int)(bonus / 2); - user2.Wage += (int)(bonus / 2); + user2.Wage += (int)(bonus / 2); } else { user1.Wage += bonus; } - + data.setTrashCount(0); dbContext.SaveChanges(); From b49cbffb328e8a44098d6a23234aa77480fd085b Mon Sep 17 00:00:00 2001 From: kookroach Date: Mon, 5 Apr 2021 15:55:41 +0200 Subject: [PATCH 17/50] try fix Job --- .../Jobs/RefuseCollector.ts | 26 +++++++++++-------- .../Job/RefuseCollectorJob.cs | 4 +-- 2 files changed, 17 insertions(+), 13 deletions(-) diff --git a/ReallifeGamemode.Client/Jobs/RefuseCollector.ts b/ReallifeGamemode.Client/Jobs/RefuseCollector.ts index bfa1b73c..22cd3d2c 100644 --- a/ReallifeGamemode.Client/Jobs/RefuseCollector.ts +++ b/ReallifeGamemode.Client/Jobs/RefuseCollector.ts @@ -43,9 +43,9 @@ }); mp.events.add('SERVER:MuellmannBCSEntfernen', () => { garbageToCollect.forEach((colshape, blip) => { - if (colshape) + if (colshape && mp.colshapes.exists(colshape)) colshape.destroy(); - if (blip) + if (blip && mp.blips.exists(blip)) blip.destroy(); }); @@ -76,7 +76,7 @@ if (hasBinBag) { mp.gui.chat.push("Du trägst bereits einen Müllsack!"); return; } if (!dumptruckIsFull) { - mp.events.callRemote('CLIENT:MuellmannImShape', JSON.stringify(blip)); + mp.events.callRemote('CLIENT:MuellmannImShape', blip.getCoords()); hasBinBag = true; if (colshape) @@ -113,18 +113,22 @@ dumptruckIsFull = false; } }); - mp.events.add("MuellmannUpdateColshape", (jsonIdentifier) => { - var blip = JSON.parse(jsonIdentifier); - if (!garbageToCollect.has(blip)) return; + mp.events.add("MuellmannUpdateColshape", (vector3) => { + let currBlip; + garbageToCollect.forEach((colShape, blip) => { + if (blip.getCoords == vector3) currBlip = blip; + }); - var colShape = garbageToCollect.get(blip); + if (!garbageToCollect.has(currBlip)) return; - if (blip) - blip.destroy(); - if (colShape) + var colShape = garbageToCollect.get(currBlip); + + if (currBlip && mp.blips.exists(currBlip)) + currBlip.destroy(); + if (colShape && mp.colshapes.exists(colShape)) colShape.destroy(); - garbageToCollect.delete(blip); + garbageToCollect.delete(currBlip); }); mp.events.add("SERVER:MuellmannZuBase", () => { diff --git a/ReallifeGamemode.Server/Job/RefuseCollectorJob.cs b/ReallifeGamemode.Server/Job/RefuseCollectorJob.cs index b6296482..204b6010 100644 --- a/ReallifeGamemode.Server/Job/RefuseCollectorJob.cs +++ b/ReallifeGamemode.Server/Job/RefuseCollectorJob.cs @@ -209,13 +209,13 @@ namespace ReallifeGamemode.Server.Job } [RemoteEvent("CLIENT:MuellmannImShape")] - public void MuellmannImShape(Player player, string jsonIdentifier) + public void MuellmannImShape(Player player, Vector3 blipCoords) { foreach (var data in muellmanData) { if (data.getDataFromClient(player) == null) continue; Player target = data.getPartnerClient(player); - if (target != null) target.TriggerEvent("MuellmannUpdateColshape", jsonIdentifier); + if (target != null) target.TriggerEvent("MuellmannUpdateColshape", blipCoords); player.TriggerEvent("renderTextOnScreen", "Wirf den Müllsack in den Müllwagen."); player.AddAttachment("binbag", false); return; From 7d68532b74464f821099e665416f5f2bea6dcc42 Mon Sep 17 00:00:00 2001 From: hydrant Date: Mon, 5 Apr 2021 15:36:56 +0200 Subject: [PATCH 18/50] =?UTF-8?q?gef=C3=A4ngnis=20pc=20nullreference=20fix?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ReallifeGamemode.Server/Events/Key.cs | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/ReallifeGamemode.Server/Events/Key.cs b/ReallifeGamemode.Server/Events/Key.cs index 41e08be7..e5aef019 100644 --- a/ReallifeGamemode.Server/Events/Key.cs +++ b/ReallifeGamemode.Server/Events/Key.cs @@ -513,6 +513,11 @@ namespace ReallifeGamemode.Server.Events foreach (Player target in NAPI.Pools.GetAllPlayers()) { User c = target.GetUser(); + if(c == null) + { + continue; + } + if (c.JailTime > 0) { criminals.Add(c.Name); From 88cf30897ceb739bdee6edf55b1751e2ee0666d0 Mon Sep 17 00:00:00 2001 From: hydrant Date: Mon, 5 Apr 2021 15:57:55 +0200 Subject: [PATCH 19/50] fix expired vehicle error --- .../core/rage-mp/entities.ts | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/ReallifeGamemode.Client/core/rage-mp/entities.ts b/ReallifeGamemode.Client/core/rage-mp/entities.ts index df59090c..537c765e 100644 --- a/ReallifeGamemode.Client/core/rage-mp/entities.ts +++ b/ReallifeGamemode.Client/core/rage-mp/entities.ts @@ -203,26 +203,50 @@ class RageVehicle extends RageEntity implements IVehicle { } isSeatFree(seat: VehicleSeat): boolean { + if (!mp.vehicles.exists(this.vehicle)) { + return false; + } + return this.vehicle.isSeatFree(seat - 1); } setEngineStatus(status: boolean, instantly: boolean, otherwise: boolean) { + if (!mp.vehicles.exists(this.vehicle)) { + return false; + } + this.vehicle.setEngineOn(status, instantly, otherwise); } setUndriveable(status: boolean) { + if (!mp.vehicles.exists(this.vehicle)) { + return false; + } + this.vehicle.setUndriveable(status); } setDoorsLocked(state: boolean) { + if (!mp.vehicles.exists(this.vehicle)) { + return false; + } + this.vehicle.setDoorsLocked(state ? 2 : 1); } setDoorOpen(door: number, loose: boolean, instantly: boolean) { + if (!mp.vehicles.exists(this.vehicle)) { + return false; + } + this.vehicle.setDoorOpen(door, loose, instantly); } setDoorShut(door: number, instantly: boolean) { + if (!mp.vehicles.exists(this.vehicle)) { + return false; + } + this.vehicle.setDoorShut(door, instantly); } } From 96c72c08b76ba71bc27c9be698995693d03ce9b4 Mon Sep 17 00:00:00 2001 From: kookroach Date: Mon, 5 Apr 2021 16:11:12 +0200 Subject: [PATCH 20/50] fix vehicle --- ReallifeGamemode.Client/Jobs/RefuseCollector.ts | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/ReallifeGamemode.Client/Jobs/RefuseCollector.ts b/ReallifeGamemode.Client/Jobs/RefuseCollector.ts index 22cd3d2c..ee303567 100644 --- a/ReallifeGamemode.Client/Jobs/RefuseCollector.ts +++ b/ReallifeGamemode.Client/Jobs/RefuseCollector.ts @@ -9,7 +9,7 @@ var blipBase = null; var markerBase = null; var colshapeBase = null; - var vehicle = null; + var vehRemoteID = null; var interval = null; @@ -23,9 +23,9 @@ State = false; }); - mp.events.add('SERVER:MuellmannBCSErstellen', (jsonPosArr, veh) => { + mp.events.add('SERVER:MuellmannBCSErstellen', (jsonPosArr, veh: VehicleMp) => { let posArr = JSON.parse(jsonPosArr); - vehicle = veh; + vehRemoteID = veh.remoteId; for (var i = 0; i < posArr.length; i++) { let pos = new mp.Vector3(posArr[i].x, posArr[i].y, posArr[i].z - 1) @@ -70,7 +70,7 @@ //mp.events.callRemote('CLIENT:ImShape', JSON.stringify(Shape)); garbageToCollect.forEach((colshape, blip) => { - if (!colshape || colshape != currentShape) return; + if (!colshape || colshape != currentShape) { return; } if (mp.players.local.vehicle) { mp.events.call("renderTextOnScreen", "Steige aus dem Müllwagen aus um den Müllsack zu entnehmen."); return; } if (hasBinBag) { mp.gui.chat.push("Du trägst bereits einen Müllsack!"); return; } @@ -92,6 +92,7 @@ } }); + mp.gui.chat.push("test"); if (currentShape == colshapeDumptruck) { if (!hasBinBag) { hasBinBag = false; @@ -138,6 +139,9 @@ }); function createMarker() { + let vehicle; + if (vehRemoteID) + vehicle = mp.vehicles.atRemoteId(vehRemoteID); if (vehicle != null) { var boneIndex2 = vehicle.getBoneIndexByName("platelight"); var boneIndex1 = vehicle.getBoneIndexByName("chassis_dummy"); From 340c071fa07d4e702bdb66cb8df9068ea0301ceb Mon Sep 17 00:00:00 2001 From: kookroach Date: Mon, 5 Apr 2021 16:15:02 +0200 Subject: [PATCH 21/50] remove chat push --- ReallifeGamemode.Client/Jobs/RefuseCollector.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/ReallifeGamemode.Client/Jobs/RefuseCollector.ts b/ReallifeGamemode.Client/Jobs/RefuseCollector.ts index ee303567..047bd6fc 100644 --- a/ReallifeGamemode.Client/Jobs/RefuseCollector.ts +++ b/ReallifeGamemode.Client/Jobs/RefuseCollector.ts @@ -92,7 +92,6 @@ } }); - mp.gui.chat.push("test"); if (currentShape == colshapeDumptruck) { if (!hasBinBag) { hasBinBag = false; From 072be07e98422bffdb655a4342cab5d4bfdbf739 Mon Sep 17 00:00:00 2001 From: kookroach Date: Mon, 5 Apr 2021 16:23:09 +0200 Subject: [PATCH 22/50] debug --- ReallifeGamemode.Client/Jobs/RefuseCollector.ts | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/ReallifeGamemode.Client/Jobs/RefuseCollector.ts b/ReallifeGamemode.Client/Jobs/RefuseCollector.ts index 047bd6fc..e4f69a44 100644 --- a/ReallifeGamemode.Client/Jobs/RefuseCollector.ts +++ b/ReallifeGamemode.Client/Jobs/RefuseCollector.ts @@ -93,7 +93,10 @@ }); if (currentShape == colshapeDumptruck) { + mp.gui.chat.push("in colshape"); if (!hasBinBag) { + mp.gui.chat.push("OK."); + hasBinBag = false; mp.events.callRemote('CLIENT:MuellmannAddSack'); @@ -116,7 +119,7 @@ mp.events.add("MuellmannUpdateColshape", (vector3) => { let currBlip; garbageToCollect.forEach((colShape, blip) => { - if (blip.getCoords == vector3) currBlip = blip; + if (blip.getCoords() == vector3) currBlip = blip; }); if (!garbageToCollect.has(currBlip)) return; @@ -125,8 +128,10 @@ if (currBlip && mp.blips.exists(currBlip)) currBlip.destroy(); - if (colShape && mp.colshapes.exists(colShape)) + if (colShape && mp.colshapes.exists(colShape)) { + mp.gui.chat.push("Delete Colshape."); colShape.destroy(); + } garbageToCollect.delete(currBlip); }); From f8237c84bbe2e8a56b890c3f80ad36871015aa6c Mon Sep 17 00:00:00 2001 From: hydrant Date: Mon, 5 Apr 2021 16:26:12 +0200 Subject: [PATCH 23/50] set blip color in one function --- .../Commands/AdminCommands.cs | 138 ++---------------- .../Commands/FactionCommands.cs | 36 +---- ReallifeGamemode.Server/Events/Key.cs | 22 +-- ReallifeGamemode.Server/Events/Login.cs | 37 +---- .../Extensions/ClientExtension.cs | 75 +++++++++- .../Managers/InteractionManager.cs | 111 ++++++-------- ReallifeGamemode.Server/Wanted/Jail.cs | 30 +--- 7 files changed, 134 insertions(+), 315 deletions(-) diff --git a/ReallifeGamemode.Server/Commands/AdminCommands.cs b/ReallifeGamemode.Server/Commands/AdminCommands.cs index 21ab38af..93ca01e5 100644 --- a/ReallifeGamemode.Server/Commands/AdminCommands.cs +++ b/ReallifeGamemode.Server/Commands/AdminCommands.cs @@ -276,7 +276,8 @@ namespace ReallifeGamemode.Server.Commands [Command("tsupport", "~m~Benutzung: ~s~/tsupport", Alias = "ts")] public void CmdAdminTSupport(Player player) { - if (!player.GetUser()?.IsAdmin(AdminLevel.SUPPORTER) ?? true) + User user = player.GetUser(); + if (user.IsAdmin(AdminLevel.SUPPORTER)) { ChatService.NotAuthorized(player); return; @@ -289,51 +290,14 @@ namespace ReallifeGamemode.Server.Commands if (player.GetData("SAdminduty") == false) { player.SetData("SAdminduty", true); - player.SetSharedData("blipColor", 30); - player.SetSharedData("nameTagColor", -2); ChatService.SendMessage(player, "~g~ ** " + "Du befindest dich im T-Support"); } else { player.SetData("SAdminduty", false); ChatService.SendMessage(player, "!{#ee4d2e}** " + "Du befindest dich nicht mehr im T-Support"); - - using (var dbContext = new DatabaseContext()) - { - User targetUser = player.GetUser(dbContext); - switch (targetUser.FactionId) - { - case null: - player.SetSharedData("blipColor", 0); - player.SetSharedData("nameTagColor", 0); - break; - case 0: - player.SetSharedData("blipColor", 0); - player.SetSharedData("nameTagColor", 0); - break; - case 8: - player.SetSharedData("blipColor", 83); - player.SetSharedData("nameTagColor", 8); - break; - - case 7: - player.SetSharedData("blipColor", 52); - player.SetSharedData("nameTagColor", 7); - break; - - case 4: - player.SetSharedData("blipColor", 5); - player.SetSharedData("nameTagColor", 4); - break; - case 9: - player.SetSharedData("blipColor", 25); - player.SetSharedData("nameTagColor", 9); - break; - } - player.SetSharedData("nameTagColor", targetUser.FactionId); - } - } + user.SetBlipAndNametagColor(); } [Command("aduty", "~m~Benutzung: ~s~/aduty")] public void CmdAdminAduty(Player player) @@ -1498,37 +1462,12 @@ namespace ReallifeGamemode.Server.Commands } ChatService.SendMessage(target, "!{#8181E9}Deine Akte wurde vom Admin " + player.Name + " gelöscht. Grund: " + reason); ChatService.BroadcastFaction("!{#8181E9}HQ: Die Akte von " + target.Name + " wurde vom Admin " + player.Name + " gelöscht. Grund: " + reason + ".", new List() { 1, 3 }); - switch (targetUser.FactionId) - { - case null: - target.SetSharedData("blipColor", 0); - target.SetSharedData("nameTagColor", 0); - break; - case 0: - target.SetSharedData("blipColor", 0); - target.SetSharedData("nameTagColor", 0); - break; - case 8: - target.SetSharedData("blipColor", 83); - target.SetSharedData("nameTagColor", 8); - break; - - case 7: - target.SetSharedData("blipColor", 52); - target.SetSharedData("nameTagColor", 7); - break; - - case 4: - target.SetSharedData("blipColor", 5); - target.SetSharedData("nameTagColor", 4); - break; - case 9: - target.SetSharedData("blipColor", 25); - target.SetSharedData("nameTagColor", 9); - break; - } + target.TriggerEvent("jailTime", 0); targetUser.Wanteds = 0; + + targetUser.SetBlipAndNametagColor(); + dbContext.SaveChanges(); } } @@ -2494,37 +2433,7 @@ namespace ReallifeGamemode.Server.Commands } u.FactionLeader = false; - switch (u.FactionId) - { - case null: - target.SetSharedData("blipColor", 0); - target.SetSharedData("nameTagColor", 0); - break; - - case 0: - target.SetSharedData("blipColor", 0); - target.SetSharedData("nameTagColor", 0); - break; - - case 8: - target.SetSharedData("blipColor", 83); - target.SetSharedData("nameTagColor", 8); - break; - - case 7: - target.SetSharedData("blipColor", 52); - target.SetSharedData("nameTagColor", 7); - break; - - case 4: - target.SetSharedData("blipColor", 5); - target.SetSharedData("nameTagColor", 4); - break; - case 9: - target.SetSharedData("blipColor", 25); - target.SetSharedData("nameTagColor", 9); - break; - } + u.SetBlipAndNametagColor(); dbContext.SaveChanges(); } } @@ -2567,36 +2476,7 @@ namespace ReallifeGamemode.Server.Commands ChatService.SendMessage(player, "~b~[ADMIN]~s~ Du hast hast den Spieler ~y~" + target.Name + "~s~ zum Leader der Fraktion ~o~" + f.Name + "~s~ ernannt."); ChatService.SendMessage(target, "~b~[ADMIN]~s~ Du wurdest von ~y~" + player.Name + "~s~ zum Leader der Fraktion ~o~" + f.Name + "~s~ ernannt."); - switch (u.FactionId) - { - case null: - target.SetSharedData("blipColor", 0); - target.SetSharedData("nameTagColor", 0); - break; - case 0: - target.SetSharedData("blipColor", 0); - target.SetSharedData("nameTagColor", 0); - break; - - case 8: - target.SetSharedData("blipColor", 83); - target.SetSharedData("nameTagColor", 8); - break; - - case 7: - target.SetSharedData("blipColor", 52); - target.SetSharedData("nameTagColor", 7); - break; - - case 4: - target.SetSharedData("blipColor", 5); - target.SetSharedData("nameTagColor", 4); - break; - case 9: - target.SetSharedData("blipColor", 25); - target.SetSharedData("nameTagColor", 9); - break; - } + u.SetBlipAndNametagColor(); dbContext.SaveChanges(); } } diff --git a/ReallifeGamemode.Server/Commands/FactionCommands.cs b/ReallifeGamemode.Server/Commands/FactionCommands.cs index 236320a4..7c62423a 100644 --- a/ReallifeGamemode.Server/Commands/FactionCommands.cs +++ b/ReallifeGamemode.Server/Commands/FactionCommands.cs @@ -491,40 +491,12 @@ namespace ReallifeGamemode.Server.Commands } ChatService.SendMessage(target, "!{#8181E9}Deine Akte wurde von " + player.Name + " gelöscht. Grund: " + reason); ChatService.BroadcastFaction("!{#8181E9}HQ: Die Akte von " + target.Name + " wurde von " + player.Name + " gelöscht. Grund: " + reason + ".", new List() { 1, 3 }); - target.SetSharedData("blipColor", 0); - switch (targetUser.FactionId) - { - case null: - target.SetSharedData("blipColor", 0); - target.SetSharedData("nameTagColor", 0); - break; - - case 0: - target.SetSharedData("blipColor", 0); - target.SetSharedData("nameTagColor", 0); - break; - - case 8: - target.SetSharedData("blipColor", 83); - target.SetSharedData("nameTagColor", 8); - break; - - case 7: - target.SetSharedData("blipColor", 52); - target.SetSharedData("nameTagColor", 7); - break; - - case 4: - target.SetSharedData("blipColor", 5); - target.SetSharedData("nameTagColor", 4); - break; - case 9: - target.SetSharedData("blipColor", 25); - target.SetSharedData("nameTagColor", 9); - break; - } + target.TriggerEvent("jailTime", 0); targetUser.Wanteds = 0; + + targetUser.SetBlipAndNametagColor(); + dbContext.SaveChanges(); } } diff --git a/ReallifeGamemode.Server/Events/Key.cs b/ReallifeGamemode.Server/Events/Key.cs index e5aef019..92e2be94 100644 --- a/ReallifeGamemode.Server/Events/Key.cs +++ b/ReallifeGamemode.Server/Events/Key.cs @@ -293,27 +293,8 @@ namespace ReallifeGamemode.Server.Events } switch (factionId) { - //LSPD - case 1: - //nameTagColor = new Color(28, 134, 238); - //player.TriggerEvent("setNameTag", JsonConvert.SerializeObject(new int[] { 28, 134, 238 })); - player.SetSharedData("nameTagColor", factionId); - player.SetSharedData("blipColor", 38); - break; - - //Medic - case 2: - //nameTagColor = new Color(255, 0, 0); - //player.TriggerEvent("setNameTag", JsonConvert.SerializeObject(new int[] { 255, 0, 0 })); - player.SetSharedData("nameTagColor", factionId); - player.SetSharedData("blipColor", 6); - break; - //FBI case 3: - //nameTagColor = new Color(173, 0, 118); - player.SetSharedData("nameTagColor", factionId); - player.SetSharedData("blipColor", 63); player.SetAccessories(2, 2, 0); break; } @@ -347,10 +328,9 @@ namespace ReallifeGamemode.Server.Events player.SendNotification("Du bist nun ~r~außer Dienst."); player.TriggerEvent("toggleDutyMode", false); Medic.UpdateDutyMedics(-1); - player.SetSharedData("blipColor", 0); - player.SetSharedData("nameTagColor", 0); UpdateCharacterCloth.LoadCharacterDefaults(player); } + user.SetBlipAndNametagColor(); } if (nearestWeapon != null) // Weapon Point diff --git a/ReallifeGamemode.Server/Events/Login.cs b/ReallifeGamemode.Server/Events/Login.cs index b89e2269..ccdd6628 100644 --- a/ReallifeGamemode.Server/Events/Login.cs +++ b/ReallifeGamemode.Server/Events/Login.cs @@ -100,42 +100,7 @@ namespace ReallifeGamemode.Server.Events var userItems = dbContext.UserItems.Where(u => u.UserId == user.Id).ToList(); player.SetData("items", userItems); - switch (user.FactionId) - { - case null: - player.SetSharedData("blipColor", 0); - player.SetSharedData("nameTagColor", 0); - break; - - case 0: - player.SetSharedData("blipColor", 0); - player.SetSharedData("nameTagColor", 0); - break; - - case 8: - player.SetSharedData("blipColor", 83); - player.SetSharedData("nameTagColor", 8); - break; - - case 7: - player.SetSharedData("blipColor", 52); - player.SetSharedData("nameTagColor", 7); - break; - - case 4: - player.SetSharedData("blipColor", 5); - player.SetSharedData("nameTagColor", 4); - break; - case 9: - player.SetSharedData("blipColor", 25); - player.SetSharedData("nameTagColor", 9); - break; - default: - player.SetSharedData("blipColor", 0); - player.SetSharedData("nameTagColor", 0); - break; - } - + user.SetBlipAndNametagColor(); if (user.CharacterId == null) { diff --git a/ReallifeGamemode.Server/Extensions/ClientExtension.cs b/ReallifeGamemode.Server/Extensions/ClientExtension.cs index 765d3f05..c77d1f35 100644 --- a/ReallifeGamemode.Server/Extensions/ClientExtension.cs +++ b/ReallifeGamemode.Server/Extensions/ClientExtension.cs @@ -131,8 +131,7 @@ namespace ReallifeGamemode.Server.Extensions dbUser.Wanteds = newWanteds; dbContext.SaveChanges(); } - user.Player.SetSharedData("nameTagColor", -1); - user.Player.SetSharedData("blipColor", 64); + user.SetBlipAndNametagColor(); ChatService.SendMessage(user.Player, "!{#FF614A}Du hast ein Verbrechen begangen: " + reason + "" + (cop != null ? " | Gemeldet von: " + cop.Name + "." : "")); ChatService.SendMessage(user.Player, " !{#FFFF00}Fahnundgslevel:~s~ " + newWanteds); @@ -237,11 +236,81 @@ namespace ReallifeGamemode.Server.Extensions public static bool IsAdmin(this User user, AdminLevel adminLevel) { - if(user == null) + if (user == null) { return false; } return user.AdminLevel >= adminLevel; } + + public static void SetBlipAndNametagColor(this User user) + { + if (user == null) + { + return; + } + + int blipColor = 0; + int nameTagColor = 0; + + Player player = user.Player; + bool duty = user.GetData("duty"); + + if (player.GetData("SAdminduty")) + { + blipColor = 30; + nameTagColor = -2; + } + else if (user.Wanteds > 0) + { + nameTagColor = -1; + blipColor = 64; + } + else if (user.Faction != null) + { + nameTagColor = user.FactionId.Value; + switch (user.FactionId) + { + case 1 when duty: + blipColor = 38; + break; + + case 2 when duty: + blipColor = 6; + break; + + case 3 when duty: + blipColor = 63; + break; + + case 4: + blipColor = 5; + break; + + case 5: + break; + + case 6: + break; + + case 7: + blipColor = 52; + break; + + case 8: + blipColor = 83; + break; + + case 9: + blipColor = 25; + break; + } + } + + NAPI.Util.ConsoleOutput($"{player.Name} - Setting blip and nametag color: nametag = {nameTagColor}, blip = {blipColor}"); + + user.Player.SetSharedData("nameTagColor", nameTagColor); + user.Player.SetSharedData("blipColor", blipColor); + } } } diff --git a/ReallifeGamemode.Server/Managers/InteractionManager.cs b/ReallifeGamemode.Server/Managers/InteractionManager.cs index cc556b6f..e25fced2 100644 --- a/ReallifeGamemode.Server/Managers/InteractionManager.cs +++ b/ReallifeGamemode.Server/Managers/InteractionManager.cs @@ -69,32 +69,7 @@ namespace ReallifeGamemode.Server.Managers ChatService.SendMessage(leader, "!{02FCFF}" + player.Name + " hat die Einladung angenommen."); ChatService.SendMessage(player, "!{02FCFF}Du hast die Einladung angenommen."); - switch (own.FactionId) - { - default: - player.SetSharedData("blipColor", 0); - player.SetSharedData("nameTagColor", 0); - break; - - case 8: - player.SetSharedData("blipColor", 83); - player.SetSharedData("nameTagColor", 8); - break; - - case 7: - player.SetSharedData("blipColor", 52); - player.SetSharedData("nameTagColor", 7); - break; - - case 4: - player.SetSharedData("blipColor", 5); - player.SetSharedData("nameTagColor", 4); - break; - case 9: - player.SetSharedData("blipColor", 25); - player.SetSharedData("nameTagColor", 9); - break; - } + own.SetBlipAndNametagColor(); dbContext.SaveChanges(); } } @@ -247,8 +222,10 @@ namespace ReallifeGamemode.Server.Managers return; } - User targetUser = target.GetUser(); - User playerUser = player.GetUser(); + using var dbContext = new DatabaseContext(); + + User targetUser = target.GetUser(dbContext); + User playerUser = player.GetUser(dbContext); if (type == "Fraktion") { @@ -276,21 +253,16 @@ namespace ReallifeGamemode.Server.Managers return; } - using (var dbContext = new DatabaseContext()) - { - target.SetData("duty", false); - target.TriggerEvent("toggleDutyMode", false); - Medic.UpdateDutyMedics(-1); - target.SetSharedData("blipColor", 0); - UpdateCharacterCloth.LoadCharacterDefaults(target); - target.GetUser(dbContext).FactionRankId = null; - target.GetUser(dbContext).FactionId = null; - ChatService.SendMessage(player, "!{02FCFF}Du hast " + target.Name + " aus der Fraktion geworfen."); - ChatService.SendMessage(target, "!{02FCFF}Du wurdest von " + player.Name + " aus der Fraktion geworfen."); - target.SetSharedData("blipColor", 0); - player.SetSharedData("nameTagColor", 0); - dbContext.SaveChanges(); - } + target.SetData("duty", false); + target.TriggerEvent("toggleDutyMode", false); + Medic.UpdateDutyMedics(-1); + UpdateCharacterCloth.LoadCharacterDefaults(target); + target.GetUser(dbContext).FactionRankId = null; + target.GetUser(dbContext).FactionId = null; + ChatService.SendMessage(player, "!{02FCFF}Du hast " + target.Name + " aus der Fraktion geworfen."); + ChatService.SendMessage(target, "!{02FCFF}Du wurdest von " + player.Name + " aus der Fraktion geworfen."); + targetUser.SetBlipAndNametagColor(); + dbContext.SaveChanges(); } else if (type == "Gruppe") { @@ -377,7 +349,7 @@ namespace ReallifeGamemode.Server.Managers [RemoteEvent("CLIENT:InteractionMenu_LeaveGroup")] public void InteractionMenuGroupLeageGroup(Player player, string type) { - + if (type == "Gruppe") { using (var dbContext = new DatabaseContext()) @@ -390,15 +362,15 @@ namespace ReallifeGamemode.Server.Managers return; } - if(dbContext.Users.Count(c => c.Group == playerUser.Group) == 1) + if (dbContext.Users.Count(c => c.Group == playerUser.Group) == 1) { - InteractionMenuGroupDeleteGroup(player,"Gruppe"); + InteractionMenuGroupDeleteGroup(player, "Gruppe"); return; } var group = player.GetUser().Group; - if(playerUser.GroupRank == GroupRank.OWNER) + if (playerUser.GroupRank == GroupRank.OWNER) { var memberList = dbContext.Users.Where(u => u.Group == playerUser.Group && u.GroupRank < GroupRank.OWNER).ToList(); var newOwner = memberList.OrderByDescending(c => c.GroupRank).First(); @@ -406,7 +378,7 @@ namespace ReallifeGamemode.Server.Managers newOwner.GroupRank = GroupRank.OWNER; ChatService.BroadcastGroup("~y~" + newOwner.Name + "~s~ wurde zum neuen Besitzer ernannt", playerUser.Group); } - + playerUser.GroupRank = GroupRank.NONE; playerUser.Group = null; ChatService.BroadcastGroup("~y~" + player.Name + "~s~ hat die Gruppe verlassen", group); @@ -422,13 +394,13 @@ namespace ReallifeGamemode.Server.Managers if (type == "Gruppe") { using (var dbContext = new DatabaseContext()) - { + { if (playerUser?.Group == null || playerUser.GroupRank < GroupRank.OWNER) { ChatService.NotAuthorized(player); return; } - + var deletedGroup = dbContext.Groups.FirstOrDefault(g => g.Id == playerUser.Group.Id); foreach (var user in dbContext.Users.Where(u => u.Group == playerUser.Group).ToList()) @@ -443,12 +415,12 @@ namespace ReallifeGamemode.Server.Managers } } - [RemoteEvent("CLIENT:InteractionMenu_CallService_Taxi")] + [RemoteEvent("CLIENT:InteractionMenu_CallService_Taxi")] public void CallServiceTaxi(Player player, string street, string zone) { var taxiJob = JobManager.GetJob(); - if(taxiJob == null) + if (taxiJob == null) { player.SendChatMessage("Aktuell kann kein Taxi gerufen werden."); return; @@ -802,20 +774,20 @@ namespace ReallifeGamemode.Server.Managers { if (!player.IsLoggedIn()) return; List players = NAPI.Pools.GetAllPlayers(); - - var listPlayers = players.Where(p => p.GetUser().Wanteds > 0) - .Select(p => new - { - Id = p.Handle.Value, - p.Name, - wanted = p.GetUser().Wanteds, - }); - if (listPlayers.Count() > 0) - player.TriggerEvent("showWantedlist", JsonConvert.SerializeObject(listPlayers)); - else - player.SendNotification("~r~[Fehler] ~w~Es gibt derzeitig keine Verbrecher!"); - + var listPlayers = players.Where(p => p.GetUser().Wanteds > 0) + .Select(p => new + { + Id = p.Handle.Value, + p.Name, + wanted = p.GetUser().Wanteds, + }); + + if (listPlayers.Count() > 0) + player.TriggerEvent("showWantedlist", JsonConvert.SerializeObject(listPlayers)); + else + player.SendNotification("~r~[Fehler] ~w~Es gibt derzeitig keine Verbrecher!"); + } @@ -854,11 +826,12 @@ namespace ReallifeGamemode.Server.Managers if (player.GetData("healauftrag") == true) { player.SendNotification("~r~[Fehler] ~w~Du hast bereits ein Sanitäter gerufen."); - }else - { - Medic.AddTaskToList(healTask); + } + else + { + Medic.AddTaskToList(healTask); player.SetData("healauftrag", true); - ChatService.BroadcastFaction("~y~[MEDIC] ~w~" + player.Name + " hat soeben einen Serviceauftrag beantragt.", new List() { 2 }); + ChatService.BroadcastFaction("~y~[MEDIC] ~w~" + player.Name + " hat soeben einen Serviceauftrag beantragt.", new List() { 2 }); } } diff --git a/ReallifeGamemode.Server/Wanted/Jail.cs b/ReallifeGamemode.Server/Wanted/Jail.cs index 806337b1..c9cfe660 100644 --- a/ReallifeGamemode.Server/Wanted/Jail.cs +++ b/ReallifeGamemode.Server/Wanted/Jail.cs @@ -66,10 +66,12 @@ namespace ReallifeGamemode.Server.Wanted jailTime /= 2; } - client.GetUser(dbContext).JailTime = jailTime; + User clientUser = client.GetUser(dbContext); + + clientUser.JailTime = jailTime; Jailtime[user.Id] = jailTime; // 54 sec for each wanted star -> in total 45min for 50 Wanteds - client.GetUser(dbContext).Wanteds = 0; + clientUser.Wanteds = 0; client.SetData("isDead", false); client.RemoveAllWeapons(); client.SetSharedData("blipColor", 0); @@ -100,29 +102,7 @@ namespace ReallifeGamemode.Server.Wanted client.TriggerEvent("jailTime", JsonConvert.SerializeObject(timeMinutes)); - switch (user.FactionId) - { - case null: - client.SetSharedData("blipColor", 0); - client.SetSharedData("nameTagColor", 0); - break; - case 8: - client.SetSharedData("blipColor", 83); - client.SetSharedData("nameTagColor", 8); - break; - case 7: - client.SetSharedData("blipColor", 52); - client.SetSharedData("nameTagColor", 7); - break; - case 4: - client.SetSharedData("blipColor", 5); - client.SetSharedData("nameTagColor", 4); - break; - case 9: - client.SetSharedData("blipColor", 25); - client.SetSharedData("nameTagColor", 9); - break; - } + clientUser.SetBlipAndNametagColor(); if (announceHq) { From 9b3c829257ebb9dc70feb7acff35592b72e649a3 Mon Sep 17 00:00:00 2001 From: kookroach Date: Mon, 5 Apr 2021 16:28:05 +0200 Subject: [PATCH 24/50] test --- ReallifeGamemode.Client/Jobs/RefuseCollector.ts | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/ReallifeGamemode.Client/Jobs/RefuseCollector.ts b/ReallifeGamemode.Client/Jobs/RefuseCollector.ts index e4f69a44..fab6e38a 100644 --- a/ReallifeGamemode.Client/Jobs/RefuseCollector.ts +++ b/ReallifeGamemode.Client/Jobs/RefuseCollector.ts @@ -93,10 +93,7 @@ }); if (currentShape == colshapeDumptruck) { - mp.gui.chat.push("in colshape"); - if (!hasBinBag) { - mp.gui.chat.push("OK."); - + if (hasBinBag) { hasBinBag = false; mp.events.callRemote('CLIENT:MuellmannAddSack'); From d2694f54aab15aa5505fe692b513f9f92e9d4627 Mon Sep 17 00:00:00 2001 From: kookroach Date: Mon, 5 Apr 2021 16:34:31 +0200 Subject: [PATCH 25/50] push --- ReallifeGamemode.Client/Jobs/RefuseCollector.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/ReallifeGamemode.Client/Jobs/RefuseCollector.ts b/ReallifeGamemode.Client/Jobs/RefuseCollector.ts index fab6e38a..007bf710 100644 --- a/ReallifeGamemode.Client/Jobs/RefuseCollector.ts +++ b/ReallifeGamemode.Client/Jobs/RefuseCollector.ts @@ -120,11 +120,15 @@ }); if (!garbageToCollect.has(currBlip)) return; + mp.gui.chat.push("Has Blip."); var colShape = garbageToCollect.get(currBlip); - if (currBlip && mp.blips.exists(currBlip)) + if (currBlip && mp.blips.exists(currBlip)) { + mp.gui.chat.push("Delete Blip."); currBlip.destroy(); + } + if (colShape && mp.colshapes.exists(colShape)) { mp.gui.chat.push("Delete Colshape."); colShape.destroy(); From c47cff67884195914519aee8399b2445b461ef98 Mon Sep 17 00:00:00 2001 From: hydrant Date: Mon, 5 Apr 2021 16:45:45 +0200 Subject: [PATCH 26/50] fix pipeline --- .../Managers/InteractionManager.cs | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/ReallifeGamemode.Server/Managers/InteractionManager.cs b/ReallifeGamemode.Server/Managers/InteractionManager.cs index e25fced2..0ad66ab3 100644 --- a/ReallifeGamemode.Server/Managers/InteractionManager.cs +++ b/ReallifeGamemode.Server/Managers/InteractionManager.cs @@ -290,16 +290,13 @@ namespace ReallifeGamemode.Server.Managers return; } - using (var dbContext = new DatabaseContext()) - { - target.GetUser(dbContext).Group = null; - target.GetUser(dbContext).GroupRank = GroupRank.NONE; + targetUser.Group = null; + targetUser.GroupRank = GroupRank.NONE; - ChatService.SendMessage(player, "!{02FCFF}Du hast " + target.Name + " aus der Gruppe geworfen."); - ChatService.SendMessage(target, "!{02FCFF}Du wurdest von " + player.Name + " aus der Gruppe geworfen."); + ChatService.SendMessage(player, "!{02FCFF}Du hast " + target.Name + " aus der Gruppe geworfen."); + ChatService.SendMessage(target, "!{02FCFF}Du wurdest von " + player.Name + " aus der Gruppe geworfen."); - dbContext.SaveChanges(); - } + dbContext.SaveChanges(); } } From 8af5f1814352028342247f215002b8c7e0d73069 Mon Sep 17 00:00:00 2001 From: hydrant Date: Mon, 5 Apr 2021 16:48:05 +0200 Subject: [PATCH 27/50] fix tsupport --- ReallifeGamemode.Server/Commands/AdminCommands.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ReallifeGamemode.Server/Commands/AdminCommands.cs b/ReallifeGamemode.Server/Commands/AdminCommands.cs index 93ca01e5..551d092d 100644 --- a/ReallifeGamemode.Server/Commands/AdminCommands.cs +++ b/ReallifeGamemode.Server/Commands/AdminCommands.cs @@ -277,7 +277,7 @@ namespace ReallifeGamemode.Server.Commands public void CmdAdminTSupport(Player player) { User user = player.GetUser(); - if (user.IsAdmin(AdminLevel.SUPPORTER)) + if (!user.IsAdmin(AdminLevel.SUPPORTER)) { ChatService.NotAuthorized(player); return; From 918d53a5acfd4ca3a1d727387a096ab516ce1c5b Mon Sep 17 00:00:00 2001 From: VegaZ Date: Mon, 5 Apr 2021 16:53:06 +0200 Subject: [PATCH 28/50] Heal Decision / JobManager dadurch angepasst --- ReallifeGamemode.Client/Player/keys.ts | 3 +- .../Commands/FactionCommands.cs | 27 +------ ReallifeGamemode.Server/Events/Key.cs | 77 ++++++++++++++++++- .../Factions/Medic/Medic.cs | 50 +++++++++++- .../Managers/JobManager.cs | 57 -------------- 5 files changed, 130 insertions(+), 84 deletions(-) diff --git a/ReallifeGamemode.Client/Player/keys.ts b/ReallifeGamemode.Client/Player/keys.ts index 8f2e3751..09d81158 100644 --- a/ReallifeGamemode.Client/Player/keys.ts +++ b/ReallifeGamemode.Client/Player/keys.ts @@ -136,7 +136,8 @@ export default function keys(globalData: IGlobalData) { //J // Job Starten mp.keys.bind(0x4A, false, () => { if (!globalData.InChat && globalData.LoggedIn && !globalData.InTuning) { - mp.events.callRemote("CLIENT:JobManager_ShowJobMenu"); + //mp.events.callRemote("CLIENT:JobManager_ShowJobMenu"); + mp.events.callRemote("keyPress:J"); } }); diff --git a/ReallifeGamemode.Server/Commands/FactionCommands.cs b/ReallifeGamemode.Server/Commands/FactionCommands.cs index 236320a4..4cec07ea 100644 --- a/ReallifeGamemode.Server/Commands/FactionCommands.cs +++ b/ReallifeGamemode.Server/Commands/FactionCommands.cs @@ -347,7 +347,7 @@ namespace ReallifeGamemode.Server.Commands } [Command("heal", "~m~Benutzung: ~s~/heal [Spieler] (Preis)")] //TODO Eventuell noch mit Geldbetrag wie bei SA:MP - public void CmdFactionMedicHealive(Player player, string receiver, int price = 100) + public void CmdFactionMedicHealive(Player player, string receiver, int price = 10) { Player target = PlayerService.GetPlayerByNameOrId(receiver); if (player.GetUser()?.FactionId != 2) @@ -391,28 +391,9 @@ namespace ReallifeGamemode.Server.Commands return; } - using var dbContext = new DatabaseContext(); - User targetUser = target.GetUser(dbContext); - - if (targetUser.Handmoney >= price) - { - targetUser.Handmoney -= price; - } - else - { - int bankMoney = price - targetUser.Handmoney; - targetUser.Handmoney = 0; - targetUser.BankAccount.Balance -= bankMoney; - } - - dbContext.Factions.Include(f => f.BankAccount).Where(f => f.Id == 2).First().BankAccount.Balance += price; - - dbContext.SaveChanges(); - - target.Health = 100; - target.SendNotification($"Du wurdest von ~g~{player.Name} ~s~ für ~g~{price.ToMoneyString()} geheilt.", false); - player.SendNotification($"Du hast ~g~{target.Name} ~s~ für {price.ToMoneyString()} geheilt.", false); - player.TriggerEvent("delHealTask"); + ChatService.SendMessage(target,"~g~" + player.GetUser().Name + " ~s~möchte dich für ~g~$" + price + " ~s~heilen. Drücke ~g~J~s~ zum Erlauben oder ~r~N ~s~zum Verbieten"); + target.SetData("healDecision", true); + Medic.HealDecisions.Add(new Medic.HealDecision {dMedic = player, dTarget = target, dPrice = price}); } #endregion Sanitäter Commands diff --git a/ReallifeGamemode.Server/Events/Key.cs b/ReallifeGamemode.Server/Events/Key.cs index 41e08be7..184dbb60 100644 --- a/ReallifeGamemode.Server/Events/Key.cs +++ b/ReallifeGamemode.Server/Events/Key.cs @@ -1,4 +1,5 @@ -using System.Collections.Generic; +using System; +using System.Collections.Generic; using System.Linq; using GTANetworkAPI; using Newtonsoft.Json; @@ -11,6 +12,7 @@ using ReallifeGamemode.Server.Factions.Medic; using ReallifeGamemode.Server.Finance; using ReallifeGamemode.Server.Inventory; using ReallifeGamemode.Server.Inventory.Interfaces; +using ReallifeGamemode.Server.Job; using ReallifeGamemode.Server.Managers; using ReallifeGamemode.Server.Services; using ReallifeGamemode.Server.Types; @@ -214,7 +216,7 @@ namespace ReallifeGamemode.Server.Events FriseurPoint nearestFriseurPoint = PositionManager.friseurPoints.Find(s => s.Position.DistanceTo(player.Position) <= 1.5 && (!user.GetData("duty"))); ItemshopPoint nearestItemShopPoint = PositionManager.itemshopPoints.Find(s => s.Position.DistanceTo(player.Position) <= 1.5); JobPoint nearestJobPoint = PositionManager.JobPoints.Find(s => s.Position.DistanceTo(player.Position) <= 1.6); - + if (user?.FactionId != null) { BehindVehiclePoint nearestBehindVehiclePoint = MarkerBehinVehicle.behindVehiclePoints.Find(s => s.marker.Position.DistanceTo(player.Position) <= 3 && (user.FactionId == 8 || user.FactionId == 7 || user.FactionId == 1 || user.FactionId == 3)); @@ -624,6 +626,71 @@ namespace ReallifeGamemode.Server.Events InventoryManager.SetBackpackItems(player); } + [RemoteEvent("keyPress:J")] + public void KeyPressJ(Player player) + { + if (!player.IsLoggedIn()) return; + if (player.GetData("healDecision") == true) + { + player.SetData("healDecision", false); + Medic.MakeHealDecision(player, true); + } + + User u = player.GetUser(); + + if (u.JobId == null) return; + + JobBase job = JobManager.GetJob(u.JobId.Value); + + dynamic data = null; + + if (job.Id == 1 && job.GetUsersInJob().Contains(player)) + { + var taxiCalls = JobManager.GetJob().TaxiContracts; + if (!taxiCalls.Any(t => t.Driver?.Handle == player.Handle)) // Spieler in keiner aktiven Fahrt + { + data = new + { + job.Id, + Status = 0, + JobData = new + { + TaxiCalls = taxiCalls + .Where(t => t.Driver == null) + .Select(t => new + { + t.Name, + Distance = Math.Round(t.Position.DistanceTo(player.Position), 0) + }) + .OrderBy(t => t.Distance) + } + }; + } + else // Spieler in aktiver Fahrt + { + data = new + { + job.Id, + Status = 1, + JobData = new + { + taxiCalls.Where(t => t.Driver.Handle == player.Handle).First().Name + } + }; + } + } + //JobPoint nearJobPoint = PositionManager.JobPoints.Find(p => p.Position.DistanceTo(player.Position) <= 2); + if (u.JobId == 2 || u.JobId == 3 || u.JobId == 4) + { + return; + } + + var json = JsonConvert.SerializeObject(data); + + player.TriggerEvent("SERVER:Job_ShowJobMenu", job.Name, json); + } + + [RemoteEvent("keyPress:O")] public void KeyPressO(Player player) { @@ -715,6 +782,12 @@ namespace ReallifeGamemode.Server.Events if (!player.IsInVehicle) return; if (player.VehicleSeat != 0) return; + if (player.GetData("healDecision") == true) + { + player.SetData("healDecision", true); + Medic.MakeHealDecision(player, false); + } + GTANetworkAPI.Vehicle v = player.Vehicle; User u = player.GetUser(); diff --git a/ReallifeGamemode.Server/Factions/Medic/Medic.cs b/ReallifeGamemode.Server/Factions/Medic/Medic.cs index b5e03f2f..0621881a 100644 --- a/ReallifeGamemode.Server/Factions/Medic/Medic.cs +++ b/ReallifeGamemode.Server/Factions/Medic/Medic.cs @@ -8,6 +8,7 @@ using ReallifeGamemode.Database.Entities; using ReallifeGamemode.Database.Models; using Microsoft.EntityFrameworkCore; using System; +using ReallifeGamemode.Server.Extensions; /** * @overview Life of German Reallife - Server Factions Medic Medic.cs @@ -22,10 +23,18 @@ namespace ReallifeGamemode.Server.Factions.Medic public static List ReviveTasks = new List(); public static List HealTasks = new List(); public static List FireTasks = new List(); + public static List HealDecisions = new List(); public static int ReviveIncome = 100; public static int dutyMedics = 0; public static int reviveTaskTime = 240; + public class HealDecision + { + public Player dMedic; + public Player dTarget; + public int dPrice; + } + public static void AddTaskToList(MedicTask task) { if (task == null) @@ -72,6 +81,45 @@ namespace ReallifeGamemode.Server.Factions.Medic } } + public static void MakeHealDecision(Player target, bool decision) + { + var activeDecision = HealDecisions.FirstOrDefault(d => d.dTarget == target); + if(decision == false) + { + ChatService.SendMessage(activeDecision.dMedic, activeDecision.dTarget + " hat den Heal abgelehnt"); + return; + } + else + { + ChatService.SendMessage(activeDecision.dMedic, activeDecision.dTarget + " hat den Heal akzeptiert"); + using var dbContext = new DatabaseContext(); + { + User targetUser = target.GetUser(dbContext); + + if (targetUser.Handmoney >= activeDecision.dPrice) + { + targetUser.Handmoney -= activeDecision.dPrice; + } + else + { + int bankMoney = activeDecision.dPrice - targetUser.Handmoney; + targetUser.Handmoney = 0; + targetUser.BankAccount.Balance -= bankMoney; + } + + dbContext.Factions.Include(f => f.BankAccount).Where(f => f.Id == 2).First().BankAccount.Balance += activeDecision.dPrice / 2; + activeDecision.dMedic.GetUser(dbContext).Wage += activeDecision.dPrice / 2; + + dbContext.SaveChanges(); + } + activeDecision.dTarget.Health = 100; + activeDecision.dTarget.SendNotification($"Du wurdest von ~g~{activeDecision.dMedic.Name} ~s~ für ~g~{activeDecision.dPrice.ToMoneyString()} geheilt", false); + activeDecision.dMedic.SendNotification($"Du hast ~g~{activeDecision.dTarget.Name} ~s~ für {activeDecision.dPrice.ToMoneyString()} geheilt", false); + delHealTask(activeDecision.dTarget); + } + HealDecisions.Remove(activeDecision); + } + public static void UpdateTaskTimeLeft() { DateTime actualTime = DateTime.Now; @@ -139,7 +187,7 @@ namespace ReallifeGamemode.Server.Factions.Medic public static void delHealTask(Player player) { MedicTask task = HealTasks.FirstOrDefault(t => t.Victim == player.Name); - RemoveTaskFromList(task); + if(task != null) RemoveTaskFromList(task); player.SetData("healauftrag", false); } diff --git a/ReallifeGamemode.Server/Managers/JobManager.cs b/ReallifeGamemode.Server/Managers/JobManager.cs index ee82abd5..0d910a14 100644 --- a/ReallifeGamemode.Server/Managers/JobManager.cs +++ b/ReallifeGamemode.Server/Managers/JobManager.cs @@ -124,63 +124,6 @@ namespace ReallifeGamemode.Server.Managers } } - [RemoteEvent("CLIENT:JobManager_ShowJobMenu")] - public void ShowJobMenuEvent(Player player) - { - User u = player.GetUser(); - - if (u.JobId == null) return; - - JobBase job = GetJob(u.JobId.Value); - - dynamic data = null; - - if (job.Id == 1 && job.GetUsersInJob().Contains(player)) - { - var taxiCalls = JobManager.GetJob().TaxiContracts; - if (!taxiCalls.Any(t => t.Driver?.Handle == player.Handle)) // Spieler in keiner aktiven Fahrt - { - data = new - { - job.Id, - Status = 0, - JobData = new - { - TaxiCalls = taxiCalls - .Where(t => t.Driver == null) - .Select(t => new - { - t.Name, - Distance = Math.Round(t.Position.DistanceTo(player.Position), 0) - }) - .OrderBy(t => t.Distance) - } - }; - } - else // Spieler in aktiver Fahrt - { - data = new - { - job.Id, - Status = 1, - JobData = new - { - taxiCalls.Where(t => t.Driver.Handle == player.Handle).First().Name - } - }; - } - } - //JobPoint nearJobPoint = PositionManager.JobPoints.Find(p => p.Position.DistanceTo(player.Position) <= 2); - if (u.JobId == 2 || u.JobId == 3 || u.JobId == 4) - { - return; - } - - var json = JsonConvert.SerializeObject(data); - - player.TriggerEvent("SERVER:Job_ShowJobMenu", job.Name, json); - } - [RemoteEvent("CLIENT:Job_StartJob")] public void StartJobEvent(Player player) { From 7ddf145884013e277c407c1f4ed03f13e95b2c05 Mon Sep 17 00:00:00 2001 From: VegaZ Date: Mon, 5 Apr 2021 17:08:56 +0200 Subject: [PATCH 29/50] Fix Sani Decission --- ReallifeGamemode.Server/Events/Key.cs | 8 ++++---- ReallifeGamemode.Server/Factions/Medic/Medic.cs | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/ReallifeGamemode.Server/Events/Key.cs b/ReallifeGamemode.Server/Events/Key.cs index 007804c1..22c81296 100644 --- a/ReallifeGamemode.Server/Events/Key.cs +++ b/ReallifeGamemode.Server/Events/Key.cs @@ -764,15 +764,15 @@ namespace ReallifeGamemode.Server.Events { if (!player.IsLoggedIn()) return; - if (!player.IsInVehicle) return; - if (player.VehicleSeat != 0) return; - if (player.GetData("healDecision") == true) { - player.SetData("healDecision", true); + player.SetData("healDecision", false); Medic.MakeHealDecision(player, false); } + if (!player.IsInVehicle) return; + if (player.VehicleSeat != 0) return; + GTANetworkAPI.Vehicle v = player.Vehicle; User u = player.GetUser(); diff --git a/ReallifeGamemode.Server/Factions/Medic/Medic.cs b/ReallifeGamemode.Server/Factions/Medic/Medic.cs index 0621881a..d89bba21 100644 --- a/ReallifeGamemode.Server/Factions/Medic/Medic.cs +++ b/ReallifeGamemode.Server/Factions/Medic/Medic.cs @@ -86,12 +86,12 @@ namespace ReallifeGamemode.Server.Factions.Medic var activeDecision = HealDecisions.FirstOrDefault(d => d.dTarget == target); if(decision == false) { - ChatService.SendMessage(activeDecision.dMedic, activeDecision.dTarget + " hat den Heal abgelehnt"); + ChatService.SendMessage(activeDecision.dMedic, activeDecision.dTarget.Name + " hat den Heal abgelehnt"); return; } else { - ChatService.SendMessage(activeDecision.dMedic, activeDecision.dTarget + " hat den Heal akzeptiert"); + ChatService.SendMessage(activeDecision.dMedic, activeDecision.dTarget.Name + " hat den Heal akzeptiert"); using var dbContext = new DatabaseContext(); { User targetUser = target.GetUser(dbContext); From cc24be5e09840987c02c37ef2199a1b6b49e8d8b Mon Sep 17 00:00:00 2001 From: VegaZ Date: Mon, 5 Apr 2021 17:12:28 +0200 Subject: [PATCH 30/50] Fiux Sani 4 --- ReallifeGamemode.Server/Commands/FactionCommands.cs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/ReallifeGamemode.Server/Commands/FactionCommands.cs b/ReallifeGamemode.Server/Commands/FactionCommands.cs index 763424a5..501bf960 100644 --- a/ReallifeGamemode.Server/Commands/FactionCommands.cs +++ b/ReallifeGamemode.Server/Commands/FactionCommands.cs @@ -390,8 +390,9 @@ namespace ReallifeGamemode.Server.Commands ChatService.ErrorMessage(player, "Der Spieler ist bereits voll geheilt"); return; } - - ChatService.SendMessage(target,"~g~" + player.GetUser().Name + " ~s~möchte dich für ~g~$" + price + " ~s~heilen. Drücke ~g~J~s~ zum Erlauben oder ~r~N ~s~zum Verbieten"); + var medicName = player.GetUser(); + ChatService.SendMessage(target,"~g~" + medicName + " ~s~möchte dich für ~g~$" + price + " ~s~heilen. Drücke ~g~J~s~ zum Erlauben oder ~r~N ~s~zum Verbieten"); + ChatService.SendMessage(player, "Du hast " + target.Name + " einen Heal angeboten"); target.SetData("healDecision", true); Medic.HealDecisions.Add(new Medic.HealDecision {dMedic = player, dTarget = target, dPrice = price}); } From d8cfd5d58bd05556b61a32609dab4131a16bdb63 Mon Sep 17 00:00:00 2001 From: hydrant Date: Mon, 5 Apr 2021 17:14:59 +0200 Subject: [PATCH 31/50] fix nametag and blip color --- ReallifeGamemode.Server/Extensions/ClientExtension.cs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/ReallifeGamemode.Server/Extensions/ClientExtension.cs b/ReallifeGamemode.Server/Extensions/ClientExtension.cs index c77d1f35..d6af798c 100644 --- a/ReallifeGamemode.Server/Extensions/ClientExtension.cs +++ b/ReallifeGamemode.Server/Extensions/ClientExtension.cs @@ -268,7 +268,11 @@ namespace ReallifeGamemode.Server.Extensions } else if (user.Faction != null) { - nameTagColor = user.FactionId.Value; + if(user.FactionId > 3 || (user.FactionId >= 1 && user.FactionId <= 3 && duty)) + { + nameTagColor = user.FactionId.Value; + } + switch (user.FactionId) { case 1 when duty: From 2ddeb289f4379239d9ad40c419a8268545ff65b7 Mon Sep 17 00:00:00 2001 From: kookroach Date: Mon, 5 Apr 2021 17:17:18 +0200 Subject: [PATCH 32/50] Fix Job RefuseCollector Client Side --- .../Jobs/RefuseCollector.ts | 53 +++++++++++-------- .../Job/RefuseCollectorJob.cs | 4 +- 2 files changed, 32 insertions(+), 25 deletions(-) diff --git a/ReallifeGamemode.Client/Jobs/RefuseCollector.ts b/ReallifeGamemode.Client/Jobs/RefuseCollector.ts index 007bf710..ea3e4971 100644 --- a/ReallifeGamemode.Client/Jobs/RefuseCollector.ts +++ b/ReallifeGamemode.Client/Jobs/RefuseCollector.ts @@ -13,7 +13,7 @@ var interval = null; - var garbageToCollect = new Map(); + var garbageToCollect = new Map(); mp.events.add('SERVER:MuellmannStatusTrue', () => { State = true; @@ -34,7 +34,7 @@ newBlip.setFlashTimer(2000); - garbageToCollect.set(newBlip, newColShape); + garbageToCollect.set(i, { blip: newBlip, colshape: newColShape }); } blipBase = mp.blips.new(1, new mp.Vector3(-442.3999, -1701.5234, 18.933002 - 1), { name: 'Recylinganlage', color: 5, shortRange: false }); @@ -42,7 +42,9 @@ colshapeBase = mp.colshapes.newSphere(-442.3999, -1701.5234, 18.933002 - 1, 10); }); mp.events.add('SERVER:MuellmannBCSEntfernen', () => { - garbageToCollect.forEach((colshape, blip) => { + garbageToCollect.forEach((collection, index) => { + let { blip, colshape } = collection; + if (colshape && mp.colshapes.exists(colshape)) colshape.destroy(); if (blip && mp.blips.exists(blip)) @@ -69,14 +71,16 @@ mp.events.add("playerEnterColshape", (currentShape, player) => { //mp.events.callRemote('CLIENT:ImShape', JSON.stringify(Shape)); - garbageToCollect.forEach((colshape, blip) => { - if (!colshape || colshape != currentShape) { return; } + let i = getIndex(currentShape); + + if (garbageToCollect.has(i)) { + let { blip, colshape } = garbageToCollect.get(i); if (mp.players.local.vehicle) { mp.events.call("renderTextOnScreen", "Steige aus dem Müllwagen aus um den Müllsack zu entnehmen."); return; } if (hasBinBag) { mp.gui.chat.push("Du trägst bereits einen Müllsack!"); return; } if (!dumptruckIsFull) { - mp.events.callRemote('CLIENT:MuellmannImShape', blip.getCoords()); + mp.events.callRemote('CLIENT:MuellmannImShape', i); hasBinBag = true; if (colshape) @@ -84,13 +88,15 @@ if (blip) blip.destroy(); + garbageToCollect.delete(i); + interval = setInterval(function () { createMarker(); }, 2); } else { mp.gui.chat.push("Der Müllwagen ist bereits voll! Fahre zur Base und lade ab!"); return; } - }); + } if (currentShape == colshapeDumptruck) { if (hasBinBag) { @@ -113,28 +119,20 @@ dumptruckIsFull = false; } }); - mp.events.add("MuellmannUpdateColshape", (vector3) => { - let currBlip; - garbageToCollect.forEach((colShape, blip) => { - if (blip.getCoords() == vector3) currBlip = blip; - }); + mp.events.add("MuellmannUpdateColshape", (index) => { + if (!garbageToCollect.has(index)) return; - if (!garbageToCollect.has(currBlip)) return; - mp.gui.chat.push("Has Blip."); + let { blip, colshape } = garbageToCollect.get(index); - var colShape = garbageToCollect.get(currBlip); - - if (currBlip && mp.blips.exists(currBlip)) { - mp.gui.chat.push("Delete Blip."); - currBlip.destroy(); + if (blip && mp.blips.exists(blip)) { + blip.destroy(); } - if (colShape && mp.colshapes.exists(colShape)) { - mp.gui.chat.push("Delete Colshape."); - colShape.destroy(); + if (colshape && mp.colshapes.exists(colshape)) { + colshape.destroy(); } - garbageToCollect.delete(currBlip); + garbageToCollect.delete(index); }); mp.events.add("SERVER:MuellmannZuBase", () => { @@ -143,6 +141,15 @@ dumptruckIsFull = true; }); + function getIndex(shape: ColshapeMp): number { + let i = -1; + garbageToCollect.forEach((collection, index) => { + let { blip, colshape } = collection; + if (shape == colshape) i = index; + }); + return i; + } + function createMarker() { let vehicle; if (vehRemoteID) diff --git a/ReallifeGamemode.Server/Job/RefuseCollectorJob.cs b/ReallifeGamemode.Server/Job/RefuseCollectorJob.cs index 204b6010..80ff25ee 100644 --- a/ReallifeGamemode.Server/Job/RefuseCollectorJob.cs +++ b/ReallifeGamemode.Server/Job/RefuseCollectorJob.cs @@ -209,13 +209,13 @@ namespace ReallifeGamemode.Server.Job } [RemoteEvent("CLIENT:MuellmannImShape")] - public void MuellmannImShape(Player player, Vector3 blipCoords) + public void MuellmannImShape(Player player, int index) { foreach (var data in muellmanData) { if (data.getDataFromClient(player) == null) continue; Player target = data.getPartnerClient(player); - if (target != null) target.TriggerEvent("MuellmannUpdateColshape", blipCoords); + if (target != null) target.TriggerEvent("MuellmannUpdateColshape", index); player.TriggerEvent("renderTextOnScreen", "Wirf den Müllsack in den Müllwagen."); player.AddAttachment("binbag", false); return; From 42e292d3cfbb789d13f050eedd7b770c0944838e Mon Sep 17 00:00:00 2001 From: hydrant Date: Mon, 5 Apr 2021 17:21:25 +0200 Subject: [PATCH 33/50] fix nametag blip on login --- 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 d6af798c..fe5d37ea 100644 --- a/ReallifeGamemode.Server/Extensions/ClientExtension.cs +++ b/ReallifeGamemode.Server/Extensions/ClientExtension.cs @@ -266,7 +266,7 @@ namespace ReallifeGamemode.Server.Extensions nameTagColor = -1; blipColor = 64; } - else if (user.Faction != null) + else if (user.FactionId != null) { if(user.FactionId > 3 || (user.FactionId >= 1 && user.FactionId <= 3 && duty)) { From 06dcdb64b439a7d2d39dbbbc7473dcff99f84ee2 Mon Sep 17 00:00:00 2001 From: VegaZ Date: Mon, 5 Apr 2021 17:22:24 +0200 Subject: [PATCH 34/50] Fix Sani 5 --- ReallifeGamemode.Client/Player/keys.ts | 4 +--- ReallifeGamemode.Server/Commands/FactionCommands.cs | 6 +++--- ReallifeGamemode.Server/Events/Key.cs | 3 ++- ReallifeGamemode.Server/Factions/Medic/Medic.cs | 4 ++-- 4 files changed, 8 insertions(+), 9 deletions(-) diff --git a/ReallifeGamemode.Client/Player/keys.ts b/ReallifeGamemode.Client/Player/keys.ts index 09d81158..f2b84b59 100644 --- a/ReallifeGamemode.Client/Player/keys.ts +++ b/ReallifeGamemode.Client/Player/keys.ts @@ -113,9 +113,7 @@ export default function keys(globalData: IGlobalData) { //N //Motor Starten mp.keys.bind(0x4E, false, function () { if (!globalData.InChat) { - if (!player.vehicle) return; - if (player.vehicle.getSpeed() > 5) return; - mp.events.callRemote("keyPress:N"); + mp.events.callRemote("keyPress:N", player.vehicle.getSpeed()); } }); diff --git a/ReallifeGamemode.Server/Commands/FactionCommands.cs b/ReallifeGamemode.Server/Commands/FactionCommands.cs index 501bf960..437b8dae 100644 --- a/ReallifeGamemode.Server/Commands/FactionCommands.cs +++ b/ReallifeGamemode.Server/Commands/FactionCommands.cs @@ -390,9 +390,9 @@ namespace ReallifeGamemode.Server.Commands ChatService.ErrorMessage(player, "Der Spieler ist bereits voll geheilt"); return; } - var medicName = player.GetUser(); - ChatService.SendMessage(target,"~g~" + medicName + " ~s~möchte dich für ~g~$" + price + " ~s~heilen. Drücke ~g~J~s~ zum Erlauben oder ~r~N ~s~zum Verbieten"); - ChatService.SendMessage(player, "Du hast " + target.Name + " einen Heal angeboten"); + + ChatService.SendMessage(target,"~g~" + player.Name + " ~s~möchte dich für ~g~$" + price + " ~s~heilen. Drücke ~g~J~s~ zum Erlauben oder ~r~N ~s~zum Verbieten"); + player.SendNotification("Du hast " + target.Name + " einen Heal angeboten",false); target.SetData("healDecision", true); Medic.HealDecisions.Add(new Medic.HealDecision {dMedic = player, dTarget = target, dPrice = price}); } diff --git a/ReallifeGamemode.Server/Events/Key.cs b/ReallifeGamemode.Server/Events/Key.cs index 22c81296..2591ed2a 100644 --- a/ReallifeGamemode.Server/Events/Key.cs +++ b/ReallifeGamemode.Server/Events/Key.cs @@ -760,7 +760,7 @@ namespace ReallifeGamemode.Server.Events } [RemoteEvent("keyPress:N")] - public void KeyPressN(Player player) + public void KeyPressN(Player player, int vSpeed) { if (!player.IsLoggedIn()) return; @@ -772,6 +772,7 @@ namespace ReallifeGamemode.Server.Events if (!player.IsInVehicle) return; if (player.VehicleSeat != 0) return; + if (vSpeed > 5) return; GTANetworkAPI.Vehicle v = player.Vehicle; diff --git a/ReallifeGamemode.Server/Factions/Medic/Medic.cs b/ReallifeGamemode.Server/Factions/Medic/Medic.cs index d89bba21..c296676f 100644 --- a/ReallifeGamemode.Server/Factions/Medic/Medic.cs +++ b/ReallifeGamemode.Server/Factions/Medic/Medic.cs @@ -86,12 +86,12 @@ namespace ReallifeGamemode.Server.Factions.Medic var activeDecision = HealDecisions.FirstOrDefault(d => d.dTarget == target); if(decision == false) { - ChatService.SendMessage(activeDecision.dMedic, activeDecision.dTarget.Name + " hat den Heal abgelehnt"); + activeDecision.dMedic.SendNotification(activeDecision.dTarget.Name + " hat den Heal ~r~abgelehnt",false); return; } else { - ChatService.SendMessage(activeDecision.dMedic, activeDecision.dTarget.Name + " hat den Heal akzeptiert"); + activeDecision.dMedic.SendNotification(activeDecision.dTarget.Name + " hat den Heal ~g~akzeptiert", false); using var dbContext = new DatabaseContext(); { User targetUser = target.GetUser(dbContext); From 90d435c1627420044c3b6f69ec4a94258f41587e Mon Sep 17 00:00:00 2001 From: hydrant Date: Mon, 5 Apr 2021 17:24:08 +0200 Subject: [PATCH 35/50] remove debug --- ReallifeGamemode.Server/Extensions/ClientExtension.cs | 2 -- 1 file changed, 2 deletions(-) diff --git a/ReallifeGamemode.Server/Extensions/ClientExtension.cs b/ReallifeGamemode.Server/Extensions/ClientExtension.cs index fe5d37ea..6849968d 100644 --- a/ReallifeGamemode.Server/Extensions/ClientExtension.cs +++ b/ReallifeGamemode.Server/Extensions/ClientExtension.cs @@ -311,8 +311,6 @@ namespace ReallifeGamemode.Server.Extensions } } - NAPI.Util.ConsoleOutput($"{player.Name} - Setting blip and nametag color: nametag = {nameTagColor}, blip = {blipColor}"); - user.Player.SetSharedData("nameTagColor", nameTagColor); user.Player.SetSharedData("blipColor", blipColor); } From c203a51e2f5d1fe2bfda86f3447ada7ce97fb602 Mon Sep 17 00:00:00 2001 From: kookroach Date: Mon, 5 Apr 2021 17:28:46 +0200 Subject: [PATCH 36/50] Fix RefuseCollector Job Server Side --- ReallifeGamemode.Server/Events/Disconnect.cs | 2 +- ReallifeGamemode.Server/Managers/JobManager.cs | 15 +++++++++------ 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/ReallifeGamemode.Server/Events/Disconnect.cs b/ReallifeGamemode.Server/Events/Disconnect.cs index bc8e23fc..00e16acc 100644 --- a/ReallifeGamemode.Server/Events/Disconnect.cs +++ b/ReallifeGamemode.Server/Events/Disconnect.cs @@ -99,7 +99,7 @@ namespace ReallifeGamemode.Server.Events { //if (player.Vehicle.GetData("timerJobVehicleRespawn") == true) //{ - if (player.Vehicle.GetServerVehicle() is JobVehicle vehJ) + if (player.Vehicle.GetServerVehicle() is JobVehicle vehJ && job.Id == JobManager.GetJob().Id) { player.Vehicle.ResetData("timerJobVehicleRespawn"); ServerVehicle sVeh = VehicleManager.GetServerVehicleFromVehicle(player.Vehicle); diff --git a/ReallifeGamemode.Server/Managers/JobManager.cs b/ReallifeGamemode.Server/Managers/JobManager.cs index ee82abd5..9a32e3be 100644 --- a/ReallifeGamemode.Server/Managers/JobManager.cs +++ b/ReallifeGamemode.Server/Managers/JobManager.cs @@ -13,8 +13,6 @@ using ReallifeGamemode.Server.Util; using ReallifeGamemode.Services; using ReallifeGamemode.Server.Types; - - namespace ReallifeGamemode.Server.Managers { public class JobManager : Script @@ -202,7 +200,7 @@ namespace ReallifeGamemode.Server.Managers return; } - if(player.Vehicle != null) + if (player.Vehicle != null) { player.SetData("LastVehicle", player.Vehicle); } @@ -210,6 +208,7 @@ namespace ReallifeGamemode.Server.Managers playerJobStartPosition[player] = player.Position; job.StartJob(player); } + [ServerEvent(Event.PlayerExitVehicle)] public void JobManagerPlayerExitVehicle(Player player, Vehicle veh) { @@ -299,9 +298,13 @@ namespace ReallifeGamemode.Server.Managers { if (LastVehicle != null) { - LastVehicle.ResetData("timerJobVehicleRespawn"); - ServerVehicle sVeh = VehicleManager.GetServerVehicleFromVehicle(LastVehicle); - ServerVehicleExtensions.Spawn(sVeh, LastVehicle); + if (job.Id != 2) //Müllman Handelt Fahrzeug respawn eigenständig + { + LastVehicle.ResetData("timerJobVehicleRespawn"); + ServerVehicle sVeh = VehicleManager.GetServerVehicleFromVehicle(LastVehicle); + ServerVehicleExtensions.Spawn(sVeh, LastVehicle); + } + job.StopJob(player); ChatService.SendMessage(player, $"~y~[JOB]~s~ Du hast deinen Job ~o~{job.Name}~s~ beendet."); CheckPointHandle.DeleteCheckpoints(player); From 43f2b912f4559bf0add87595edfd66a4e3578dd3 Mon Sep 17 00:00:00 2001 From: VegaZ Date: Mon, 5 Apr 2021 17:34:21 +0200 Subject: [PATCH 37/50] testen Medic --- ReallifeGamemode.Server/Events/Key.cs | 4 ++-- ReallifeGamemode.Server/Factions/Medic/Medic.cs | 2 ++ 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/ReallifeGamemode.Server/Events/Key.cs b/ReallifeGamemode.Server/Events/Key.cs index 2591ed2a..503dfc5e 100644 --- a/ReallifeGamemode.Server/Events/Key.cs +++ b/ReallifeGamemode.Server/Events/Key.cs @@ -765,9 +765,9 @@ namespace ReallifeGamemode.Server.Events if (!player.IsLoggedIn()) return; if (player.GetData("healDecision") == true) - { - player.SetData("healDecision", false); + { Medic.MakeHealDecision(player, false); + player.SetData("healDecision", false); } if (!player.IsInVehicle) return; diff --git a/ReallifeGamemode.Server/Factions/Medic/Medic.cs b/ReallifeGamemode.Server/Factions/Medic/Medic.cs index c296676f..fad61601 100644 --- a/ReallifeGamemode.Server/Factions/Medic/Medic.cs +++ b/ReallifeGamemode.Server/Factions/Medic/Medic.cs @@ -87,11 +87,13 @@ namespace ReallifeGamemode.Server.Factions.Medic if(decision == false) { activeDecision.dMedic.SendNotification(activeDecision.dTarget.Name + " hat den Heal ~r~abgelehnt",false); + activeDecision.dTarget.SendNotification("Du hast den Heal ~r~abgelehnt", false); return; } else { activeDecision.dMedic.SendNotification(activeDecision.dTarget.Name + " hat den Heal ~g~akzeptiert", false); + activeDecision.dTarget.SendNotification("Du hast den Heal ~g~akzeptiert", false); using var dbContext = new DatabaseContext(); { User targetUser = target.GetUser(dbContext); From ee08bb580a5222ca27e406e6ec2592458fd48211 Mon Sep 17 00:00:00 2001 From: kookroach Date: Mon, 5 Apr 2021 17:37:27 +0200 Subject: [PATCH 38/50] priority test --- ReallifeGamemode.Client/Jobs/RefuseCollector.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/ReallifeGamemode.Client/Jobs/RefuseCollector.ts b/ReallifeGamemode.Client/Jobs/RefuseCollector.ts index ea3e4971..7fc01490 100644 --- a/ReallifeGamemode.Client/Jobs/RefuseCollector.ts +++ b/ReallifeGamemode.Client/Jobs/RefuseCollector.ts @@ -29,8 +29,9 @@ for (var i = 0; i < posArr.length; i++) { let pos = new mp.Vector3(posArr[i].x, posArr[i].y, posArr[i].z - 1) - let newBlip = mp.blips.new(1, new mp.Vector3(pos.x, pos.y, 1000), { name: 'Mülltonne', color: 45, shortRange: false }); + let newBlip = mp.blips.new(1, new mp.Vector3(pos.x, pos.y, pos.z), { name: 'Mülltonne', color: 45, shortRange: false }); let newColShape = mp.colshapes.newSphere(posArr[i].x, posArr[i].y, posArr[i].z + 0.5, 1.75); + newBlip.setPriority(1000); newBlip.setFlashTimer(2000); From 01541557b2e940e239dc56d67019aac620dea133 Mon Sep 17 00:00:00 2001 From: VegaZ Date: Mon, 5 Apr 2021 17:44:56 +0200 Subject: [PATCH 39/50] ReviveSperre --- .../Commands/FactionCommands.cs | 1 + .../Factions/Medic/Medic.cs | 18 ++++++++++++++++++ ReallifeGamemode.Server/Util/ThreadTimers.cs | 1 + 3 files changed, 20 insertions(+) diff --git a/ReallifeGamemode.Server/Commands/FactionCommands.cs b/ReallifeGamemode.Server/Commands/FactionCommands.cs index 437b8dae..d5a42793 100644 --- a/ReallifeGamemode.Server/Commands/FactionCommands.cs +++ b/ReallifeGamemode.Server/Commands/FactionCommands.cs @@ -331,6 +331,7 @@ namespace ReallifeGamemode.Server.Commands deadPlayer.SendNotification($"Du wurdest von ~y~{player.Name}~s~ für ~g~{100.ToMoneyString()} ~s~wiederbelebt."); player.SendNotification($"Du hast ~y~{deadPlayer.Name}~s~ wiederbelebt und ~g~{Medic.ReviveIncome}$ ~s~für die Fraktion verdient."); deadPlayer.SetData("isDead", false); + deadPlayer.SetData("reviveSperre", 5); dbContext.Factions.Include(f => f.BankAccount).Where(f => f.Id == 2).First().BankAccount.Balance += Medic.ReviveIncome; diff --git a/ReallifeGamemode.Server/Factions/Medic/Medic.cs b/ReallifeGamemode.Server/Factions/Medic/Medic.cs index fad61601..73639b61 100644 --- a/ReallifeGamemode.Server/Factions/Medic/Medic.cs +++ b/ReallifeGamemode.Server/Factions/Medic/Medic.cs @@ -81,6 +81,24 @@ namespace ReallifeGamemode.Server.Factions.Medic } } + public static void UpdateReviveSperre() + { + var allRevivedPlayers = NAPI.Pools.GetAllPlayers().Where(c => c.HasData("reviveSperre")); + foreach(var player in allRevivedPlayers) + { + var timeLeft = player.GetData("reviveSperre"); + + if (timeLeft > 0) + { + player.SetData("reviveSperre", timeLeft - 1); + } + else + { + player.ResetData("reviveSperre"); + } + } + } + public static void MakeHealDecision(Player target, bool decision) { var activeDecision = HealDecisions.FirstOrDefault(d => d.dTarget == target); diff --git a/ReallifeGamemode.Server/Util/ThreadTimers.cs b/ReallifeGamemode.Server/Util/ThreadTimers.cs index 92b16424..0f96f89a 100644 --- a/ReallifeGamemode.Server/Util/ThreadTimers.cs +++ b/ReallifeGamemode.Server/Util/ThreadTimers.cs @@ -59,6 +59,7 @@ namespace ReallifeGamemode.Server.Util Jail.JailOut_Elapsed(); Economy.Timer_Elapsed(); WeaponDealManager.Timer_Elapsed(); + Medic.UpdateReviveSperre(); }); } From e02a6b6af7400e9c7c979014f5f67b6fca0cafb7 Mon Sep 17 00:00:00 2001 From: VegaZ Date: Mon, 5 Apr 2021 17:46:39 +0200 Subject: [PATCH 40/50] Fix healdec --- ReallifeGamemode.Server/Events/Key.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ReallifeGamemode.Server/Events/Key.cs b/ReallifeGamemode.Server/Events/Key.cs index 503dfc5e..9781dbaa 100644 --- a/ReallifeGamemode.Server/Events/Key.cs +++ b/ReallifeGamemode.Server/Events/Key.cs @@ -616,9 +616,9 @@ namespace ReallifeGamemode.Server.Events { if (!player.IsLoggedIn()) return; if (player.GetData("healDecision") == true) - { - player.SetData("healDecision", false); + { Medic.MakeHealDecision(player, true); + player.SetData("healDecision", false); } User u = player.GetUser(); From 8ac14e057a3569e9cb82b5cef68bd558f8ed10da Mon Sep 17 00:00:00 2001 From: kookroach Date: Mon, 5 Apr 2021 17:54:21 +0200 Subject: [PATCH 41/50] Fix --- ReallifeGamemode.Client/Jobs/RefuseCollector.ts | 4 ++-- ReallifeGamemode.Server/Managers/JobManager.cs | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/ReallifeGamemode.Client/Jobs/RefuseCollector.ts b/ReallifeGamemode.Client/Jobs/RefuseCollector.ts index 7fc01490..f5a9f4d7 100644 --- a/ReallifeGamemode.Client/Jobs/RefuseCollector.ts +++ b/ReallifeGamemode.Client/Jobs/RefuseCollector.ts @@ -29,7 +29,7 @@ for (var i = 0; i < posArr.length; i++) { let pos = new mp.Vector3(posArr[i].x, posArr[i].y, posArr[i].z - 1) - let newBlip = mp.blips.new(1, new mp.Vector3(pos.x, pos.y, pos.z), { name: 'Mülltonne', color: 45, shortRange: false }); + let newBlip = mp.blips.new(1, new mp.Vector3(pos.x, pos.y, pos.z), { name: 'Mülltonne', color: 5, shortRange: false, scale: 0.5 }); let newColShape = mp.colshapes.newSphere(posArr[i].x, posArr[i].y, posArr[i].z + 0.5, 1.75); newBlip.setPriority(1000); @@ -38,7 +38,7 @@ garbageToCollect.set(i, { blip: newBlip, colshape: newColShape }); } - blipBase = mp.blips.new(1, new mp.Vector3(-442.3999, -1701.5234, 18.933002 - 1), { name: 'Recylinganlage', color: 5, shortRange: false }); + blipBase = mp.blips.new(515, new mp.Vector3(-442.3999, -1701.5234, 18.933002 - 1), { name: 'Recylinganlage', color: 24, shortRange: false }); markerBase = mp.markers.new(1, new mp.Vector3(-442.3999, -1701.5234, 18.933002 - 1), 10, { direction: new mp.Vector3(-235.5747, -1685.475, 32.7207), color: [255, 255, 0, 150], visible: true, dimension: 0 }); colshapeBase = mp.colshapes.newSphere(-442.3999, -1701.5234, 18.933002 - 1, 10); }); diff --git a/ReallifeGamemode.Server/Managers/JobManager.cs b/ReallifeGamemode.Server/Managers/JobManager.cs index a7b4df6d..9cfe6ae4 100644 --- a/ReallifeGamemode.Server/Managers/JobManager.cs +++ b/ReallifeGamemode.Server/Managers/JobManager.cs @@ -343,7 +343,7 @@ namespace ReallifeGamemode.Server.Managers player.Heading = (57.03f); } Vehicle LastVehicle = player.GetData("LastVehicle"); - if (LastVehicle != null) + if (LastVehicle != null && job.Id != GetJob().Id) { LastVehicle.ResetData("timerJobVehicleRespawn"); ServerVehicle sVeh = VehicleManager.GetServerVehicleFromVehicle(LastVehicle); From 8a0820541eb9bca3d0c46b51578f3d2cd3b1ae58 Mon Sep 17 00:00:00 2001 From: VegaZ Date: Mon, 5 Apr 2021 17:55:23 +0200 Subject: [PATCH 42/50] Add revive-Sperre --- .../Commands/FactionCommands.cs | 6 +++ ReallifeGamemode.Server/Events/Death.cs | 37 ++++++++++--------- 2 files changed, 26 insertions(+), 17 deletions(-) diff --git a/ReallifeGamemode.Server/Commands/FactionCommands.cs b/ReallifeGamemode.Server/Commands/FactionCommands.cs index d5a42793..acad0b23 100644 --- a/ReallifeGamemode.Server/Commands/FactionCommands.cs +++ b/ReallifeGamemode.Server/Commands/FactionCommands.cs @@ -309,6 +309,12 @@ namespace ReallifeGamemode.Server.Commands ChatService.ErrorMessage(player, "Es wurde kein toter Spieler gefunden"); return; } + + if (deadPlayer.HasData("reviveSperre")) + { + ChatService.ErrorMessage(player, "Der Spieler hat eine Revivesperre"); + return; + } using (var dbContext = new DatabaseContext()) { var deadPlayerUser = deadPlayer.GetUser(dbContext); diff --git a/ReallifeGamemode.Server/Events/Death.cs b/ReallifeGamemode.Server/Events/Death.cs index 365085c1..b4edee69 100644 --- a/ReallifeGamemode.Server/Events/Death.cs +++ b/ReallifeGamemode.Server/Events/Death.cs @@ -32,6 +32,7 @@ namespace ReallifeGamemode.Server.Events player.Kick(); return; } + player.SetData("isDead", true); @@ -42,9 +43,6 @@ namespace ReallifeGamemode.Server.Events userDeath.SaveChanges(); } - - - //TODO: Zum Full Release entfernen if (player.HasData("togdeath")) { ChatService.SendMessage(player, "Du bist durch " + (killer?.Name ?? "Niemanden") + " gestorben: " + reason.ToString()); @@ -92,21 +90,26 @@ namespace ReallifeGamemode.Server.Events if (user.JailTime <= 0) { - //MEDIC AUFTRAG - MedicTask reviveTask = new MedicTask() + if (!player.HasData("reviveSperre")) { - Victim = player.Name, - Position = player.Position, - CauseOfDeath = reason.ToString(), - Caller = null, - Description = "Gestorben", - Time = DateTime.Now, - Type = MedicTaskType.REVIVE, - MedicName = "none" - }; - Medic.AddTaskToList(reviveTask); - Medic.delHealTask(player); - ChatService.BroadcastFaction("~y~[MEDIC] ~w~" + player.Name + " ist soeben verstorben.", new List() { 2 }); + //MEDIC AUFTRAG + MedicTask reviveTask = new MedicTask() + { + Victim = player.Name, + Position = player.Position, + CauseOfDeath = reason.ToString(), + Caller = null, + Description = "Gestorben", + Time = DateTime.Now, + Type = MedicTaskType.REVIVE, + MedicName = "none" + }; + Medic.AddTaskToList(reviveTask); + Medic.delHealTask(player); + ChatService.BroadcastFaction("~y~[MEDIC] ~w~" + player.Name + " ist soeben verstorben.", new List() { 2 }); + } + + if (player.GetUser().IsAdmin(AdminLevel.ADMIN) == true) { From ea65d00dd1005bb2d47cee2465bbd79394ba9f85 Mon Sep 17 00:00:00 2001 From: VegaZ Date: Mon, 5 Apr 2021 18:36:01 +0200 Subject: [PATCH 43/50] Fix Medic --- ReallifeGamemode.Client/Player/keys.ts | 2 +- ReallifeGamemode.Server/Events/Key.cs | 13 +++++++------ ReallifeGamemode.Server/Factions/Medic/Medic.cs | 14 +++++++++++++- ReallifeGamemode.Server/Util/ThreadTimers.cs | 1 + 4 files changed, 22 insertions(+), 8 deletions(-) diff --git a/ReallifeGamemode.Client/Player/keys.ts b/ReallifeGamemode.Client/Player/keys.ts index f2b84b59..f4c11e13 100644 --- a/ReallifeGamemode.Client/Player/keys.ts +++ b/ReallifeGamemode.Client/Player/keys.ts @@ -113,7 +113,7 @@ export default function keys(globalData: IGlobalData) { //N //Motor Starten mp.keys.bind(0x4E, false, function () { if (!globalData.InChat) { - mp.events.callRemote("keyPress:N", player.vehicle.getSpeed()); + mp.events.callRemote("keyPress:N"); } }); diff --git a/ReallifeGamemode.Server/Events/Key.cs b/ReallifeGamemode.Server/Events/Key.cs index 9781dbaa..b03b7da6 100644 --- a/ReallifeGamemode.Server/Events/Key.cs +++ b/ReallifeGamemode.Server/Events/Key.cs @@ -616,9 +616,10 @@ namespace ReallifeGamemode.Server.Events { if (!player.IsLoggedIn()) return; if (player.GetData("healDecision") == true) - { + { + player.ResetData("healDecision"); Medic.MakeHealDecision(player, true); - player.SetData("healDecision", false); + return; } User u = player.GetUser(); @@ -760,19 +761,19 @@ namespace ReallifeGamemode.Server.Events } [RemoteEvent("keyPress:N")] - public void KeyPressN(Player player, int vSpeed) + public void KeyPressN(Player player) { if (!player.IsLoggedIn()) return; if (player.GetData("healDecision") == true) - { + { + player.ResetData("healDecision"); Medic.MakeHealDecision(player, false); - player.SetData("healDecision", false); + return; } if (!player.IsInVehicle) return; if (player.VehicleSeat != 0) return; - if (vSpeed > 5) return; GTANetworkAPI.Vehicle v = player.Vehicle; diff --git a/ReallifeGamemode.Server/Factions/Medic/Medic.cs b/ReallifeGamemode.Server/Factions/Medic/Medic.cs index 73639b61..f886a7e9 100644 --- a/ReallifeGamemode.Server/Factions/Medic/Medic.cs +++ b/ReallifeGamemode.Server/Factions/Medic/Medic.cs @@ -99,6 +99,19 @@ namespace ReallifeGamemode.Server.Factions.Medic } } + public static void CheckHealDecisionDistanc() + { + foreach(var healAuftrag in HealDecisions) + { + if (healAuftrag.dMedic.Position.DistanceTo(healAuftrag.dTarget.Position) >= 10) + { + healAuftrag.dMedic.SendNotification("~r~Die Heal-Anfrage wurde abgebrochen"); + healAuftrag.dTarget.SendNotification("~r~Die Heal-Anfrage wurde abgebrochen"); + healAuftrag.dTarget.ResetData("healDecision"); + } + } + } + public static void MakeHealDecision(Player target, bool decision) { var activeDecision = HealDecisions.FirstOrDefault(d => d.dTarget == target); @@ -106,7 +119,6 @@ namespace ReallifeGamemode.Server.Factions.Medic { activeDecision.dMedic.SendNotification(activeDecision.dTarget.Name + " hat den Heal ~r~abgelehnt",false); activeDecision.dTarget.SendNotification("Du hast den Heal ~r~abgelehnt", false); - return; } else { diff --git a/ReallifeGamemode.Server/Util/ThreadTimers.cs b/ReallifeGamemode.Server/Util/ThreadTimers.cs index 0f96f89a..9e5ff500 100644 --- a/ReallifeGamemode.Server/Util/ThreadTimers.cs +++ b/ReallifeGamemode.Server/Util/ThreadTimers.cs @@ -49,6 +49,7 @@ namespace ReallifeGamemode.Server.Util NAPI.Task.Run(() => { Medic.UpdateTaskTimeLeft(); + Medic.CheckHealDecisionDistanc(); }); } From 2b547fdab3188a9472b25d3f15165c266b5cc39e Mon Sep 17 00:00:00 2001 From: kookroach Date: Mon, 5 Apr 2021 18:42:17 +0200 Subject: [PATCH 44/50] blip blup --- ReallifeGamemode.Client/Gui/blips.ts | 10 +++------- ReallifeGamemode.Client/Jobs/RefuseCollector.ts | 2 +- 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/ReallifeGamemode.Client/Gui/blips.ts b/ReallifeGamemode.Client/Gui/blips.ts index b02ca9f7..3cbf73be 100644 --- a/ReallifeGamemode.Client/Gui/blips.ts +++ b/ReallifeGamemode.Client/Gui/blips.ts @@ -1,8 +1,4 @@ - - -export default function playerBlips() { - - +export default function playerBlips() { var playerBlipMap: Map; var ready = false; @@ -14,9 +10,10 @@ export default function playerBlips() { (player) => { if (mp.players.local == player) return; - + if (!playerBlipMap.has(player)) { let pBlip = mp.blips.new(1, player.position, { + alpha: 200, shortRange: true, dimension: mp.players.local.dimension, drawDistance: 300 @@ -47,7 +44,6 @@ export default function playerBlips() { } }); - mp.events.addDataHandler("blipColor", (entity, value) => { if (entity.type === "player") { let color = parseInt(value); diff --git a/ReallifeGamemode.Client/Jobs/RefuseCollector.ts b/ReallifeGamemode.Client/Jobs/RefuseCollector.ts index f5a9f4d7..673e4cfd 100644 --- a/ReallifeGamemode.Client/Jobs/RefuseCollector.ts +++ b/ReallifeGamemode.Client/Jobs/RefuseCollector.ts @@ -29,7 +29,7 @@ for (var i = 0; i < posArr.length; i++) { let pos = new mp.Vector3(posArr[i].x, posArr[i].y, posArr[i].z - 1) - let newBlip = mp.blips.new(1, new mp.Vector3(pos.x, pos.y, pos.z), { name: 'Mülltonne', color: 5, shortRange: false, scale: 0.5 }); + let newBlip = mp.blips.new(1, new mp.Vector3(pos.x, pos.y, pos.z), { name: 'Mülltonne', color: 0, shortRange: false, scale: 0.7 }); let newColShape = mp.colshapes.newSphere(posArr[i].x, posArr[i].y, posArr[i].z + 0.5, 1.75); newBlip.setPriority(1000); From 90db2d66b1d9c4d3dbbeb7cc949e151d1f2ce0de Mon Sep 17 00:00:00 2001 From: VegaZ Date: Mon, 5 Apr 2021 18:45:18 +0200 Subject: [PATCH 45/50] Fix Sani Decision --- ReallifeGamemode.Server/Factions/Medic/Medic.cs | 4 +++- ReallifeGamemode.Server/Util/ThreadTimers.cs | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/ReallifeGamemode.Server/Factions/Medic/Medic.cs b/ReallifeGamemode.Server/Factions/Medic/Medic.cs index f886a7e9..2c4a1154 100644 --- a/ReallifeGamemode.Server/Factions/Medic/Medic.cs +++ b/ReallifeGamemode.Server/Factions/Medic/Medic.cs @@ -99,7 +99,7 @@ namespace ReallifeGamemode.Server.Factions.Medic } } - public static void CheckHealDecisionDistanc() + public static void CheckHealDecisionDistance() { foreach(var healAuftrag in HealDecisions) { @@ -108,6 +108,8 @@ namespace ReallifeGamemode.Server.Factions.Medic healAuftrag.dMedic.SendNotification("~r~Die Heal-Anfrage wurde abgebrochen"); healAuftrag.dTarget.SendNotification("~r~Die Heal-Anfrage wurde abgebrochen"); healAuftrag.dTarget.ResetData("healDecision"); + var activeDecision = HealDecisions.FirstOrDefault(d => d.dTarget == healAuftrag.dTarget); + HealDecisions.Remove(activeDecision); } } } diff --git a/ReallifeGamemode.Server/Util/ThreadTimers.cs b/ReallifeGamemode.Server/Util/ThreadTimers.cs index 9e5ff500..1d79d970 100644 --- a/ReallifeGamemode.Server/Util/ThreadTimers.cs +++ b/ReallifeGamemode.Server/Util/ThreadTimers.cs @@ -49,7 +49,7 @@ namespace ReallifeGamemode.Server.Util NAPI.Task.Run(() => { Medic.UpdateTaskTimeLeft(); - Medic.CheckHealDecisionDistanc(); + Medic.CheckHealDecisionDistance(); }); } From 6476a51ffd04c7f8c98afa7916e6095448d51443 Mon Sep 17 00:00:00 2001 From: kookroach Date: Mon, 5 Apr 2021 18:48:11 +0200 Subject: [PATCH 46/50] blip ^size --- ReallifeGamemode.Client/Gui/blips.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/ReallifeGamemode.Client/Gui/blips.ts b/ReallifeGamemode.Client/Gui/blips.ts index 3cbf73be..5b8e829d 100644 --- a/ReallifeGamemode.Client/Gui/blips.ts +++ b/ReallifeGamemode.Client/Gui/blips.ts @@ -16,7 +16,8 @@ alpha: 200, shortRange: true, dimension: mp.players.local.dimension, - drawDistance: 300 + drawDistance: 300, + scale: 0.7, }); pBlip.setCategory(7); From 44e1cca2b8c996d9911b6fd96a662e9305c917d5 Mon Sep 17 00:00:00 2001 From: VegaZ Date: Mon, 5 Apr 2021 18:50:20 +0200 Subject: [PATCH 47/50] Fix Healdecisions --- ReallifeGamemode.Server/Factions/Medic/Medic.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ReallifeGamemode.Server/Factions/Medic/Medic.cs b/ReallifeGamemode.Server/Factions/Medic/Medic.cs index 2c4a1154..58cc2edb 100644 --- a/ReallifeGamemode.Server/Factions/Medic/Medic.cs +++ b/ReallifeGamemode.Server/Factions/Medic/Medic.cs @@ -101,7 +101,7 @@ namespace ReallifeGamemode.Server.Factions.Medic public static void CheckHealDecisionDistance() { - foreach(var healAuftrag in HealDecisions) + foreach(var healAuftrag in HealDecisions.ToList()) { if (healAuftrag.dMedic.Position.DistanceTo(healAuftrag.dTarget.Position) >= 10) { @@ -109,7 +109,7 @@ namespace ReallifeGamemode.Server.Factions.Medic healAuftrag.dTarget.SendNotification("~r~Die Heal-Anfrage wurde abgebrochen"); healAuftrag.dTarget.ResetData("healDecision"); var activeDecision = HealDecisions.FirstOrDefault(d => d.dTarget == healAuftrag.dTarget); - HealDecisions.Remove(activeDecision); + HealDecisions.Remove(healAuftrag); } } } From ed704b7ed9b5105192d46070f2edfc0abe70c6fd Mon Sep 17 00:00:00 2001 From: VegaZ Date: Mon, 5 Apr 2021 18:55:54 +0200 Subject: [PATCH 48/50] Fix range --- ReallifeGamemode.Server/Commands/FactionCommands.cs | 2 +- ReallifeGamemode.Server/Factions/Medic/Medic.cs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/ReallifeGamemode.Server/Commands/FactionCommands.cs b/ReallifeGamemode.Server/Commands/FactionCommands.cs index acad0b23..faae6191 100644 --- a/ReallifeGamemode.Server/Commands/FactionCommands.cs +++ b/ReallifeGamemode.Server/Commands/FactionCommands.cs @@ -363,7 +363,7 @@ namespace ReallifeGamemode.Server.Commands return; } - if(player.Position.DistanceTo(target.Position) > 3) + if(player.Position.DistanceTo(target.Position) > 5) { ChatService.ErrorMessage(player, "Der Patient ist zu weit entfernt"); return; diff --git a/ReallifeGamemode.Server/Factions/Medic/Medic.cs b/ReallifeGamemode.Server/Factions/Medic/Medic.cs index 58cc2edb..f4050385 100644 --- a/ReallifeGamemode.Server/Factions/Medic/Medic.cs +++ b/ReallifeGamemode.Server/Factions/Medic/Medic.cs @@ -103,7 +103,7 @@ namespace ReallifeGamemode.Server.Factions.Medic { foreach(var healAuftrag in HealDecisions.ToList()) { - if (healAuftrag.dMedic.Position.DistanceTo(healAuftrag.dTarget.Position) >= 10) + if (healAuftrag.dMedic.Position.DistanceTo(healAuftrag.dTarget.Position) > 5) { healAuftrag.dMedic.SendNotification("~r~Die Heal-Anfrage wurde abgebrochen"); healAuftrag.dTarget.SendNotification("~r~Die Heal-Anfrage wurde abgebrochen"); From 005ff5be2cde438f5c72db7c52bddaa70e84bc0c Mon Sep 17 00:00:00 2001 From: hydrant Date: Mon, 5 Apr 2021 18:07:54 +0200 Subject: [PATCH 49/50] invite fraklohn und waffenkammer fix --- ReallifeGamemode.Server/Managers/InteractionManager.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ReallifeGamemode.Server/Managers/InteractionManager.cs b/ReallifeGamemode.Server/Managers/InteractionManager.cs index 0ad66ab3..5d6875fc 100644 --- a/ReallifeGamemode.Server/Managers/InteractionManager.cs +++ b/ReallifeGamemode.Server/Managers/InteractionManager.cs @@ -63,7 +63,7 @@ namespace ReallifeGamemode.Server.Managers own.FactionRank = dbContext .FactionRanks .OrderBy(x => x.Order) - .Where(r => r.FactionId == own.FactionId) + .Where(r => r.FactionId == u.FactionId) .FirstOrDefault(); ChatService.SendMessage(leader, "!{02FCFF}" + player.Name + " hat die Einladung angenommen."); From 696cd5f6f56b67fe79f01f0763650e3e9a453852 Mon Sep 17 00:00:00 2001 From: hydrant Date: Mon, 5 Apr 2021 18:53:05 +0200 Subject: [PATCH 50/50] fix wanteds nametag blip --- 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 6849968d..ebdee723 100644 --- a/ReallifeGamemode.Server/Extensions/ClientExtension.cs +++ b/ReallifeGamemode.Server/Extensions/ClientExtension.cs @@ -129,9 +129,9 @@ namespace ReallifeGamemode.Server.Extensions { User dbUser = dbContext.Users.Where(u => u.Id == user.Id).FirstOrDefault(); dbUser.Wanteds = newWanteds; + dbUser.SetBlipAndNametagColor(); dbContext.SaveChanges(); } - user.SetBlipAndNametagColor(); ChatService.SendMessage(user.Player, "!{#FF614A}Du hast ein Verbrechen begangen: " + reason + "" + (cop != null ? " | Gemeldet von: " + cop.Name + "." : "")); ChatService.SendMessage(user.Player, " !{#FFFF00}Fahnundgslevel:~s~ " + newWanteds);