Ejemplo n.º 1
0
        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();
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
    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();
    }