TrinityCore icon indicating copy to clipboard operation
TrinityCore copied to clipboard

Avoidance

Open pipposo opened this issue 13 years ago • 8 comments

it's bug http://code.google.com/p/trinitycore/issues/detail?id=2775&can=1&q=avoidance&colspec=ID%20Type%20Status%20Stars%20Priority%20Summary%20Reporter%20Attachments%20Com

apply patch, but crash

pipposo avatar Apr 21 '11 11:04 pipposo

as i understand your are trying this patch http://code.google.com/p/trinitycore/issues/attachmentText?id=2775&aid=-6942047345941061745&name=avoidance.diff&token=7d121d2e182a0425c1c1b5614437c303

Give me crash dump if you are getting crash...

tobmaps avatar Apr 21 '11 11:04 tobmaps

yes and crash in if (GetCaster()->GetTypeId() == TYPEID_UNIT) http://pastebin.com/WbA8NK8x

pipposo avatar Apr 21 '11 12:04 pipposo

you can try to check for

if (GetCaster() &&

and even

if (GetCaster()->isAlive()

because as i think it can be related to case when your target are killed by code above. I didn't researched this code, just random guessing :S

tobmaps avatar Apr 21 '11 13:04 tobmaps

I tried spallauraeffect.cpp but there are no strings if (GetCaster() &&


if (GetCaster()->isAlive()

pipposo avatar Apr 21 '11 14:04 pipposo

I mean you need to add these checks to your check where you getting crash ^^

tobmaps avatar Apr 21 '11 15:04 tobmaps

i think caster is - caster=0x7fff99992000 and problem maybe in Thread but maybe you right corpseVisibility = in another tread tobmaps am see sometime in crashdump like.. multiplier = -134105984 and always want understand this if you can wise in two words plz? pInfo = {auraEff = 0x7fff523ef1c0, damage = 1379856832, overDamage = 32767, absorb = 24, resist = 0, multiplier = -134105984, critical = 255}

2010phenix avatar Apr 22 '11 14:04 2010phenix

pInfo = {auraEff = 0x7fff523ef1c0, damage = 1379856832, overDamage = 32767, absorb = 24, resist = 0, multiplier = -134105984, critical = 255}

Spell.cpp in int32 Spell::CalculateDamageDone

        if (m_applyMultiplierMask & (1 << i))
        {
            m_damage = int32(m_damage * m_damageMultipliers[i]);
            m_damageMultipliers[i] *= multiplier[i];
        }

i think this happens here

tobmaps avatar Apr 22 '11 15:04 tobmaps

tobmaps, news for your patch?

pipposo avatar Apr 30 '11 19:04 pipposo