Advertisement
cyphric

arentos

May 24th, 2012
116
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.51 KB | None | 0 0
  1. /*
  2.  
  3. PVP boss script, copyright belongs to cyphric, creator.
  4.  
  5.  
  6. */
  7.  
  8.  
  9. #include "ScriptPCH.h"
  10.  
  11. enum eNums
  12. {
  13.      SPELL_SHADOWBOLT = 71297,
  14.      SPELL_CURSEOFDOOM = 64157,
  15.      SPELL_CORNEREDANDENRAGED = 52262,
  16.      SPELL_DEMONARMOR = 687
  17. };
  18.  
  19. class ArentosTheDemonLord: public CreatureScript
  20. {
  21. public:
  22.     ArentosTheDemonLord() : CreatureScript("BossNO.1"){}
  23.  
  24.     ArentosTheDemonLordAI* GetAI_ArentosTheDemonLord(Creature* pCreature) const
  25.     {
  26.         return new ArentosTheDemonLord(pCreature);
  27.     }
  28.  
  29.     struct ArentosTheDemonLordAI : public ScriptedAI
  30.     {
  31.         ArentosTheDemonLordAI(Creature *c) : ScriptedAI(c) {}
  32.        
  33.         uint32 ShadowBolt_Timer;
  34.         uint32 CuresofDoom_Timer;
  35.         uint32 CorneredandEnraged_Timer;
  36.         uint32 DemonArmor_Timer ;
  37.  
  38.         uint32 phase;
  39.  
  40.         void Reset()
  41.         {
  42.             DemonArmor_Timer = 0;
  43.             ShadowBolt_Timer = 10000;
  44.             CurseofDoom_Timer = 30000;
  45.  
  46.             Phase = 1;
  47.         }
  48.        
  49.         void KilledUnit(Unit *)
  50.         {
  51.             me->MonsterYell("Hahaha, one down!", LANG_UNIVERSAL, NULL)
  52.         }
  53.        
  54.         void JustDied(Unit *)
  55.         {
  56.             me->MonsterYell("NO, I can't belive that you could kill me........ But I'm only the first of the 4 bosses, my master succeeds even me!", LANG_UNIVERSAL, NULL)
  57.         }
  58.  
  59.         void EnterCombat(Unit *)
  60.         {
  61.             me->MonsterYell("You can not kill me, the master of demons!", LANG_UNIVERSAL, NULL)
  62.         }
  63.  
  64.         void UpdateAI(const uint32 uiDiff)
  65.         {
  66.             if (!me->getVictim())
  67.             {
  68.                 if (DemonArmor_Timer <= uiDiff
  69.                 {
  70.                     DoCast(me, SPELL_DEMONARMOR);
  71.                     DemonArmor_Timer = 18000000;
  72.                 }
  73.                
  74.                 else
  75.                     DemonArmor_Timer -= uiDiff;
  76.             }
  77.  
  78.             if(!UpdateVictim())
  79.                 return;
  80.  
  81.             if (((me->GetMaxHealth()*100 / me->GetMaxHealth()) < 25) &&(Phase == 1))
  82.             if (((me->GetMaxHealth()*25 / me->GetMaxHealth()) < 0) && (Phase == 2))
  83.             {
  84.                 Phase = 2;
  85.             }
  86.  
  87.             if (Phase == 1)
  88.             {
  89.  
  90.             if(ShadowBolt_Timer <= uiDiff)
  91.             {
  92.                 DoCast(me->getVictim(), SPELL_SHADOWBOLT);
  93.                 ShadowBolt_Timer = 5000
  94.  
  95.             }
  96.             else
  97.                 ShadowBolt_Timer -= uiDiff;
  98.  
  99.             if(CuresofDoom_Timer <= uiDiff)
  100.             {
  101.                 if (Unit * pTarget = SelectUnit(SELECT_TARGET_RANDOM, 0))
  102.                     DoCast(pTarget, SPELL_CURSEOFDOOM);
  103.  
  104.                 CurseofDoom_Timer = 109000
  105.  
  106.             }
  107.             else
  108.                 CurseofDoom_Timer -=uiDiff
  109.             }
  110.  
  111.             if (Phase == 2)
  112.             {
  113.                 if(CorneredandEnraged_Timer <= uiDiff)
  114.                 {
  115.                     DoCast(me, SPELL_CORNEREDANDENRAGED);
  116.                     CorneredandEnraged_Timer = 0;
  117.                 }
  118.                 else
  119.                     CorneredandEnraged_Timer -= uiDiff;
  120.             }
  121.             DoMeleeAttackIfReady();
  122.         }
  123.     };
  124. };
  125.  
  126. void AddSC_ArentosTheDemonLord()
  127. {
  128.     new ArentosTheDemonLord();
  129. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement