1
Fork 0
mirror of https://bitbucket.org/Ioncannon/project-meteor-server.git synced 2025-04-24 05:37:46 +00:00

Equipment now working. Still need to write database saving/loading.

This commit is contained in:
Filip Maj 2016-02-20 21:20:54 -05:00
parent b7fd3e442c
commit c2f0b9d999
5 changed files with 168 additions and 57 deletions

View file

@ -452,12 +452,12 @@ namespace FFXIVClassic_Lobby_Server
} }
} }
player.inventories[Inventory.NORMAL].initList(getInventory(player, 0, Inventory.NORMAL)); player.getInventory(Inventory.NORMAL).initList(getInventory(player, 0, Inventory.NORMAL));
player.inventories[Inventory.KEYITEMS].initList(getInventory(player, 0, Inventory.KEYITEMS)); player.getInventory(Inventory.KEYITEMS).initList(getInventory(player, 0, Inventory.KEYITEMS));
player.inventories[Inventory.CURRANCY].initList(getInventory(player, 0, Inventory.CURRANCY)); player.getInventory(Inventory.CURRANCY).initList(getInventory(player, 0, Inventory.CURRANCY));
player.inventories[Inventory.BAZAAR].initList(getInventory(player, 0, Inventory.BAZAAR)); player.getInventory(Inventory.BAZAAR).initList(getInventory(player, 0, Inventory.BAZAAR));
player.inventories[Inventory.MELDREQUEST].initList(getInventory(player, 0, Inventory.MELDREQUEST)); player.getInventory(Inventory.MELDREQUEST).initList(getInventory(player, 0, Inventory.MELDREQUEST));
player.inventories[Inventory.LOOT].initList(getInventory(player, 0, Inventory.LOOT)); player.getInventory(Inventory.LOOT).initList(getInventory(player, 0, Inventory.LOOT));
} }
catch (MySqlException e) catch (MySqlException e)
@ -581,7 +581,7 @@ namespace FFXIVClassic_Lobby_Server
cmd.ExecuteNonQuery(); cmd.ExecuteNonQuery();
cmd2.ExecuteNonQuery(); cmd2.ExecuteNonQuery();
insertedItem = new Item((uint)cmd.LastInsertedId, itemId, quantity, (ushort)player.inventories[type].getNextEmptySlot(), isUntradeable, quality, durability, 0, 0, 0, 0, 0, 0); insertedItem = new Item((uint)cmd.LastInsertedId, itemId, quantity, (ushort)player.getInventory(type).getNextEmptySlot(), isUntradeable, quality, durability, 0, 0, 0, 0, 0, 0);
} }
catch (MySqlException e) catch (MySqlException e)
{ Console.WriteLine(e); } { Console.WriteLine(e); }

View file

