*Fix bug with spellproc.

*Fix bug with bloodthirst healing.

--HG--
branch : trunk
This commit is contained in:
QAston
2009-02-25 21:15:38 +01:00
parent 50d2fc34ec
commit 64540eff85
3 changed files with 5 additions and 5 deletions
+4 -3
View File
@@ -1044,8 +1044,9 @@ void SpellMgr::LoadSpellProcEvents()
spe.schoolMask = fields[1].GetUInt32(); spe.schoolMask = fields[1].GetUInt32();
spe.spellFamilyName = fields[2].GetUInt32(); spe.spellFamilyName = fields[2].GetUInt32();
spe.spellFamilyMask = (uint64)fields[3].GetUInt32()|((uint64)fields[4].GetUInt32()<<32); spe.spellFamilyMask[0] = fields[3].GetUInt32();
spe.spellFamilyMask2= fields[5].GetUInt32(); spe.spellFamilyMask[1] = fields[4].GetUInt32();
spe.spellFamilyMask[2] = fields[5].GetUInt32();
spe.procFlags = fields[6].GetUInt32(); spe.procFlags = fields[6].GetUInt32();
spe.procEx = fields[7].GetUInt32(); spe.procEx = fields[7].GetUInt32();
spe.ppmRate = fields[8].GetFloat(); spe.ppmRate = fields[8].GetFloat();
@@ -1155,7 +1156,7 @@ bool SpellMgr::IsSpellProcEventCanTriggeredBy(SpellProcEventEntry const * spellP
return false; return false;
// spellFamilyName is Ok need check for spellFamilyMask if present // spellFamilyName is Ok need check for spellFamilyMask if present
if(spellProcEvent->spellFamilyMask || spellProcEvent->spellFamilyMask2) if(spellProcEvent->spellFamilyMask)
{ {
if ((spellProcEvent->spellFamilyMask & procSpell->SpellFamilyFlags ) == 0) if ((spellProcEvent->spellFamilyMask & procSpell->SpellFamilyFlags ) == 0)
return false; return false;
-1
View File
@@ -615,7 +615,6 @@ struct SpellProcEventEntry
uint32 schoolMask; // if nonzero - bit mask for matching proc condition based on spell candidate's school: Fire=2, Mask=1<<(2-1)=2 uint32 schoolMask; // if nonzero - bit mask for matching proc condition based on spell candidate's school: Fire=2, Mask=1<<(2-1)=2
uint32 spellFamilyName; // if nonzero - for matching proc condition based on candidate spell's SpellFamilyNamer value uint32 spellFamilyName; // if nonzero - for matching proc condition based on candidate spell's SpellFamilyNamer value
flag96 spellFamilyMask; // if nonzero - for matching proc condition based on candidate spell's SpellFamilyFlags (like auras 107 and 108 do) flag96 spellFamilyMask; // if nonzero - for matching proc condition based on candidate spell's SpellFamilyFlags (like auras 107 and 108 do)
uint32 spellFamilyMask2; // if nonzero - for matching proc condition based on candidate spell's SpellFamilyFlags2 (like auras 107 and 108 do)
uint32 procFlags; // bitmask for matching proc event uint32 procFlags; // bitmask for matching proc event
uint32 procEx; // proc Extend info (see ProcFlagsEx) uint32 procEx; // proc Extend info (see ProcFlagsEx)
float ppmRate; // for melee (ranged?) damage spells - proc rate per minute. if zero, falls back to flat chance from Spell.dbc float ppmRate; // for melee (ranged?) damage spells - proc rate per minute. if zero, falls back to flat chance from Spell.dbc
+1 -1
View File
@@ -6937,7 +6937,7 @@ bool Unit::HandleProcTriggerSpell(Unit *pVictim, uint32 damage, Aura* triggeredB
// Bloodthirst (($m/100)% of max health) // Bloodthirst (($m/100)% of max health)
case 23880: case 23880:
{ {
basepoints0 = int32(GetMaxHealth() * triggerAmount / 10000); basepoints0 = int32(GetMaxHealth() * triggerAmount / 100);
break; break;
} }
// Shamanistic Rage triggered spell // Shamanistic Rage triggered spell