[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)
|
||||
if(slot < EQUIPMENT_SLOT_END)
|
||||
{
|
||||
RemoveItemDependentAurasAndCasts(pItem);
|
||||
|
||||
// remove held enchantments
|
||||
// remove held enchantments, update expertise
|
||||
if ( slot == EQUIPMENT_SLOT_MAINHAND )
|
||||
{
|
||||
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_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 );
|
||||
if( IsInWorld() && update )
|
||||
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)
|
||||
RemoveItemDependentAurasAndCasts(pItem);
|
||||
|
||||
// update expertise
|
||||
if ( slot == EQUIPMENT_SLOT_MAINHAND )
|
||||
UpdateExpertise(BASE_ATTACK);
|
||||
else if( slot == EQUIPMENT_SLOT_OFFHAND )
|
||||
UpdateExpertise(OFF_ATTACK);
|
||||
|
||||
// equipment visual show
|
||||
SetVisibleItemSlot(slot,NULL);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user