mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-16 07:30:42 +01:00
Core/Spells: Fixed combat log for spells that affect item durability
This commit is contained in:
@@ -4198,12 +4198,12 @@ void Spell::ExecuteLogEffectInterruptCast(uint8 effIndex, Unit* victim, uint32 s
|
||||
*m_effectExecuteData[effIndex] << uint32(spellId);
|
||||
}
|
||||
|
||||
void Spell::ExecuteLogEffectDurabilityDamage(uint8 effIndex, Unit* victim, uint32 /*itemslot*/, uint32 damage)
|
||||
void Spell::ExecuteLogEffectDurabilityDamage(uint8 effIndex, Unit* victim, int32 itemId, int32 slot)
|
||||
{
|
||||
InitEffectExecuteData(effIndex);
|
||||
m_effectExecuteData[effIndex]->append(victim->GetPackGUID());
|
||||
*m_effectExecuteData[effIndex] << uint32(m_spellInfo->Id);
|
||||
*m_effectExecuteData[effIndex] << uint32(damage);
|
||||
*m_effectExecuteData[effIndex] << int32(itemId);
|
||||
*m_effectExecuteData[effIndex] << int32(slot);
|
||||
}
|
||||
|
||||
void Spell::ExecuteLogEffectOpenLock(uint8 effIndex, Object* obj)
|
||||
|
||||
@@ -423,7 +423,7 @@ class Spell
|
||||
void ExecuteLogEffectTakeTargetPower(uint8 effIndex, Unit* target, uint32 powerType, uint32 powerTaken, float gainMultiplier);
|
||||
void ExecuteLogEffectExtraAttacks(uint8 effIndex, Unit* victim, uint32 attCount);
|
||||
void ExecuteLogEffectInterruptCast(uint8 effIndex, Unit* victim, uint32 spellId);
|
||||
void ExecuteLogEffectDurabilityDamage(uint8 effIndex, Unit* victim, uint32 itemslot, uint32 damage);
|
||||
void ExecuteLogEffectDurabilityDamage(uint8 effIndex, Unit* victim, int32 itemId, int32 slot);
|
||||
void ExecuteLogEffectOpenLock(uint8 effIndex, Object* obj);
|
||||
void ExecuteLogEffectCreateItem(uint8 effIndex, uint32 entry);
|
||||
void ExecuteLogEffectDestroyItem(uint8 effIndex, uint32 entry);
|
||||
|
||||
@@ -5400,11 +5400,11 @@ void Spell::EffectDurabilityDamage(SpellEffIndex effIndex)
|
||||
|
||||
int32 slot = m_spellInfo->Effects[effIndex].MiscValue;
|
||||
|
||||
// FIXME: some spells effects have value -1/-2
|
||||
// Possibly its mean -1 all player equipped items and -2 all items
|
||||
// -1 means all player equipped items and -2 all items
|
||||
if (slot < 0)
|
||||
{
|
||||
unitTarget->ToPlayer()->DurabilityPointsLossAll(damage, (slot < -1));
|
||||
ExecuteLogEffectDurabilityDamage(effIndex, unitTarget, -1, -1);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -5413,9 +5413,10 @@ void Spell::EffectDurabilityDamage(SpellEffIndex effIndex)
|
||||
return;
|
||||
|
||||
if (Item* item = unitTarget->ToPlayer()->GetItemByPos(INVENTORY_SLOT_BAG_0, slot))
|
||||
{
|
||||
unitTarget->ToPlayer()->DurabilityPointsLoss(item, damage);
|
||||
|
||||
ExecuteLogEffectDurabilityDamage(effIndex, unitTarget, slot, damage);
|
||||
ExecuteLogEffectDurabilityDamage(effIndex, unitTarget, item->GetEntry(), slot);
|
||||
}
|
||||
}
|
||||
|
||||
void Spell::EffectDurabilityDamagePCT(SpellEffIndex effIndex)
|
||||
|
||||
Reference in New Issue
Block a user