Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Dancing Rune Weapon
- if (dummySpell->Id == 49028)
- {
- // 1 dummy aura for dismiss rune blade
- if (effIndex != 1)
- return false;
- Unit* pPet = NULL;
- for (ControlList::const_iterator itr = m_Controlled.begin(); itr != m_Controlled.end(); ++itr) // Find Rune Weapon
- if ((*itr)->GetEntry() == 27893)
- {
- pPet = *itr;
- triggered_spell_id = 50707;
- break;
- }
- // special abilities damage
- if (pPet && pPet->GetVictim() && damage && procSpell)
- {
- pPet->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
- pPet->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
- uint32 procDmg = damage / 2;
- pPet->SendSpellNonMeleeDamageLog(pPet->GetVictim(), procSpell->Id, procDmg, procSpell->GetSchoolMask(), 0, 0, false, 0, false);
- pPet->DealDamage(pPet->GetVictim(), procDmg, NULL, SPELL_DIRECT_DAMAGE, procSpell->GetSchoolMask(), procSpell, true);
- break;
- }
- else // copy 50% melee damage
- if (pPet && pPet->GetVictim() && damage && !procSpell)
- {
- CalcDamageInfo damageInfo;
- CalculateMeleeDamage(pPet->GetVictim(), 0, &damageInfo, BASE_ATTACK);
- damageInfo.attacker = pPet;
- damageInfo.damage = damageInfo.damage / 2;
- // Send log damage message to client
- pPet->DealDamageMods(pPet->GetVictim(), damageInfo.damage, &damageInfo.absorb);
- pPet->SendAttackStateUpdate(&damageInfo);
- pPet->ProcDamageAndSpell(damageInfo.target, damageInfo.procAttacker, damageInfo.procVictim, damageInfo.procEx, damageInfo.damage, damageInfo.attackType);
- pPet->DealMeleeDamage(&damageInfo, true);
- }
- else
- return false;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement