From cf6fa13080769f88c81bfdd4a9013ecabef2d144 Mon Sep 17 00:00:00 2001 From: kookroach <62265045+kookroach@users.noreply.github.com> Date: Sun, 4 Apr 2021 22:42:49 +0200 Subject: [PATCH] Attachmen Manager --- ReallifeGamemode.Client/util/attachmentMngr.ts | 8 ++++---- ReallifeGamemode.Server/Events/Key.cs | 10 ++++++++-- ReallifeGamemode.Server/Inventory/GroundItem.cs | 2 +- ReallifeGamemode.Server/Job/RefuseCollectorJob.cs | 10 ++++++++-- ReallifeGamemode.Server/Managers/PositionManager.cs | 2 +- .../WeaponDeal/WeaponDealManager.cs | 3 +++ package-lock.json | 3 +++ 7 files changed, 28 insertions(+), 10 deletions(-) create mode 100644 package-lock.json diff --git a/ReallifeGamemode.Client/util/attachmentMngr.ts b/ReallifeGamemode.Client/util/attachmentMngr.ts index 41c07536..e35305ba 100644 --- a/ReallifeGamemode.Client/util/attachmentMngr.ts +++ b/ReallifeGamemode.Client/util/attachmentMngr.ts @@ -19,14 +19,14 @@ export default function attachmentManager(game: IGame) { addFor: async function (entity, id) { if (this.attachments.hasOwnProperty(id)) { + if (!entity.__attachmentObjects) { + entity.__attachmentObjects = {}; + } if (!entity.__attachmentObjects.hasOwnProperty(id)) { let attInfo = this.attachments[id]; let object = mp.objects.new(attInfo.model, entity.position); - while (object.handle === 0) { - await mp.game.waitAsync(0); - } - + object.__attMgrData = { targetEntity: entity.handle, bone: (typeof (attInfo.boneName) === 'string') ? entity.getBoneIndexByName(attInfo.boneName) : entity.getBoneIndex(attInfo.boneName), diff --git a/ReallifeGamemode.Server/Events/Key.cs b/ReallifeGamemode.Server/Events/Key.cs index bd5527fe..3b81ba64 100644 --- a/ReallifeGamemode.Server/Events/Key.cs +++ b/ReallifeGamemode.Server/Events/Key.cs @@ -218,8 +218,16 @@ namespace ReallifeGamemode.Server.Events List vehicleItems = dbContext.VehicleItems.ToList().Where(f => f.GetVehicle().GetVehicle() == nearestBehindVehiclePoint.vehicle && InventoryManager.GetItemById(f.ItemId) is IWeaponDealItem).ToList(); if (vehicleItems.Count == 0) { + GTANetworkAPI.Vehicle vehicle = nearestBehindVehiclePoint.vehicle; + if (vehicle.HasAttachment("weapondeal")) + { + vehicle.AddAttachment("weapondeal", true); + vehicle.AddAttachment("weapondeal1", true); + vehicle.AddAttachment("weapondeal2", true); + } + if (WeaponDealManager.checkWeaponDbyVehicle(vehicle)) { vehicle.ResetData("WeaponDealLoad"); @@ -365,13 +373,11 @@ namespace ReallifeGamemode.Server.Events using (var context = new DatabaseContext()) { - /* if (player.HasAttachment("ammobox")) { player.AddAttachment("ammobox", true); player.StopAnimation(); } - */ bool unloadedWeaponPackage = false; List fItem = context.UserItems.Where(u => u.UserId == user.Id).ToList(); diff --git a/ReallifeGamemode.Server/Inventory/GroundItem.cs b/ReallifeGamemode.Server/Inventory/GroundItem.cs index 2737d5fc..25f8dcb6 100644 --- a/ReallifeGamemode.Server/Inventory/GroundItem.cs +++ b/ReallifeGamemode.Server/Inventory/GroundItem.cs @@ -102,7 +102,7 @@ namespace ReallifeGamemode.Server.Inventory if (!player.HasAttachment("ammobox")) { player.PlayAnimation("anim@heists@box_carry@", "idle", 49); - //player.AddAttachment("ammobox", false); + player.AddAttachment("ammobox", false); NAPI.Player.SetPlayerCurrentWeapon(player, WeaponHash.Unarmed); } } diff --git a/ReallifeGamemode.Server/Job/RefuseCollectorJob.cs b/ReallifeGamemode.Server/Job/RefuseCollectorJob.cs index a348d29a..bf091a09 100644 --- a/ReallifeGamemode.Server/Job/RefuseCollectorJob.cs +++ b/ReallifeGamemode.Server/Job/RefuseCollectorJob.cs @@ -195,6 +195,12 @@ namespace ReallifeGamemode.Server.Job muellmanData.Remove(data); return; } + + if (player.HasAttachment("binbag")) + { + player.AddAttachment("binbag", true); + } + ChatService.SendMessage(data.getPartnerClient(player), $"~y~[Job] ~s~Dein Partner hat den Job beendet."); data.removeClientFromData(player); @@ -211,7 +217,7 @@ namespace ReallifeGamemode.Server.Job Player target = data.getPartnerClient(player); if (target != null) target.TriggerEvent("MuellmannUpdateColshape", colshapeIndex); player.TriggerEvent("renderTextOnScreen", "Wirf den Müllsack in den Müllwagen."); - //player.AddAttachment("binbag", false); + player.AddAttachment("binbag", false); return; } } @@ -240,7 +246,7 @@ namespace ReallifeGamemode.Server.Job target.SendNotification("Müllsack: " + data.getTrashCount() + " von " + MAX_BAG + "."); } - // player.AddAttachment("binbag", true); + player.AddAttachment("binbag", true); if (data.getTrashCount() == MAX_BAG) { diff --git a/ReallifeGamemode.Server/Managers/PositionManager.cs b/ReallifeGamemode.Server/Managers/PositionManager.cs index 19736b30..ab097f63 100644 --- a/ReallifeGamemode.Server/Managers/PositionManager.cs +++ b/ReallifeGamemode.Server/Managers/PositionManager.cs @@ -348,7 +348,7 @@ public class BehindVehiclePoint if (!player.HasAttachment("ammobox")) { player.PlayAnimation("anim@heists@box_carry@", "idle", 49); - //player.AddAttachment("ammobox", false); + player.AddAttachment("ammobox", false); NAPI.Player.SetPlayerCurrentWeapon(player, WeaponHash.Unarmed); } } diff --git a/ReallifeGamemode.Server/WeaponDeal/WeaponDealManager.cs b/ReallifeGamemode.Server/WeaponDeal/WeaponDealManager.cs index 77bbe84a..e6f28349 100644 --- a/ReallifeGamemode.Server/WeaponDeal/WeaponDealManager.cs +++ b/ReallifeGamemode.Server/WeaponDeal/WeaponDealManager.cs @@ -185,6 +185,9 @@ namespace ReallifeGamemode.Server.WeaponDeal Vehicle fVeh = VehicleManager.GetVehicleFromServerVehicle(factionVehicle); fVeh.SetData("weaponDeal", false); fVeh.SetData("WeaponDealLoad", true); + fVeh.AddAttachment("weapondeal", false); + fVeh.AddAttachment("weapondeal1", false); + fVeh.AddAttachment("weapondeal2", false); InventoryManager.RemoveAllItemsfromVehicleInventory(fVeh); int oMembers = NAPI.Pools.GetAllPlayers().Where(p => p.IsLoggedIn() && p.GetUser(context).FactionId == user.FactionId).Count(); diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 00000000..48e341a0 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,3 @@ +{ + "lockfileVersion": 1 +}