@ -432,14 +432,14 @@ namespace FFXIVClassic_Lobby_Server
if (client != null) if (client != null)
{ {
Player p = client.getActor(); Player p = client.getActor();
p.inventories[Inventory.NORMAL].addItem(itemId, quantity, 1); p.getInventory(Inventory.NORMAL).addItem(itemId, quantity, 1);
} }
else else
{ {
foreach (KeyValuePair<uint, ConnectedPlayer> entry in mConnectedPlayerList) foreach (KeyValuePair<uint, ConnectedPlayer> entry in mConnectedPlayerList)
{ {
Player p = entry.Value.getActor(); Player p = entry.Value.getActor();
p.inventories[Inventory.NORMAL].addItem(itemId, quantity, 1); p.getInventory(Inventory.NORMAL).addItem(itemId, quantity, 1);
} }
} }
} }
@ -450,8 +450,8 @@ namespace FFXIVClassic_Lobby_Server
{ {
Player p = client.getActor(); Player p = client.getActor();
if (p.inventories.ContainsKey(type)) if (p.getInventory(type) != null)
p.inventories[type].addItem(itemId, quantity, 1); p.getInventory(type).addItem(itemId, quantity, 1);
} }
else else
{ {
@ -459,8 +459,8 @@ namespace FFXIVClassic_Lobby_Server
{ {
Player p = entry.Value.getActor(); Player p = entry.Value.getActor();
if (p.inventories.ContainsKey(type)) if (p.getInventory(type) != null)
p.inventories[type].addItem(itemId, quantity, 1); p.getInventory(type).addItem(itemId, quantity, 1);
} }
} }
} }
@ -470,14 +470,14 @@ namespace FFXIVClassic_Lobby_Server
if (client != null) if (client != null)
{ {
Player p = client.getActor(); Player p = client.getActor();
p.inventories[Inventory.NORMAL].removeItem(itemId, quantity); p.getInventory(Inventory.NORMAL).removeItem(itemId, quantity);
} }
else else
{ {
foreach (KeyValuePair<uint, ConnectedPlayer> entry in mConnectedPlayerList) foreach (KeyValuePair<uint, ConnectedPlayer> entry in mConnectedPlayerList)
{ {
Player p = entry.Value.getActor(); Player p = entry.Value.getActor();
p.inventories[Inventory.NORMAL].removeItem(itemId, quantity); p.getInventory(Inventory.NORMAL).removeItem(itemId, quantity);
} }
} }
} }
@ -488,8 +488,8 @@ namespace FFXIVClassic_Lobby_Server
{ {
Player p = client.getActor(); Player p = client.getActor();
if (p.inventories.ContainsKey(type)) if (p.getInventory(type) != null)
p.inventories[type].removeItem(itemId, quantity); p.getInventory(type).removeItem(itemId, quantity);
} }
else else
{ {
@ -497,8 +497,8 @@ namespace FFXIVClassic_Lobby_Server
{ {
Player p = entry.Value.getActor(); Player p = entry.Value.getActor();
if (p.inventories.ContainsKey(type)) if (p.getInventory(type) != null)
p.inventories[type].removeItem(itemId, quantity); p.getInventory(type).removeItem(itemId, quantity);
} }
} }
} }
@ -508,14 +508,14 @@ namespace FFXIVClassic_Lobby_Server
if (client != null) if (client != null)
{ {
Player p = client.getActor(); Player p = client.getActor();
p.inventories[Inventory.CURRANCY].addItem(itemId, quantity, 1); p.getInventory(Inventory.CURRANCY).addItem(itemId, quantity, 1);
} }
else else
{ {
foreach (KeyValuePair<uint, ConnectedPlayer> entry in mConnectedPlayerList) foreach (KeyValuePair<uint, ConnectedPlayer> entry in mConnectedPlayerList)
{ {
Player p = entry.Value.getActor(); Player p = entry.Value.getActor();
p.inventories[Inventory.CURRANCY].addItem(itemId, quantity, 1); p.getInventory(Inventory.CURRANCY).addItem(itemId, quantity, 1);
} }
} }
} }
@ -525,14 +525,14 @@ namespace FFXIVClassic_Lobby_Server
if (client != null) if (client != null)
{ {
Player p = client.getActor(); Player p = client.getActor();
p.inventories[Inventory.CURRANCY].removeItem(itemId, quantity); p.getInventory(Inventory.CURRANCY).removeItem(itemId, quantity);
} }
else else
{ {
foreach (KeyValuePair<uint, ConnectedPlayer> entry in mConnectedPlayerList) foreach (KeyValuePair<uint, ConnectedPlayer> entry in mConnectedPlayerList)
{ {
Player p = entry.Value.getActor(); Player p = entry.Value.getActor();
p.inventories[Inventory.CURRANCY].removeItem(itemId, quantity); p.getInventory(Inventory.CURRANCY).removeItem(itemId, quantity);
} }
} }
} }
@ -542,14 +542,14 @@ namespace FFXIVClassic_Lobby_Server
if (client != null) if (client != null)
{ {
Player p = client.getActor(); Player p = client.getActor();
p.inventories[Inventory.KEYITEMS].addItem(itemId, 1, 1); p.getInventory(Inventory.KEYITEMS).addItem(itemId, 1, 1);
} }
else else
{ {
foreach (KeyValuePair<uint, ConnectedPlayer> entry in mConnectedPlayerList) foreach (KeyValuePair<uint, ConnectedPlayer> entry in mConnectedPlayerList)
{ {
Player p = entry.Value.getActor(); Player p = entry.Value.getActor();
p.inventories[Inventory.KEYITEMS].addItem(itemId, 1, 1); p.getInventory(Inventory.KEYITEMS).addItem(itemId, 1, 1);
} }
} }
} }
@ -559,14 +559,14 @@ namespace FFXIVClassic_Lobby_Server
if (client != null) if (client != null)
{ {
Player p = client.getActor(); Player p = client.getActor();
p.inventories[Inventory.KEYITEMS].removeItem(itemId, 1); p.getInventory(Inventory.KEYITEMS).removeItem(itemId, 1);
} }
else else
{ {
foreach (KeyValuePair<uint, ConnectedPlayer> entry in mConnectedPlayerList) foreach (KeyValuePair<uint, ConnectedPlayer> entry in mConnectedPlayerList)
{ {
Player p = entry.Value.getActor(); Player p = entry.Value.getActor();
p.inventories[Inventory.KEYITEMS].removeItem(itemId, 1); p.getInventory(Inventory.KEYITEMS).removeItem(itemId, 1);
} }
} }
} }

