void UpdateAI(const uint32 diff) { if (Invisible && Invisible_Timer <= diff) { //Become visible again me->setFaction(14); me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE); me->SetDisplayId(11073); //Jandice Model Invisible = false; } else if (Invisible) { Invisible_Timer -= diff; //Do nothing while invisible return; } //Return since we have no target if (!UpdateVictim()) return; //CurseOfBlood_Timer if (CurseOfBlood_Timer <= diff) { //Cast DoCast(me->getVictim(), SPELL_CURSEOFBLOOD); //45 seconds CurseOfBlood_Timer = 30000; } else CurseOfBlood_Timer -= diff; //Illusion_Timer if (!Invisible && Illusion_Timer <= diff) { //Interrupt any spell casting me->InterruptNonMeleeSpells(false); me->setFaction(35); me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE); me->SetDisplayId(11686); // Invisible Model DoModifyThreatPercent(me->getVictim(), -99); //Summon 10 Illusions attacking random gamers Unit *pTarget = NULL; for (uint8 i = 0; i < 10; ++i) { pTarget = SelectUnit(SELECT_TARGET_RANDOM, 0); if (pTarget) SummonIllusions(pTarget); } Invisible = true; Invisible_Timer = 3000; //25 seconds until we should cast this agian Illusion_Timer = 25000; } else Illusion_Timer -= diff; // //Illusion_Timer // if (Illusion_Timer <= diff) // { // //Cast // DoCast(me->getVictim(), SPELL_ILLUSION); // // //3 Illusion will be summoned // if (Illusioncounter < 3) // { // Illusion_Timer = 500; // ++Illusioncounter; // } // else { // //15 seconds until we should cast this again // Illusion_Timer = 15000; // Illusioncounter = 0; // } // // } else Illusion_Timer -= diff; DoMeleeAttackIfReady(); }
void UpdateAI(const uint32 diff) { if (Invisible && Invisible_Timer < diff) { //Become visible again m_creature->setFaction(14); m_creature->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE); m_creature->SetUInt32Value(UNIT_FIELD_DISPLAYID,11073); //Jandice Model Invisible = false; } else if (Invisible) { Invisible_Timer -= diff; //Do nothing while invisible return; } //Return since we have no target if (!m_creature->SelectHostilTarget() || !m_creature->getVictim()) return; //CurseOfBlood_Timer if (CurseOfBlood_Timer < diff) { DoCast(m_creature->getVictim(),SPELL_CURSEOFBLOOD); CurseOfBlood_Timer = 30000; }else CurseOfBlood_Timer -= diff; //Illusion_Timer if (!Invisible && Illusion_Timer < diff) { //Inturrupt any spell casting m_creature->InterruptNonMeleeSpells(false); m_creature->setFaction(35); m_creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE); m_creature->SetUInt32Value(UNIT_FIELD_DISPLAYID,11686); // Invisible Model m_creature->getThreatManager().modifyThreatPercent(m_creature->getVictim(),-99); //Summon 10 Illusions attacking random gamers Unit* target = NULL; for(int i = 0; i < 10;i++) { target = SelectUnit(SELECT_TARGET_RANDOM,0); SummonIllusions(target); } Invisible = true; Invisible_Timer = 3000; //25 seconds until we should cast this agian Illusion_Timer = 25000; }else Illusion_Timer -= diff; // //Illusion_Timer // if (Illusion_Timer < diff) // { // //Cast // DoCast(m_creature->getVictim(),SPELL_ILLUSION); // //3 Illusion will be summoned // if (Illusioncounter < 3) // { // Illusion_Timer = 500; // Illusioncounter++; // } // else { // //15 seconds until we should cast this again // Illusion_Timer = 15000; // Illusioncounter=0; // } // }else Illusion_Timer -= diff; DoMeleeAttackIfReady(); }