tobmaps / TrinityCore

http://www.TrinityCore.org
GNU General Public License v2.0
38 stars 7 forks source link

Avoidance #32

Open pipposo opened 13 years ago

pipposo commented 13 years ago

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

tobmaps commented 13 years ago

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...

pipposo commented 13 years ago

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

tobmaps commented 13 years ago

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

pipposo commented 13 years ago

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


if (GetCaster()->isAlive()

tobmaps commented 13 years ago

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

2010phenix commented 13 years ago

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}

tobmaps commented 13 years ago
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

pipposo commented 13 years ago

tobmaps, news for your patch?