View file

@ -1,5 +1,6 @@
using FFXIVClassic_Map_Server.Actors; using FFXIVClassic_Map_Server.Actors;
using FFXIVClassic_Map_Server.dataobjects; using FFXIVClassic_Map_Server.dataobjects;
using FFXIVClassic_Map_Server.packets.send.actor.inventory;
using FFXIVClassic_Map_Server.packets.send.Actor.inventory; using FFXIVClassic_Map_Server.packets.send.Actor.inventory;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
@ -34,12 +35,15 @@ namespace FFXIVClassic_Map_Server.actors.chara.player
private ushort inventoryCapacity; private ushort inventoryCapacity;
private ushort inventoryCode; private ushort inventoryCode;
private Item[] list; private Item[] list;
private Inventory normalInventory;
public Equipment(Player ownerPlayer, ushort capacity, ushort code) public Equipment(Player ownerPlayer, Inventory normalInventory, ushort capacity, ushort code)
{ {
owner = ownerPlayer; owner = ownerPlayer;
inventoryCapacity = capacity; inventoryCapacity = capacity;
inventoryCode = code; inventoryCode = code;
list = new Item[inventoryCapacity];
this.normalInventory = normalInventory;
} }
public Item GetItemAtSlot(ushort slot) public Item GetItemAtSlot(ushort slot)
@ -50,6 +54,20 @@ namespace FFXIVClassic_Map_Server.actors.chara.player
return null; return null;
} }
public void SendFullEquipment(bool doClear)
{
List<ushort> slotsToUpdate = new List<ushort>();
for (ushort i = 0; i < list.Length; i++)
{
if (list[i] == null && doClear)
slotsToUpdate.Add(0);
else if (list[i] != null)
slotsToUpdate.Add(i);
}
SendEquipmentPackets(slotsToUpdate);
}
public void SetEquipment(List<Tuple<ushort, Item>> toEquip) public void SetEquipment(List<Tuple<ushort, Item>> toEquip)
{ {
List<ushort> slotsToUpdate = new List<ushort>(); List<ushort> slotsToUpdate = new List<ushort>();
@ -64,41 +82,68 @@ namespace FFXIVClassic_Map_Server.actors.chara.player
public void Equip(ushort slot, Item item) public void Equip(ushort slot, Item item)
{ {
if (slot < list.Length) if (slot >= list.Length)
list[slot] = item; return;
owner.queuePacket(InventoryBeginChangePacket.buildPacket(owner.actorId));
if (list[slot] != null)
normalInventory.RefreshItem(list[slot], item);
else
normalInventory.RefreshItem(item);
owner.queuePacket(InventorySetBeginPacket.buildPacket(owner.actorId, inventoryCapacity, inventoryCode));
SendEquipmentPackets(slot, item); SendEquipmentPackets(slot, item);
owner.queuePacket(InventorySetEndPacket.buildPacket(owner.actorId));
owner.queuePacket(InventoryEndChangePacket.buildPacket(owner.actorId));
list[slot] = item;
} }
public void Unequip(ushort slot) public void Unequip(ushort slot)
{ {
if (slot < list.Length) if (slot >= list.Length)
list[slot] = null; return;
owner.queuePacket(InventoryBeginChangePacket.buildPacket(owner.actorId));
normalInventory.RefreshItem(list[slot]);
owner.queuePacket(InventorySetBeginPacket.buildPacket(owner.actorId, inventoryCapacity, inventoryCode));
SendEquipmentPackets(slot, null); SendEquipmentPackets(slot, null);
owner.queuePacket(InventorySetEndPacket.buildPacket(owner.actorId));
owner.queuePacket(InventoryEndChangePacket.buildPacket(owner.actorId));
list[slot] = null;
} }
private void SendEquipmentPackets(ushort equipSlot, Item item) private void SendEquipmentPackets(ushort equipSlot, Item item)
{ {
if (item == null) if (item == null)
owner.queuePacket(EquipmentListX01Packet.buildPacket(owner.actorId, equipSlot, 0)); owner.queuePacket(InventoryRemoveX01Packet.buildPacket(owner.actorId, equipSlot));
else else
owner.queuePacket(EquipmentListX01Packet.buildPacket(owner.actorId, equipSlot, item.slot)); owner.queuePacket(EquipmentListX01Packet.buildPacket(owner.actorId, equipSlot, item.slot));
} }
private void SendEquipmentPackets(List<ushort> slotsToUpdate) private void SendEquipmentPackets(List<ushort> slotsToUpdate)
{ {
owner.queuePacket(InventorySetBeginPacket.buildPacket(owner.actorId, inventoryCapacity, inventoryCode));
int currentIndex = 0; int currentIndex = 0;
while (true) while (true)
{ {
if (list.Length - currentIndex >= 64) if (slotsToUpdate.Count - currentIndex >= 64)
owner.queuePacket(EquipmentListX64Packet.buildPacket(owner.actorId, list, slotsToUpdate, ref currentIndex)); owner.queuePacket(EquipmentListX64Packet.buildPacket(owner.actorId, list, slotsToUpdate, ref currentIndex));
else if (list.Length - currentIndex >= 32) else if (slotsToUpdate.Count - currentIndex >= 32)
owner.queuePacket(EquipmentListX32Packet.buildPacket(owner.actorId, list, slotsToUpdate, ref currentIndex)); owner.queuePacket(EquipmentListX32Packet.buildPacket(owner.actorId, list, slotsToUpdate, ref currentIndex));
else if (list.Length - currentIndex >= 16) else if (slotsToUpdate.Count - currentIndex >= 16)
owner.queuePacket(EquipmentListX16Packet.buildPacket(owner.actorId, list, slotsToUpdate, ref currentIndex)); owner.queuePacket(EquipmentListX16Packet.buildPacket(owner.actorId, list, slotsToUpdate, ref currentIndex));
else if (list.Length - currentIndex > 1) else if (slotsToUpdate.Count - currentIndex > 1)
owner.queuePacket(EquipmentListX08Packet.buildPacket(owner.actorId, list, slotsToUpdate, ref currentIndex)); owner.queuePacket(EquipmentListX08Packet.buildPacket(owner.actorId, list, slotsToUpdate, ref currentIndex));
else if (list.Length - currentIndex == 1) else if (slotsToUpdate.Count - currentIndex == 1)
{ {
owner.queuePacket(EquipmentListX01Packet.buildPacket(owner.actorId, slotsToUpdate[currentIndex], list[currentIndex].slot)); owner.queuePacket(EquipmentListX01Packet.buildPacket(owner.actorId, slotsToUpdate[currentIndex], list[currentIndex].slot));
currentIndex++; currentIndex++;
@ -107,6 +152,7 @@ namespace FFXIVClassic_Map_Server.actors.chara.player
break; break;
} }
owner.queuePacket(InventorySetEndPacket.buildPacket(owner.actorId));
} }
} }

View file

@ -40,6 +40,35 @@ namespace FFXIVClassic_Map_Server.actors.chara.player
list = itemsFromDB; list = itemsFromDB;
} }
public Item getItem(ushort slot)
{
if (slot < list.Count)
return list[slot];
else
return null;
}
public void RefreshItem(Item item)
{
owner.queuePacket(InventorySetBeginPacket.buildPacket(owner.actorId, inventoryCapacity, inventoryCode));
sendInventoryPackets(item);
owner.queuePacket(InventorySetEndPacket.buildPacket(owner.actorId));
}
public void RefreshItem(params Item[] items)
{
owner.queuePacket(InventorySetBeginPacket.buildPacket(owner.actorId, inventoryCapacity, inventoryCode));
sendInventoryPackets(items.ToList());
owner.queuePacket(InventorySetEndPacket.buildPacket(owner.actorId));
}
public void RefreshItem(List<Item> items)
{
owner.queuePacket(InventorySetBeginPacket.buildPacket(owner.actorId, inventoryCapacity, inventoryCode));
sendInventoryPackets(items);
owner.queuePacket(InventorySetEndPacket.buildPacket(owner.actorId));
}
public void addItem(uint itemId, int quantity, byte quality) public void addItem(uint itemId, int quantity, byte quality)
{ {
if (!isSpaceForAdd(itemId, quantity)) if (!isSpaceForAdd(itemId, quantity))
@ -173,6 +202,10 @@ namespace FFXIVClassic_Map_Server.actors.chara.player
sendInventoryRemovePackets(slotsToRemove); sendInventoryRemovePackets(slotsToRemove);
owner.queuePacket(InventorySetEndPacket.buildPacket(owner.actorId)); owner.queuePacket(InventorySetEndPacket.buildPacket(owner.actorId));
if (inventoryCode == NORMAL)
owner.getEquipment().SendFullEquipment(false);
owner.queuePacket(InventoryEndChangePacket.buildPacket(owner.actorId)); owner.queuePacket(InventoryEndChangePacket.buildPacket(owner.actorId));
} }
@ -210,6 +243,10 @@ namespace FFXIVClassic_Map_Server.actors.chara.player
sendInventoryRemovePackets((ushort)(oldListSize - 1)); sendInventoryRemovePackets((ushort)(oldListSize - 1));
owner.queuePacket(InventorySetEndPacket.buildPacket(owner.actorId)); owner.queuePacket(InventorySetEndPacket.buildPacket(owner.actorId));
if (inventoryCode == NORMAL)
owner.getEquipment().SendFullEquipment(false);
owner.queuePacket(InventoryEndChangePacket.buildPacket(owner.actorId)); owner.queuePacket(InventoryEndChangePacket.buildPacket(owner.actorId));
} }
@ -236,6 +273,10 @@ namespace FFXIVClassic_Map_Server.actors.chara.player
sendInventoryRemovePackets((ushort)(oldListSize - 1)); sendInventoryRemovePackets((ushort)(oldListSize - 1));
owner.queuePacket(InventorySetEndPacket.buildPacket(owner.actorId)); owner.queuePacket(InventorySetEndPacket.buildPacket(owner.actorId));
if (inventoryCode == NORMAL)
owner.getEquipment().SendFullEquipment(false);
owner.queuePacket(InventoryEndChangePacket.buildPacket(owner.actorId)); owner.queuePacket(InventoryEndChangePacket.buildPacket(owner.actorId));
} }
@ -268,6 +309,31 @@ namespace FFXIVClassic_Map_Server.actors.chara.player
owner.queuePacket(InventoryListX01Packet.buildPacket(owner.actorId, item)); owner.queuePacket(InventoryListX01Packet.buildPacket(owner.actorId, item));
} }
private void sendInventoryPackets(List<Item> items)
{
int currentIndex = 0;
while (true)
{
if (items.Count - currentIndex >= 64)
owner.queuePacket(InventoryListX64Packet.buildPacket(owner.actorId, items, ref currentIndex));
else if (items.Count - currentIndex >= 32)
owner.queuePacket(InventoryListX32Packet.buildPacket(owner.actorId, items, ref currentIndex));
else if (items.Count - currentIndex >= 16)
owner.queuePacket(InventoryListX16Packet.buildPacket(owner.actorId, items, ref currentIndex));
else if (items.Count - currentIndex > 1)
owner.queuePacket(InventoryListX08Packet.buildPacket(owner.actorId, items, ref currentIndex));
else if (items.Count - currentIndex == 1)
{
owner.queuePacket(InventoryListX01Packet.buildPacket(owner.actorId, items[currentIndex]));
currentIndex++;
}
else
break;
}
}
private void sendInventoryPackets(int startOffset) private void sendInventoryPackets(int startOffset)
{ {
int currentIndex = startOffset; int currentIndex = startOffset;

View file

@ -32,7 +32,7 @@ namespace FFXIVClassic_Map_Server.Actors
public const int MAXSIZE_INVENTORY_LOOT = 10; public const int MAXSIZE_INVENTORY_LOOT = 10;
public const int MAXSIZE_INVENTORY_MELDREQUEST = 4; public const int MAXSIZE_INVENTORY_MELDREQUEST = 4;
public const int MAXSIZE_INVENTORY_BAZAAR = 10; public const int MAXSIZE_INVENTORY_BAZAAR = 10;
public const int MAXSIZE_INVENTORY_EQUIPMENT = 10; public const int MAXSIZE_INVENTORY_EQUIPMENT = 35;
public const int TIMER_TOTORAK = 0; public const int TIMER_TOTORAK = 0;
public const int TIMER_DZEMAEL = 1; public const int TIMER_DZEMAEL = 1;
@ -61,8 +61,8 @@ namespace FFXIVClassic_Map_Server.Actors
public uint currentTitle; public uint currentTitle;
//Inventory //Inventory
public Dictionary<ushort, Inventory> inventories = new Dictionary<ushort, Inventory>(); private Dictionary<ushort, Inventory> inventories = new Dictionary<ushort, Inventory>();
public int[] invEquipment = new int[MAXSIZE_INVENTORY_EQUIPMENT]; private Equipment equipment;
//GC Related //GC Related
public byte gcCurrent; public byte gcCurrent;
@ -102,6 +102,8 @@ namespace FFXIVClassic_Map_Server.Actors
inventories[Inventory.BAZAAR] = new Inventory(this, MAXSIZE_INVENTORY_BAZAAR, Inventory.BAZAAR); inventories[Inventory.BAZAAR] = new Inventory(this, MAXSIZE_INVENTORY_BAZAAR, Inventory.BAZAAR);
inventories[Inventory.LOOT] = new Inventory(this, MAXSIZE_INVENTORY_LOOT, Inventory.LOOT); inventories[Inventory.LOOT] = new Inventory(this, MAXSIZE_INVENTORY_LOOT, Inventory.LOOT);
equipment = new Equipment(this, inventories[Inventory.NORMAL], MAXSIZE_INVENTORY_EQUIPMENT, Inventory.EQUIPMENT);
charaWork.property[0] = 1; charaWork.property[0] = 1;
charaWork.property[1] = 1; charaWork.property[1] = 1;
charaWork.property[2] = 1; charaWork.property[2] = 1;
@ -432,6 +434,7 @@ namespace FFXIVClassic_Map_Server.Actors
playerSession.queuePacket(partyListPacket); playerSession.queuePacket(partyListPacket);
#endregion #endregion
#region Inventory & Equipment
queuePacket(InventoryBeginChangePacket.buildPacket(actorId)); queuePacket(InventoryBeginChangePacket.buildPacket(actorId));
inventories[Inventory.NORMAL].sendFullInventory(); inventories[Inventory.NORMAL].sendFullInventory();
inventories[Inventory.CURRANCY].sendFullInventory(); inventories[Inventory.CURRANCY].sendFullInventory();
@ -439,21 +442,9 @@ namespace FFXIVClassic_Map_Server.Actors
inventories[Inventory.BAZAAR].sendFullInventory(); inventories[Inventory.BAZAAR].sendFullInventory();
inventories[Inventory.MELDREQUEST].sendFullInventory(); inventories[Inventory.MELDREQUEST].sendFullInventory();
inventories[Inventory.LOOT].sendFullInventory(); inventories[Inventory.LOOT].sendFullInventory();
#region equipsetup equipment.SendFullEquipment(false);
// EquipmentListX08Packet initialEqupmentPacket = new EquipmentListX08Packet();
// initialEqupmentPacket.setItem(EquipmentListX08Packet.SLOT_BODY, 5);
// initialEqupmentPacket.setItem(EquipmentListX08Packet.SLOT_HEAD, 3);
// initialEqupmentPacket.setItem(EquipmentListX08Packet.SLOT_UNDERSHIRT, 6);
// initialEqupmentPacket.setItem(EquipmentListX08Packet.SLOT_UNDERGARMENT, 7);
// initialEqupmentPacket.setItem(EquipmentListX08Packet.SLOT_MAINHAND, 2);
// initialEqupmentPacket.setItem(EquipmentListX08Packet.SLOT_LEGS, 8);
//Equip Init
// playerSession.queuePacket(InventorySetBeginPacket.buildPacket(actorId, 0x23, InventorySetBeginPacket.CODE_EQUIPMENT), true, false);
// playerSession.queuePacket(BasePacket.createPacket(initialEqupmentPacket.buildPackets(actorId), true, false));
// playerSession.queuePacket(InventorySetEndPacket.buildPacket(actorId), true, false);
#endregion
playerSession.queuePacket(InventoryEndChangePacket.buildPacket(actorId), true, false); playerSession.queuePacket(InventoryEndChangePacket.buildPacket(actorId), true, false);
#endregion
playerSession.queuePacket(getInitPackets(actorId)); playerSession.queuePacket(getInitPackets(actorId));
@ -646,7 +637,15 @@ namespace FFXIVClassic_Map_Server.Actors
public Inventory getInventory(ushort type) public Inventory getInventory(ushort type)
{ {
if (inventories.ContainsKey(type))
return inventories[type]; return inventories[type];
else
return null;
}
public Equipment getEquipment()
{
return equipment;
} }
public void runEventFunction(string functionName, params object[] parameters) public void runEventFunction(string functionName, params object[] parameters)