diff --git a/ReallifeGamemode.Client/Jobs/RefuseCollector.ts b/ReallifeGamemode.Client/Jobs/RefuseCollector.ts index ea5b2729..e6354785 100644 --- a/ReallifeGamemode.Client/Jobs/RefuseCollector.ts +++ b/ReallifeGamemode.Client/Jobs/RefuseCollector.ts @@ -12,6 +12,8 @@ var ShapeTonneBase = null; var vehicle = null; + var interval = null; + var BlipTonne = []; var ShapeTonne = []; @@ -71,7 +73,7 @@ if (Shape != ShapeTonne[i]) continue; if (!Traegt) { if (!HintenVoll) { - mp.events.callRemote('CLIENT:MuellmannImShape', JSON.stringify(Shape)); + mp.events.callRemote('CLIENT:MuellmannImShape', i); Traegt = true; BlipTonne[i].destroy(); BlipTonne[i] = null; @@ -80,7 +82,7 @@ MuellSack = mp.objects.new(600967813, mp.players.local.position, { rotation: new mp.Vector3(0.0, 0.0, 0.0), alpha: 255, dimension: 0 }); MuellSack.attachTo(mp.players.local.handle, mp.players.local.getBoneIndex(6286), 0.45, -0.9, -0.075, 270.0, 0.0, 25.0, true, true, false, false, 0, true); - createMarker(); + interval = setInterval(function () { createMarker(); }, 250); } else { mp.gui.chat.push("Der Müllwagen ist bereits voll! Fahre zur Base und lade ab!"); @@ -98,6 +100,8 @@ Traegt = false; mp.events.callRemote('CLIENT:MuellmannAddSack'); + clearInterval(interval); + if (BlipTonneHinten) BlipTonneHinten.destroy(); BlipTonneHinten = null; if (CheckpointTonneHinten) CheckpointTonneHinten.destroy(); @@ -115,17 +119,13 @@ HintenVoll = false; } }); - mp.events.add("MuellmannUpdateColshape", (jsonColShape) => { - let ColShape = JSON.parse(jsonColShape); - for (var i = 0; i < ShapeTonne.length; i++) { - if (ColShape != ShapeTonne[i]) continue; - BlipTonne[i].destroy(); - BlipTonne[i] = null; - ShapeTonne[i].destroy(); - ShapeTonne[i] = null; - } - - + 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("SERVER:MuellmannZuBase", () => { diff --git a/ReallifeGamemode.Server/Job/RefuseCollectorJob.cs b/ReallifeGamemode.Server/Job/RefuseCollectorJob.cs index 6e93c586..6182bca8 100644 --- a/ReallifeGamemode.Server/Job/RefuseCollectorJob.cs +++ b/ReallifeGamemode.Server/Job/RefuseCollectorJob.cs @@ -118,49 +118,34 @@ namespace ReallifeGamemode.Server.Job public void MuellmannJobBeenden(Player player) { - if (player.IsInVehicle) + ChatService.SendMessage((Player)player, "~g~Du hast den Müllmann-Job beendet!"); + player.TriggerEvent("SERVER:MuellmannStatusFalse"); + player.TriggerEvent("SERVER:MuellmannBCSEntfernen"); + + foreach (var data in muellmanData) { - Vehicle vehicle = player.Vehicle; - if (vehicle.Model == (uint)Types.VehicleModel.Trash || vehicle.Model == (uint)Types.VehicleModel.Trash2) + if (data.getDataFromClient(player) == null) continue; + + if (data.hasFreePlace()) { - ChatService.SendMessage((Player)player, "~g~Du hast den Müllmann-Job beendet!"); - player.TriggerEvent("SERVER:MuellmannStatusFalse"); - player.TriggerEvent("SERVER:MuellmannBCSEntfernen"); - - foreach (var data in muellmanData) - { - if (data.getDataFromClient(player) == null) continue; - - if (data.hasFreePlace()) - { - muellmanData.Remove(data); - //müllwagen respawnen - return; - } - - data.removeClientFromData(player); - return; - } + muellmanData.Remove(data); + //müllwagen respawnen + return; } - else - { - ChatService.SendMessage((Player)player, "~r~INFO: Das ist kein Müllwagen!"); - } - } - else - { - ChatService.SendMessage((Player)player, "~r~INFO: Zum Job beenden musst du im Auto sein."); + + data.removeClientFromData(player); + return; } } [RemoteEvent("CLIENT:MuellmannImShape")] - public void MuellmannImShape(Player player, string jsonColShape) + public void MuellmannImShape(Player player, int colshapeIndex) { foreach (var data in muellmanData) { if (data.getDataFromClient(player) == null) continue; Player target = data.getPartnerClient(player); - if (target != null) target.TriggerEvent("MuellmannUpdateColshape", jsonColShape); + if (target != null) target.TriggerEvent("MuellmannUpdateColshape", colshapeIndex); ChatService.SendMessage((Player)player, "Du hast den Müllsack in der Hand. Bringe ihm zum Müllwagen hinten."); return; } diff --git a/ReallifeGamemode.Server/Managers/JobManager.cs b/ReallifeGamemode.Server/Managers/JobManager.cs index 0375b32c..e09f54b6 100644 --- a/ReallifeGamemode.Server/Managers/JobManager.cs +++ b/ReallifeGamemode.Server/Managers/JobManager.cs @@ -267,7 +267,7 @@ namespace ReallifeGamemode.Server.Managers } [ServerEvent(Event.PlayerDeath)] - private void JobManagerOnPlayerDeath(Player player) + private void JobManagerOnPlayerDeath(Player player, Player killer, uint reason) { if (JobManager.GetJob().GetUsersInJob().Contains(player)) { JobManager.GetJob().MuellmannOnPlayerDeath(player); } }