From 76c11152f2e1fc8aaeadf54fd42c6283e83b638d Mon Sep 17 00:00:00 2001 From: VegaZ Date: Mon, 24 Dec 2018 15:18:22 +0100 Subject: [PATCH] Adjust item drop --- Server/Extensions/ClientExtension.cs | 12 ++++++++++++ Server/Managers/InventoryManager.cs | 4 +++- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/Server/Extensions/ClientExtension.cs b/Server/Extensions/ClientExtension.cs index a7334ff6..53b3d7e6 100644 --- a/Server/Extensions/ClientExtension.cs +++ b/Server/Extensions/ClientExtension.cs @@ -66,5 +66,17 @@ namespace reallife_gamemode.Server.Extensions { return player.HasData("isLoggedIn") ? player.GetData("isLoggedIn") : false; } + + public static Vector3 GetPositionFromPlayer(Client player, float distance, int offset = 0) + { + var pos = player.Position; + var a = player.Heading + offset; + var rad = a * Math.PI / 180; + var newpos = new Vector3(pos.X + (distance * Math.Sin(-rad)), + pos.Y + (distance * Math.Cos(-rad)), + pos.Z); + return newpos; + } + } } diff --git a/Server/Managers/InventoryManager.cs b/Server/Managers/InventoryManager.cs index 039b954d..f761064f 100644 --- a/Server/Managers/InventoryManager.cs +++ b/Server/Managers/InventoryManager.cs @@ -304,7 +304,9 @@ namespace reallife_gamemode.Server.Managers if (iItem is IDroppableItem usableItemObj2) { - Vector3 dropPosition = new Vector3(player.Position.X, player.Position.Y, player.Position.Z - 0.8f); + Vector3 dropPosition = ClientExtension.GetPositionFromPlayer(player, 0.6f, 0); + dropPosition.Z -= 0.8f; + //new Vector3(player.Position.X, player.Position.Y, player.Position.Z - 0.8f); Random r = new Random(); GTANetworkAPI.Object grndObject = NAPI.Object.CreateObject(3777723516, dropPosition, new Vector3(0, 0, r.Next(0, 360)), 0); GroundItem grndItem = new GroundItem { ItemId = iItem.Id, Amount = amount, Position = dropPosition};