diff --git a/Horse Isle Server/HorseIsleServer/Game/Items/DroppedItems.cs b/Horse Isle Server/HorseIsleServer/Game/Items/DroppedItems.cs index 55348c1..d07fabc 100755 --- a/Horse Isle Server/HorseIsleServer/Game/Items/DroppedItems.cs +++ b/Horse Isle Server/HorseIsleServer/Game/Items/DroppedItems.cs @@ -106,6 +106,8 @@ namespace HISP.Game.Items droppedItemsList[i].DespawnTimer--; if(droppedItemsList[i].DespawnTimer <= 0) { + if (GameServer.GetUsersAt(droppedItemsList[i].X, droppedItemsList[i].Y, true, true).Length > 0) // Dont despawn items players are standing on + continue; Logger.DebugPrint("Despawned Item at " + droppedItemsList[i].X + ", " + droppedItemsList[i].Y); RemoveDroppedItem(droppedItemsList[i]); } diff --git a/Horse Isle Server/HorseIsleServer/Server/GameServer.cs b/Horse Isle Server/HorseIsleServer/Server/GameServer.cs index a5f0fe8..3a7fcfb 100755 --- a/Horse Isle Server/HorseIsleServer/Server/GameServer.cs +++ b/Horse Isle Server/HorseIsleServer/Server/GameServer.cs @@ -2933,18 +2933,17 @@ namespace HISP.Server string chatMsg = Messages.GrabAllItemsMessage; DroppedItems.DroppedItem[] droppedItems = DroppedItems.GetItemsAt(sender.LoggedinUser.X, sender.LoggedinUser.Y); - try + foreach (DroppedItems.DroppedItem item in droppedItems) { - foreach (DroppedItems.DroppedItem item in droppedItems) + try { sender.LoggedinUser.Inventory.Add(item.Instance); DroppedItems.RemoveDroppedItem(item); } - } - catch (InventoryException) - { - chatMsg = Messages.GrabbedAllItemsButInventoryFull; - break; + catch (InventoryException) + { + chatMsg = Messages.GrabbedAllItemsButInventoryFull; + } } UpdateAreaForAll(sender.LoggedinUser.X, sender.LoggedinUser.Y);