Fehler #11399
geschlossenFehler #4059: [Paladin] - Hauptticket
[Paladin] Geweihte Wut
Paladin: Das Durchdringen des Absorbierungseffekts durch "Geweihte Wut" sollte nun immer zuverlässig funktionieren.
Beschreibung
Siehe #2493.
Der Effekt, dass Absorb zu 50% durchschlagen wird, funktioniert nicht mehr zuverlässig. Manche Hits werden zu 100% absorbiert. Bei anderen kommt etwas Schaden durch, aber zu wenig.
Zugehörige Tickets
Von Rushor vor etwa 9 Jahren aktualisiert
der alte fix ist jedenfalls noch in der gleichen form atm im core implementiert
Von Rushor vor fast 9 Jahren aktualisiert
diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp index 27f6d5f..86eddea 100644 --- a/src/server/game/Entities/Unit/Unit.cpp +++ b/src/server/game/Entities/Unit/Unit.cpp @@ -1669,6 +1669,9 @@ void Unit::CalcAbsorbResist(Unit* victim, SpellSchoolMask schoolMask, DamageEffe RoundToInterval(auraAbsorbMod, 0.0f, 100.0f); + uint32 absorbIgnoringDamage = CalculatePct(dmgInfo.GetDamage(), auraAbsorbMod); + dmgInfo.ModifyDamage(-absorbIgnoringDamage); + // We're going to call functions which can modify content of the list during iteration over it's elements // Let's copy the list so we can prevent iterator invalidation AuraEffectList vSchoolAbsorbCopy(victim->GetAuraEffectsByType(SPELL_AURA_SCHOOL_ABSORB)); @@ -1701,9 +1704,6 @@ void Unit::CalcAbsorbResist(Unit* victim, SpellSchoolMask schoolMask, DamageEffe if (defaultPrevented) continue; - // Apply absorb mod auras - AddPct(currentAbsorb, -auraAbsorbMod); - // absorb must be smaller than the damage itself currentAbsorb = RoundToInterval(currentAbsorb, 0, int32(dmgInfo.GetDamage())); @@ -1752,8 +1752,6 @@ void Unit::CalcAbsorbResist(Unit* victim, SpellSchoolMask schoolMask, DamageEffe if (defaultPrevented) continue; - AddPct(currentAbsorb, -auraAbsorbMod); - // absorb must be smaller than the damage itself currentAbsorb = RoundToInterval(currentAbsorb, 0, int32(dmgInfo.GetDamage())); @@ -1782,6 +1780,8 @@ void Unit::CalcAbsorbResist(Unit* victim, SpellSchoolMask schoolMask, DamageEffe } } + dmgInfo.ModifyDamage(absorbIgnoringDamage); + // split damage auras - only when not damaging self if (victim != this) {
Von Rushor vor fast 9 Jahren aktualisiert
- Status wurde von Bestätigt zu Ready geändert
- DB-Link wurde auf https://db.rising-gods.de/?spell=53376 gesetzt
- Update Text Deutsch aktualisiert (Vergleich)
kann man eh nicht so genau testen/reproduzieren, mal auf userfeedback warten
Von Rushor vor mehr als 8 Jahren aktualisiert
Bedeutung Live:
- Der Bug wurde erfolgreich behoben und der Fix dazu befindet sich auf dem Spielserver. Sollte der Fehler weiterhin bestehen sollte ein neues Ticket ( https://redmine.rising-gods.de/projects/live/issues/new ) erstellt werden. Anmerkungen in dem alten abgewiesenen oder live genommenen Tickets werden ignoriert und gelöscht.
Von Daejiv vor fast 8 Jahren aktualisiert
- Zielversion wurde von PvP zu Klasse - Paladin geändert
Von Left4Info vor mehr als 6 Jahren aktualisiert
- Tags wurde auf Classes, Paladin gesetzt