mirror of
https://bitbucket.org/Ioncannon/project-meteor-server.git
synced 2025-04-21 20:27:47 +00:00
Removed the inventory lock stuff.
This commit is contained in:
parent
5fd48fad6b
commit
08dfd22bfa
1 changed files with 298 additions and 358 deletions
|
@ -124,8 +124,6 @@ namespace FFXIVClassic_Map_Server.actors.chara.player
|
|||
}
|
||||
|
||||
public INV_ERROR AddItem(InventoryItem itemRef)
|
||||
{
|
||||
lock (inventoryLock)
|
||||
{
|
||||
//If it isn't a single item (ie: armor) just add like normal (not valid for BAZAAR)
|
||||
if (itemPackageCode != BAZAAR && itemRef.GetItemData().maxStack > 1)
|
||||
|
@ -152,11 +150,8 @@ namespace FFXIVClassic_Map_Server.actors.chara.player
|
|||
|
||||
return INV_ERROR.SUCCESS;
|
||||
}
|
||||
}
|
||||
|
||||
public INV_ERROR AddItem(uint itemId, int quantity, byte quality)
|
||||
{
|
||||
lock (inventoryLock)
|
||||
{
|
||||
if (!IsSpaceForAdd(itemId, quantity, quality))
|
||||
return INV_ERROR.INVENTORY_FULL;
|
||||
|
@ -218,17 +213,13 @@ namespace FFXIVClassic_Map_Server.actors.chara.player
|
|||
|
||||
return INV_ERROR.SUCCESS;
|
||||
}
|
||||
}
|
||||
|
||||
public void SetItem(ushort slot, InventoryItem item)
|
||||
{
|
||||
lock (inventoryLock)
|
||||
{
|
||||
list[slot] = item;
|
||||
SendUpdatePackets();
|
||||
item.RefreshPositioning(owner, itemPackageCode, slot);
|
||||
}
|
||||
}
|
||||
|
||||
public void RemoveItem(uint itemId)
|
||||
{
|
||||
|
@ -241,8 +232,6 @@ namespace FFXIVClassic_Map_Server.actors.chara.player
|
|||
}
|
||||
|
||||
public void RemoveItem(uint itemId, int quantity, int quality)
|
||||
{
|
||||
lock (inventoryLock)
|
||||
{
|
||||
if (!HasItem(itemId, quantity, quality))
|
||||
return;
|
||||
|
@ -290,7 +279,6 @@ namespace FFXIVClassic_Map_Server.actors.chara.player
|
|||
DoRealign();
|
||||
SendUpdatePackets();
|
||||
}
|
||||
}
|
||||
|
||||
public void RemoveItem(InventoryItem item)
|
||||
{
|
||||
|
@ -303,8 +291,6 @@ namespace FFXIVClassic_Map_Server.actors.chara.player
|
|||
}
|
||||
|
||||
public void RemoveItemByUniqueId(ulong itemDBId, int quantity)
|
||||
{
|
||||
lock (inventoryLock)
|
||||
{
|
||||
ushort slot = 0;
|
||||
InventoryItem toDelete = null;
|
||||
|
@ -342,11 +328,8 @@ namespace FFXIVClassic_Map_Server.actors.chara.player
|
|||
DoRealign();
|
||||
SendUpdatePackets();
|
||||
}
|
||||
}
|
||||
|
||||
public void RemoveItemAtSlot(ushort slot)
|
||||
{
|
||||
lock (inventoryLock)
|
||||
{
|
||||
if (slot >= endOfListIndex)
|
||||
return;
|
||||
|
@ -360,11 +343,8 @@ namespace FFXIVClassic_Map_Server.actors.chara.player
|
|||
DoRealign();
|
||||
SendUpdatePackets();
|
||||
}
|
||||
}
|
||||
|
||||
public void RemoveItemAtSlot(ushort slot, int quantity)
|
||||
{
|
||||
lock (inventoryLock)
|
||||
{
|
||||
if (slot >= endOfListIndex)
|
||||
return;
|
||||
|
@ -388,11 +368,8 @@ namespace FFXIVClassic_Map_Server.actors.chara.player
|
|||
SendUpdatePackets();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void Clear()
|
||||
{
|
||||
lock (inventoryLock)
|
||||
{
|
||||
for (int i = 0; i < endOfListIndex; i++)
|
||||
{
|
||||
|
@ -404,7 +381,6 @@ namespace FFXIVClassic_Map_Server.actors.chara.player
|
|||
|
||||
SendUpdatePackets();
|
||||
}
|
||||
}
|
||||
|
||||
public InventoryItem[] GetRawList()
|
||||
{
|
||||
|
@ -429,26 +405,18 @@ namespace FFXIVClassic_Map_Server.actors.chara.player
|
|||
|
||||
#region Packet Functions
|
||||
public void SendFullInventory(Player player)
|
||||
{
|
||||
lock (inventoryLock)
|
||||
{
|
||||
player.QueuePacket(InventorySetBeginPacket.BuildPacket(owner.actorId, itemPackageCapacity, itemPackageCode));
|
||||
SendInventoryPackets(player, 0);
|
||||
player.QueuePacket(InventorySetEndPacket.BuildPacket(owner.actorId));
|
||||
}
|
||||
}
|
||||
|
||||
private void SendInventoryPackets(Player player, InventoryItem item)
|
||||
{
|
||||
lock (inventoryLock)
|
||||
{
|
||||
player.QueuePacket(InventoryListX01Packet.BuildPacket(owner.actorId, item));
|
||||
}
|
||||
}
|
||||
|
||||
private void SendInventoryPackets(Player player, List<InventoryItem> items)
|
||||
{
|
||||
lock (inventoryLock)
|
||||
{
|
||||
int currentIndex = 0;
|
||||
|
||||
|
@ -471,11 +439,8 @@ namespace FFXIVClassic_Map_Server.actors.chara.player
|
|||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void SendInventoryPackets(Player player, int startOffset)
|
||||
{
|
||||
lock (inventoryLock)
|
||||
{
|
||||
int currentIndex = startOffset;
|
||||
|
||||
|
@ -502,19 +467,13 @@ namespace FFXIVClassic_Map_Server.actors.chara.player
|
|||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void SendInventoryRemovePackets(Player player, ushort index)
|
||||
{
|
||||
lock (inventoryLock)
|
||||
{
|
||||
player.QueuePacket(InventoryRemoveX01Packet.BuildPacket(owner.actorId, index));
|
||||
}
|
||||
}
|
||||
|
||||
private void SendInventoryRemovePackets(Player player, List<ushort> indexes)
|
||||
{
|
||||
lock (inventoryLock)
|
||||
{
|
||||
int currentIndex = 0;
|
||||
|
||||
|
@ -537,37 +496,27 @@ namespace FFXIVClassic_Map_Server.actors.chara.player
|
|||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void RefreshItem(Player player, InventoryItem item)
|
||||
{
|
||||
lock (inventoryLock)
|
||||
{
|
||||
player.QueuePacket(InventorySetBeginPacket.BuildPacket(owner.actorId, itemPackageCapacity, itemPackageCode));
|
||||
SendInventoryPackets(player, item);
|
||||
player.QueuePacket(InventorySetEndPacket.BuildPacket(owner.actorId));
|
||||
}
|
||||
}
|
||||
|
||||
public void RefreshItem(Player player, params InventoryItem[] items)
|
||||
{
|
||||
lock (inventoryLock)
|
||||
{
|
||||
player.QueuePacket(InventorySetBeginPacket.BuildPacket(owner.actorId, itemPackageCapacity, itemPackageCode));
|
||||
SendInventoryPackets(player, items.ToList());
|
||||
player.QueuePacket(InventorySetEndPacket.BuildPacket(owner.actorId));
|
||||
}
|
||||
}
|
||||
|
||||
public void RefreshItem(Player player, List<InventoryItem> items)
|
||||
{
|
||||
lock (inventoryLock)
|
||||
{
|
||||
player.QueuePacket(InventorySetBeginPacket.BuildPacket(owner.actorId, itemPackageCapacity, itemPackageCode));
|
||||
SendInventoryPackets(player, items);
|
||||
player.QueuePacket(InventorySetEndPacket.BuildPacket(owner.actorId));
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
|
@ -622,8 +571,6 @@ namespace FFXIVClassic_Map_Server.actors.chara.player
|
|||
}
|
||||
|
||||
public void SendUpdatePackets(Player player)
|
||||
{
|
||||
lock (inventoryLock)
|
||||
{
|
||||
List<InventoryItem> items = new List<InventoryItem>();
|
||||
List<ushort> slotsToRemove = new List<ushort>();
|
||||
|
@ -654,7 +601,6 @@ namespace FFXIVClassic_Map_Server.actors.chara.player
|
|||
player.QueuePacket(InventorySetEndPacket.BuildPacket(owner.actorId));
|
||||
player.QueuePacket(InventoryEndChangePacket.BuildPacket(owner.actorId));
|
||||
}
|
||||
}
|
||||
|
||||
public void StartSendUpdate()
|
||||
{
|
||||
|
@ -678,8 +624,6 @@ namespace FFXIVClassic_Map_Server.actors.chara.player
|
|||
}
|
||||
|
||||
public bool IsSpaceForAdd(uint itemId, int quantity, int quality)
|
||||
{
|
||||
lock (inventoryLock)
|
||||
{
|
||||
int quantityCount = quantity;
|
||||
for (int i = 0; i < endOfListIndex; i++)
|
||||
|
@ -696,7 +640,6 @@ namespace FFXIVClassic_Map_Server.actors.chara.player
|
|||
|
||||
return quantityCount <= 0 || (quantityCount > 0 && !IsFull());
|
||||
}
|
||||
}
|
||||
|
||||
public bool HasItem(uint itemId)
|
||||
{
|
||||
|
@ -709,8 +652,6 @@ namespace FFXIVClassic_Map_Server.actors.chara.player
|
|||
}
|
||||
|
||||
public bool HasItem(uint itemId, int minQuantity, int quality)
|
||||
{
|
||||
lock (inventoryLock)
|
||||
{
|
||||
int count = 0;
|
||||
|
||||
|
@ -729,7 +670,6 @@ namespace FFXIVClassic_Map_Server.actors.chara.player
|
|||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public int GetNextEmptySlot()
|
||||
{
|
||||
|
|
Loading…
Add table
Reference in a new issue