void CheckPoly(uint32 diff) { if (polyCheckTimer <= diff && POLYMORPH) { Polymorph = FindAffectedTarget(POLYMORPH, me->GetGUID()); polyCheckTimer = 2000; } }
void CheckFear() { if (Unit* u = FindAffectedTarget(FEAR, me->GetGUID())) if (Aura* aura = u->GetAura(FEAR, me->GetGUID())) if (aura->GetDuration() > 3000) return; Unit* feartarget = FindFearTarget(); if (feartarget && doCast(feartarget, FEAR)) return; }
void FocusMagic(uint32 diff) { if (!FOCUSMAGIC || fmCheckTimer > diff || GC_Timer > diff || me->getLevel() < 20 || Rand() < 50 || IsCasting()) return; if (Unit* target = FindAffectedTarget(FOCUSMAGIC, me->GetGUID(), 70, 2)) { fmCheckTimer = 15000; return; } else { Group* pGroup = master->GetGroup(); if (!pGroup) { if (master->getPowerType() == POWER_MANA && me->GetExactDist(master) < 30 && !master->HasAura(FOCUSMAGIC)) target = master; } else { for (GroupReference* itr = pGroup->GetFirstMember(); itr != NULL; itr = itr->next()) { Player* pPlayer = itr->GetSource(); if (!pPlayer || pPlayer->IsInWorld() || pPlayer->IsDead()) continue; if (me->GetMapId() != pPlayer->GetMapId()) continue; if (pPlayer->getPowerType() == POWER_MANA && me->GetExactDist(pPlayer) < 30 && !pPlayer->HasAura(FOCUSMAGIC)) { target = pPlayer; break; } } if (!target) { for (GroupReference* itr = pGroup->GetFirstMember(); itr != NULL; itr = itr->next()) { Player* pPlayer = itr->GetSource(); if (!pPlayer || !pPlayer->IsInWorld() || !pPlayer->HaveBot()) continue; if (me->GetMapId() != pPlayer->GetMapId()) continue; for (uint8 i = 0; i != pPlayer->GetMaxNpcBots(); ++i) { Creature* cre = pPlayer->GetBotMap(i)->_Cre(); if (!cre || !cre->IsInWorld() || cre == me || cre->IsDead()) continue; if (cre->getPowerType() == POWER_MANA && me->GetExactDist(cre) < 30 && !cre->HasAura(FOCUSMAGIC)) { target = cre; break; } } } } } if (target && doCast(target, FOCUSMAGIC)) { GC_Timer = 500; fmCheckTimer = 30000; return; } } fmCheckTimer = 5000; }