[7511] Fixed expertise update at items unequip/drop. Author: VladimirMangos
* Not attempt update at item move from slot in bag with equip-like slot number.
* Update at item drop from bag.
--HG--
branch : trunk
This commit is contained in:
+13
-6
@@ -11003,9 +11003,10 @@ void Player::RemoveItem( uint8 bag, uint8 slot, bool update )
|
|||||||
|
|
||||||
// remove item dependent auras and casts (only weapon and armor slots)
|
// remove item dependent auras and casts (only weapon and armor slots)
|
||||||
if(slot < EQUIPMENT_SLOT_END)
|
if(slot < EQUIPMENT_SLOT_END)
|
||||||
|
{
|
||||||
RemoveItemDependentAurasAndCasts(pItem);
|
RemoveItemDependentAurasAndCasts(pItem);
|
||||||
|
|
||||||
// remove held enchantments
|
// remove held enchantments, update expertise
|
||||||
if ( slot == EQUIPMENT_SLOT_MAINHAND )
|
if ( slot == EQUIPMENT_SLOT_MAINHAND )
|
||||||
{
|
{
|
||||||
if (pItem->GetItemSuffixFactor())
|
if (pItem->GetItemSuffixFactor())
|
||||||
@@ -11018,6 +11019,11 @@ void Player::RemoveItem( uint8 bag, uint8 slot, bool update )
|
|||||||
pItem->ClearEnchantment(PROP_ENCHANTMENT_SLOT_0);
|
pItem->ClearEnchantment(PROP_ENCHANTMENT_SLOT_0);
|
||||||
pItem->ClearEnchantment(PROP_ENCHANTMENT_SLOT_1);
|
pItem->ClearEnchantment(PROP_ENCHANTMENT_SLOT_1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
UpdateExpertise(BASE_ATTACK);
|
||||||
|
}
|
||||||
|
else if( slot == EQUIPMENT_SLOT_OFFHAND )
|
||||||
|
UpdateExpertise(OFF_ATTACK);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -11038,11 +11044,6 @@ void Player::RemoveItem( uint8 bag, uint8 slot, bool update )
|
|||||||
pItem->SetSlot( NULL_SLOT );
|
pItem->SetSlot( NULL_SLOT );
|
||||||
if( IsInWorld() && update )
|
if( IsInWorld() && update )
|
||||||
pItem->SendUpdateToPlayer( this );
|
pItem->SendUpdateToPlayer( this );
|
||||||
|
|
||||||
if( slot == EQUIPMENT_SLOT_MAINHAND )
|
|
||||||
UpdateExpertise(BASE_ATTACK);
|
|
||||||
else if( slot == EQUIPMENT_SLOT_OFFHAND )
|
|
||||||
UpdateExpertise(OFF_ATTACK);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -11127,6 +11128,12 @@ void Player::DestroyItem( uint8 bag, uint8 slot, bool update )
|
|||||||
// remove item dependent auras and casts (only weapon and armor slots)
|
// remove item dependent auras and casts (only weapon and armor slots)
|
||||||
RemoveItemDependentAurasAndCasts(pItem);
|
RemoveItemDependentAurasAndCasts(pItem);
|
||||||
|
|
||||||
|
// update expertise
|
||||||
|
if ( slot == EQUIPMENT_SLOT_MAINHAND )
|
||||||
|
UpdateExpertise(BASE_ATTACK);
|
||||||
|
else if( slot == EQUIPMENT_SLOT_OFFHAND )
|
||||||
|
UpdateExpertise(OFF_ATTACK);
|
||||||
|
|
||||||
// equipment visual show
|
// equipment visual show
|
||||||
SetVisibleItemSlot(slot,NULL);
|
SetVisibleItemSlot(slot,NULL);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user