It's already sends to ItemPacket to show the gears ,
Code:
user.Equipment.DisplayGears();
and I've checked my code, nothing wrong , Everything seems to be working well
Code:
public void DisplayGears()
{
Packet.ItemPacket msg;
if (Packet.ItemPacket.Create(Owner.UID, ItemAction.DisplayGears, (byte)(Owner.AlternateEquipment ? 1 : 0), out msg))
{
if (Headgear != null) msg.Gear1 = Headgear.UniqueID;
if (Necklace != null) msg.Gear2 = Necklace.UniqueID;
if (Armor != null) msg.Gear3 = Armor.UniqueID;
if (WeaponR != null) msg.Gear4 = WeaponR.UniqueID;
if (WeaponL != null) msg.Gear5 = WeaponL.UniqueID;
if (Ring != null) msg.Gear6 = Ring.UniqueID;
if (Bottle != null) msg.Gear7 = Bottle.UniqueID;
if (Boots != null) msg.Gear8 = Boots.UniqueID;
if (Owner._disguiseGarment != null)
msg.Gear9 = Owner._disguiseGarment.UniqueID;
else if (Garment != null) msg.Gear9 = Garment.UniqueID;
//if (Fan != null) msg.Gear10 = Fan.UniqueID;
// if (Tower != null) msg.Gear13 = Tower.UniqueID;
//if (Steed != null) msg.Gear14 = Steed.UniqueID;
if (AccessoryR != null) msg.Gear15 = AccessoryR.UniqueID;
if (AccessoryL != null) msg.Gear16 = AccessoryL.UniqueID;
if (Crop != null) msg.Gear17 = Crop.UniqueID;
//Alternate
if (Owner.AlternateEquipment) {
if (ALTHeadgear != null) msg.Gear1 = ALTHeadgear.UniqueID;
if (ALTNecklace != null) msg.Gear2 = ALTNecklace.UniqueID;
if (ALTArmor != null) msg.Gear3 = ALTArmor.UniqueID;
if (ALTWeaponR != null) msg.Gear4 = ALTWeaponR.UniqueID;
if (ALTWeaponL != null) msg.Gear5 = ALTWeaponL.UniqueID;
if (ALTRing != null) msg.Gear6 = ALTRing.UniqueID;
if (ALTBottle != null) msg.Gear7 = ALTBottle.UniqueID;
if (ALTBoots != null) msg.Gear8 = ALTBoots.UniqueID;
if (ALTGarment != null) { msg.Gear9 = ALTGarment.UniqueID; ShowOthersGear(ItemLocation.ALTGarment); }
}
Owner.Send(msg);
}
}
And item Slot doesn't even change when I equip another item
Code:
public void EquipItem(ItemInfo itm, ItemLocation loc)
{
if (Owner.Inventory.Count > 39)
return;
if (!Owner.Inventory.ContainsKey(itm.UniqueID))
return;
Owner.Inventory.Remove(itm.UniqueID);
itm.Location = (ushort)loc;
Database.ModifyItem(itm.Location, "Position", itm.UniqueID);
Database.ModifyItem(itm.CurrentDura, "Durability", itm.UniqueID);
#region Sets up item location
switch (loc)
{
case ItemLocation.Head:
if (Headgear != null)
Headgear.Unequip(Owner, false);
Headgear = itm;
break;
case ItemLocation.Necklace:
if (Necklace != null)
Necklace.Unequip(Owner, false);
Necklace = itm;
break;
case ItemLocation.Armor:
if (Armor != null)
Armor.Unequip(Owner, false);
Armor = itm;
break;
case ItemLocation.WeaponR:
if (WeaponR != null)
WeaponR.Unequip(Owner, false);
WeaponR = itm;
break;
case ItemLocation.WeaponL:
if (WeaponL != null)
WeaponL.Unequip(Owner, false);
WeaponL = itm;
break;
case ItemLocation.Ring:
if (Ring != null)
Ring.Unequip(Owner, false);
Ring = itm;
break;
case ItemLocation.Bottle:
if (Bottle != null)
Bottle.Unequip(Owner, false);
Bottle = itm;
break;
case ItemLocation.Boots:
if (Boots != null)
Boots.Unequip(Owner, false);
Boots = itm;
break;
case ItemLocation.Garment:
if (Garment != null)
Garment.Unequip(Owner, false);
Garment = itm;
break;
case ItemLocation.Fan:
if (Fan != null)
Fan.Unequip(Owner, false);
Fan = itm;
break;
case ItemLocation.Tower:
if (Tower != null)
Tower.Unequip(Owner, false);
Tower = itm;
break;
case ItemLocation.Steed:
if (Steed != null)
Steed.Unequip(Owner, false);
Steed = itm;
break;
case ItemLocation.AccessoryL:
if (AccessoryL != null)
AccessoryL.Unequip(Owner, false);
AccessoryL = itm;
break;
case ItemLocation.AccessoryR:
if (AccessoryR != null)
AccessoryR.Unequip(Owner, false);
AccessoryR = itm;
break;
case ItemLocation.SteedArmor:
if (SteedArmor != null)
SteedArmor.Unequip(Owner, false);
SteedArmor = itm;
break;
case ItemLocation.Crop:
if (Crop != null)
Crop.Unequip(Owner, false);
Crop = itm;
break;
case ItemLocation.ALTHead:
if (ALTHeadgear != null)
ALTHeadgear.Unequip(Owner, false);
ALTHeadgear = itm;
break;
case ItemLocation.ALTNecklace:
if (ALTNecklace != null)
ALTNecklace.Unequip(Owner, false);
ALTNecklace = itm;
break;
case ItemLocation.ALTArmor:
if (ALTArmor != null)
ALTArmor.Unequip(Owner, false);
ALTArmor = itm;
break;
case ItemLocation.ALTWeaponR:
if (ALTWeaponR != null)
ALTWeaponR.Unequip(Owner, false);
ALTWeaponR = itm;
break;
case ItemLocation.ALTWeaponL:
if (ALTWeaponL != null)
ALTWeaponL.Unequip(Owner, false);
ALTWeaponL = itm;
break;
case ItemLocation.ALTRing:
if (ALTRing != null)
ALTRing.Unequip(Owner, false);
ALTRing = itm;
break;
case ItemLocation.ALTBottle:
if (ALTBottle != null)
ALTBottle.Unequip(Owner, false);
ALTBottle = itm;
break;
case ItemLocation.ALTBoots:
if (ALTBoots != null)
ALTBoots.Unequip(Owner, false);
ALTBoots = itm;
break;
case ItemLocation.ALTGarment:
if (ALTGarment != null)
ALTGarment.Unequip(Owner, false);
ALTGarment = itm;
break;
}
#endregion
Owner.Send(new Packet.ItemPacket { Id = itm.UniqueID, Action = ItemAction.Equip, Data1Low = (ushort)loc });
ShowOthersGear(loc);
DisplayGears();
Owner.Recalculate();
}