void UpdateAI(uint32 diff) { if (!UpdateVictim()) return; events.Update(diff); if (uint32 eventId = events.ExecuteEvent()) { switch (eventId) { case EVENT_VICIOUS_CROC_UPDATE_THREAT: { events.ScheduleEvent(EVENT_VICIOUS_CROC_UPDATE_THREAT, 1000); UpdateThreat(); } break; case EVENT_VICIOUS_CROC_VICIOUS_BITE: events.ScheduleEvent(EVENT_VICIOUS_CROC_VICIOUS_BITE, urand(5000, 10000)); me->CastSpell(me->GetVictim(), SPELL_VICIOUS_BITE, false); break; } } DoMeleeAttackIfReady(); }
npc_frenzied_crocAI(Creature* creature) : ScriptedAI(creature) { me->SetInCombatWithZone(); UpdateThreat(); me->AddAura(SPELL_STEALTHED, me); events.ScheduleEvent(EVENT_VICIOUS_CROC_UPDATE_THREAT, 1000); events.ScheduleEvent(EVENT_VICIOUS_CROC_VICIOUS_BITE, urand(5000, 10000)); InstanceScript* instance = creature->GetInstanceScript(); if (instance) if (Creature* lockmaw = Unit::GetCreature(*me, instance->GetData64(DATA_LOCKMAW))) lockmaw->AI()->JustSummoned(me); }
void UpdateAI(const uint32 diff) { if(ThreatTimer < diff) { UpdatePower(); UpdateThreat(); ThreatTimer = 4000; } else ThreatTimer -= diff; if(CCTimer < diff) { RemoveCC(); CCTimer = 8000+rand()%2000; } else CCTimer -= diff; if(mAIType == AI_MELEE) DoMeleeAttackIfReady(); }