Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "ScriptPCH.h"
- #include "ScriptedCreature.h"
- enum Events
- {
- EVENT_1,
- EVENT_2,
- EVENT_3,
- EVENT_4,
- EVENT_5,
- };
- class boss_script : public CreatureScript
- {
- public:
- boss_script() : CreatureScript("boss_script") { }
- struct boss_scriptAI : public ScriptedAI
- {
- boss_scriptAI(Creature* creature) : ScriptedAI(creature) {}
- EventMap events;
- void Reset()
- {
- events.Reset();
- }
- void EnterCombat(Unit* /*who*/)
- {
- events.ScheduleEvent(EVENT_1, 5000);
- events.ScheduleEvent(EVENT_2, 20000);
- //events.ScheduleEvent(EVENT_3, 22000);
- events.ScheduleEvent(EVENT_4, 60000);
- events.ScheduleEvent(EVENT_5, 10000);
- me->MonsterYell("You mortals think you can challenge ME?", LANG_UNIVERSAL, 0);
- }
- void KilledUnit(Unit* /*Killed*/)
- {
- me->MonsterYell("I WILL COLLECT YOUR SOUL NEXT!", LANG_UNIVERSAL, 0);
- }
- void UpdateAI(uint32 const diff)
- {
- if (!UpdateVictim())
- return;
- events.Update(diff);
- while(uint32 eventId = events.ExecuteEvent())
- {
- switch (eventId)
- {
- case EVENT_1:
- if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, true))
- DoCast(target, 43582);
- events.ScheduleEvent(EVENT_1, 5000);
- break;
- case EVENT_2:
- if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, true))
- DoCast(target, 19813);
- events.ScheduleEvent(EVENT_3, 2000);
- break;
- case EVENT_3:
- if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, true))
- DoCast(target, 30638);
- break;
- case EVENT_4:
- DoCast(me, 16421);
- break;
- case EVENT_5:
- if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, true))
- DoCast(target, 11);
- events.ScheduleEvent(EVENT_5, 35000);
- break;
- default:
- break;
- }
- }
- DoMeleeAttackIfReady();
- }
- void JustDied(Unit* /*who*/)
- {
- me->MonsterYell("THIS IS NOT THAT LAST YOU WILL SEE IF ME!", LANG_UNIVERSAL, 0);
- }
- };
- CreatureAI* GetAI(Creature* creature) const
- {
- return new boss_scriptAI(creature);
- }
- };
- void AddSC_boss_script()
- {
- new boss_script;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement