mirror of
https://github.com/DarkflameUniverse/DarkflameServer.git
synced 2026-10-03 19:33:43 +00:00
fix(buffs): remove equipment buffs with bFromUnEquip on unequip
Unequipping an item uncasts its equip skills; ApplyBuffBehavior::UnCast now removes the buff with bFromUnEquip set, as live did (2014 captures: RemoveBuff for buffs 3, 4, 5, 50 and 61 always carried bFromUnEquip, and those are exactly the cancel_on_unequip buffs in the CDClient). The client only drops a buff for such a removal when it was added with cancelOnUnEquip (LWOBuffComponent::RemoveBuffIcon @ 0x00cf99b0), so BuffComponent::RemoveBuff does the same to stay in step with it. Also corrects the bFromRemoveBehavior comment: the client does not ignore the message, it only removes buffs added with cancelOnRemoveBuff. Replaces the TODO in InventoryComponent::RemoveBuff. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -1160,7 +1160,7 @@ void InventoryComponent::ApplyBuff(Item* item) const {
|
||||
}
|
||||
}
|
||||
|
||||
// TODO Something needs to send the remove buff GameMessage as well when it is unequipping items that would remove buffs.
|
||||
// Uncasting the item's equip skills sends RemoveBuff (with bFromUnEquip) for the buffs they applied, see ApplyBuffBehavior::UnCast.
|
||||
void InventoryComponent::RemoveBuff(Item* item) const {
|
||||
const auto buffs = FindBuffs(item, false);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user