diff --git a/FFXIVClassic Map Server/Database.cs b/FFXIVClassic Map Server/Database.cs
index 3af00ec1..6c4afeaf 100644
--- a/FFXIVClassic Map Server/Database.cs
+++ b/FFXIVClassic Map Server/Database.cs
@@ -647,7 +647,7 @@ namespace FFXIVClassic_Lobby_Server
itemId,
quantity,
slot,
- isUntradeable,
+ itemType,
quality,
durability,
spiritBind,
@@ -677,7 +677,7 @@ namespace FFXIVClassic_Lobby_Server
byte itemType = reader.GetByte(4);
byte qualityNumber = reader.GetByte(5);
- uint durability = reader.GetUInt32(6);
+ int durability = reader.GetInt32(6);
ushort spiritBind = reader.GetUInt16(7);
byte materia1 = reader.GetByte(8);
@@ -701,7 +701,7 @@ namespace FFXIVClassic_Lobby_Server
return items;
}
- public static InventoryItem addItem(Player player, uint itemId, int quantity, byte quality, byte itemType, uint durability, ushort type)
+ public static InventoryItem addItem(Player player, uint itemId, int quantity, byte quality, byte itemType, int durability, ushort type)
{
InventoryItem insertedItem = null;
@@ -715,9 +715,9 @@ namespace FFXIVClassic_Lobby_Server
string query = @"
INSERT INTO server_items
- (itemId, quality, isUntradeable, durability)
+ (itemId, quality, itemType, durability)
VALUES
- (@itemId, @quality, @isUntradeable, @durability);
+ (@itemId, @quality, @itemType, @durability);
";
MySqlCommand cmd = new MySqlCommand(query, conn);
diff --git a/FFXIVClassic Map Server/FFXIVClassic Map Server.csproj b/FFXIVClassic Map Server/FFXIVClassic Map Server.csproj
index e911d452..4cfb757a 100644
--- a/FFXIVClassic Map Server/FFXIVClassic Map Server.csproj
+++ b/FFXIVClassic Map Server/FFXIVClassic Map Server.csproj
@@ -31,6 +31,7 @@
TRACE
prompt
4
+ true
diff --git a/FFXIVClassic Map Server/actors/chara/player/Inventory.cs b/FFXIVClassic Map Server/actors/chara/player/Inventory.cs
index a2ac0f03..a331a950 100644
--- a/FFXIVClassic Map Server/actors/chara/player/Inventory.cs
+++ b/FFXIVClassic Map Server/actors/chara/player/Inventory.cs
@@ -119,7 +119,7 @@ namespace FFXIVClassic_Map_Server.actors.chara.player
//New item that spilled over
while (quantityCount > 0)
{
- InventoryItem addedItem = Database.addItem(owner, itemId, Math.Min(quantityCount, 5), quality, gItem.isExclusive ? (byte)0x3 : (byte)0x0, 100, inventoryCode);
+ InventoryItem addedItem = Database.addItem(owner, itemId, Math.Min(quantityCount, 5), quality, gItem.isExclusive ? (byte)0x3 : (byte)0x0, gItem.durability, inventoryCode);
list.Add(addedItem);
diff --git a/FFXIVClassic Map Server/actors/chara/player/Player.cs b/FFXIVClassic Map Server/actors/chara/player/Player.cs
index d5ba6cbd..15c726d6 100644
--- a/FFXIVClassic Map Server/actors/chara/player/Player.cs
+++ b/FFXIVClassic Map Server/actors/chara/player/Player.cs
@@ -635,6 +635,35 @@ namespace FFXIVClassic_Map_Server.Actors
//zone.broadcastPacketAroundActor(this, worldMasterMessage);
}
+ public void graphicChange(int slot, InventoryItem invItem)
+ {
+ Item item = Server.getItemGamedata(invItem.itemId);
+
+ if (item == null)
+ {
+
+ }
+ else if (item is EquipmentItem)
+ {
+ EquipmentItem eqItem = (EquipmentItem)item;
+
+ uint graphicId;
+
+ if (eqItem.graphicsWeaponId == null || eqItem.graphicsEquipmentId == null || eqItem.graphicsVariantId == null)
+ graphicId = 1025;
+ else
+ {
+ graphicId =
+ eqItem.graphicsWeaponId << 20 |
+ eqItem.graphicsEquipmentId << 10 |
+ eqItem.graphicsVariantId << 5 |
+ eqItem.graphicsColorId << 5;
+ }
+ appearanceIds[BODYGEAR] = graphicId;
+ broadcastPacket(createAppearancePacket(actorId), true);
+ }
+ }
+
public Inventory getInventory(ushort type)
{
if (inventories.ContainsKey(type))
diff --git a/FFXIVClassic Map Server/dataobjects/InventoryItem.cs b/FFXIVClassic Map Server/dataobjects/InventoryItem.cs
index 49514ade..74117b4a 100644
--- a/FFXIVClassic Map Server/dataobjects/InventoryItem.cs
+++ b/FFXIVClassic Map Server/dataobjects/InventoryItem.cs
@@ -18,7 +18,7 @@ namespace FFXIVClassic_Map_Server.dataobjects
public byte itemType;
public byte quality = 1;
- public uint durability = 0;
+ public int durability = 0;
public ushort spiritbind = 0;
public byte materia1 = 0;
@@ -39,7 +39,7 @@ namespace FFXIVClassic_Map_Server.dataobjects
itemType = gItem.isExclusive ? (byte)0x3 : (byte)0x0;
}
- public InventoryItem(uint uniqueId, uint itemId, int quantity, ushort slot, byte itemType, byte qualityNumber, uint durability, ushort spiritbind, byte materia1, byte materia2, byte materia3, byte materia4, byte materia5)
+ public InventoryItem(uint uniqueId, uint itemId, int quantity, ushort slot, byte itemType, byte qualityNumber, int durability, ushort spiritbind, byte materia1, byte materia2, byte materia3, byte materia4, byte materia5)
{
this.uniqueId = uniqueId;
this.itemId = itemId;