Added in "LinkedSlot" info in the InventoryItems. The slot sent when using "SendUpdateAsItemPackage" differ from a normal update. This was causing a crash. Checking is working again, trade is working up to the final transaction.

This commit is contained in:
Filip Maj 2019-06-02 17:11:14 -04:00
parent 42ee97d467
commit d49516c03e
3 changed files with 21 additions and 7 deletions

View file

@ -189,16 +189,28 @@ namespace FFXIVClassic_Map_Server.actors.chara
{
List<InventoryItem> items = new List<InventoryItem>();
for (int i = 0; i < contentList.Length; i++)
for (ushort i = 0; i < contentList.Length; i++)
{
if (contentList[i] == EMPTY)
continue;
InventoryItem item = GetItem(contentList[i]);
item.linkSlot = i; //We have to set the linkSlot as this is the position in the Referenced IP, not the original IP it's linked from.
items.Add(GetItem(contentList[i]));
}
targetPlayer.QueuePacket(InventorySetBeginPacket.BuildPacket(owner.actorId, destinationCapacity, destinationCode));
SendItemPackets(targetPlayer, items);
targetPlayer.QueuePacket(InventorySetEndPacket.BuildPacket(owner.actorId));
//Clean Up linkSlots
for (ushort i = 0; i < contentList.Length; i++)
{
if (contentList[i] == EMPTY)
continue;
InventoryItem item = GetItem(contentList[i]);
item.linkSlot = 0xFFFF;
}
}
#endregion