|
Дата: Суббота, 01.05.2010, 20:24 | Сообщение # 1 |
VIP Статус: ![](/ava/equalaizer.gif)
Группа: Администратор
Сообщений: 3088
|
реализует стан от Improved Fire Nova Totem и снятие snare от Earthen Power Code diff --git a/src/game/Spell.cpp b/src/game/Spell.cpp index 89ce2fd..645f86f 100644 --- a/src/game/Spell.cpp +++ b/src/game/Spell.cpp @@ -31,6 +31,7 @@ #include "Player.h" #include "Pet.h" #include "Unit.h" +#include "Totem.h" #include "Spell.h" #include "DynamicObject.h" #include "Group.h" @@ -792,6 +793,10 @@ void Spell::prepareDataForTriggerSystem() if (m_spellInfo->SpellFamilyFlags & UI64LIT(0x0001000900B80400)) m_canTrigger = true; break; + case SPELLFAMILY_SHAMAN: // Allow any totem triggered spell to trigger (used for improved totem talents) + if (m_caster->GetTypeId()==TYPEID_UNIT && ((Creature*)m_caster)->isTotem() && ((Totem*)m_caster)->GetTotemType()!=TOTEM_STATUE) + m_canTrigger = true; + break; default: break; } diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp index da7496d..3ed9a46 100644 --- a/src/game/Unit.cpp +++ b/src/game/Unit.cpp @@ -4306,6 +4306,13 @@ void Unit::SendPeriodicAuraLog(SpellPeriodicAuraLogInfo *pInfo) void Unit::ProcDamageAndSpell(Unit *pVictim, uint32 procAttacker, uint32 procVictim, uint32 procExtra, uint32 amount, WeaponAttackType attType, SpellEntry const *procSpell) { + //totems proc spells on their owner + if(GetTypeId()==TYPEID_UNIT && ((Creature*)this)->isTotem() && ((Totem*)this)->GetTotemType()!=TOTEM_STATUE) + { + if(Unit* owner = GetOwner()) + owner->ProcDamageAndSpellFor(false,this,procAttacker,procExtra,attType,procSpell,amount); + return; + } // Not much to do if no flags are set. if (procAttacker) ProcDamageAndSpellFor(false,pVictim,procAttacker, procExtra,attType, procSpell, amount); @@ -5849,6 +5856,16 @@ bool Unit::HandleDummyAuraProc(Unit *pVictim, uint32 damage, Aura* triggeredByAu triggered_spell_id = 58879; break; } + // Improved Fire Nova (Rank 2) + case 16544: + triggered_spell_id = 51880; + break; + // Earthen Power (Rank 1,2) note: replace 59566 when 63532 will exist in dbc (3.1.0) + case 51523: + case 51524: + triggered_spell_id = 59566; + break; + } // Ancestral Awakening if (dummySpell->SpellIconID == 3065) Code delete from `spell_proc_event` where `entry`= `16544`; delete from `spell_proc_event` where `entry`= `51523`; delete from `spell_proc_event` where `entry`= `51524`; insert into `spell_proc_event` (`entry`, `SchoolMask`, `SpellFamilyName`, `SpellFamilyMask0`, `SpellFamilyMask1`, `SpellFamilyMask2`, `procFlags`, `procEx`, `ppmRate`, `CustomChance`, `Cooldown`) values('16544','4','11','9224497937835360256','0','0','69632','0','0','0','0'); insert into `spell_proc_event` (`entry`, `SchoolMask`, `SpellFamilyName`, `SpellFamilyMask0`, `SpellFamilyMask1`, `SpellFamilyMask2`, `procFlags`, `procEx`, `ppmRate`, `CustomChance`, `Cooldown`) values('51523','0','0','0','1','0','69632','0','0','0','0'); insert into `spell_proc_event` (`entry`, `SchoolMask`, `SpellFamilyName`, `SpellFamilyMask0`, `SpellFamilyMask1`, `SpellFamilyMask2`, `procFlags`, `procEx`, `ppmRate`, `CustomChance`, `Cooldown`) values('51524','0','0','0','1','0','69632','0','0','0','0');
| | |
|