daily pastebin goal
53%
SHARE
TWEET

Untitled

a guest Sep 13th, 2017 66 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.  .../TrialOfTheCrusader/boss_anubarak_trial.cpp     |   13 ++++++-
  2.  .../TrialOfTheCrusader/boss_faction_champions.cpp  |    7 +++-
  3.  .../TrialOfTheCrusader/boss_lord_jaraxxus.cpp      |   13 ++++++-
  4.  .../TrialOfTheCrusader/boss_northrend_beasts.cpp   |   39 +++++++++++++++-----
  5.  .../TrialOfTheCrusader/boss_twin_valkyr.cpp        |    7 +++-
  6.  .../instance_trial_of_the_crusader.cpp             |   18 +++++----
  7.  .../TrialOfTheCrusader/trial_of_the_crusader.h     |   10 +++++
  8.  7 files changed, 82 insertions(+), 25 deletions(-)
  9.  
  10. diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_anubarak_trial.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_anubarak_trial.cpp
  11. index b7e38f9..8e891e0 100755
  12. --- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_anubarak_trial.cpp
  13. +++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_anubarak_trial.cpp
  14. @@ -132,9 +132,9 @@ public:
  15.          return new boss_anubarak_trialAI(pCreature);
  16.      };
  17.  
  18. -    struct boss_anubarak_trialAI : public ScriptedAI
  19. +    struct boss_anubarak_trialAI : public BossAI
  20.      {
  21. -        boss_anubarak_trialAI(Creature* pCreature) : ScriptedAI(pCreature), Summons(me)
  22. +        boss_anubarak_trialAI(Creature* pCreature) : BossAI(pCreature, BOSS_ANUBARAK), Summons(me)
  23.          {
  24.              m_pInstance = (InstanceScript*)pCreature->GetInstanceScript();
  25.          }
  26. @@ -207,7 +207,10 @@ public:
  27.          void JustReachedHome()
  28.          {
  29.              if (m_pInstance)
  30. +            {
  31.                  m_pInstance->SetData(TYPE_ANUBARAK, FAIL);
  32. +                m_pInstance->SetBossState(BOSS_ANUBARAK, NOT_STARTED);
  33. +            }
  34.              //Summon Scarab Swarms neutral at random places
  35.              for (int i=0; i < 10; i++)
  36.                  if (Creature* pTemp = me->SummonCreature(NPC_SCARAB, AnubarakLoc[1].GetPositionX()+urand(0, 50)-25, AnubarakLoc[1].GetPositionY()+urand(0, 50)-25, AnubarakLoc[1].GetPositionZ()))
  37. @@ -219,7 +222,10 @@ public:
  38.              Summons.DespawnAll();
  39.              DoScriptText(SAY_DEATH, me);
  40.              if (m_pInstance)
  41. +            {
  42.                  m_pInstance->SetData(TYPE_ANUBARAK, DONE);
  43. +                m_pInstance->SetBossState(BOSS_ANUBARAK, DONE);
  44. +            }
  45.          }
  46.  
  47.          void JustSummoned(Creature* pSummoned)
  48. @@ -256,7 +262,10 @@ public:
  49.              me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE);
  50.              me->SetInCombatWithZone();
  51.              if (m_pInstance)
  52. +            {
  53.                  m_pInstance->SetData(TYPE_ANUBARAK, IN_PROGRESS);
  54. +                m_pInstance->SetBossState(BOSS_ANUBARAK, IN_PROGRESS);
  55. +            }
  56.              //Despawn Scarab Swarms neutral
  57.              Summons.DoAction(NPC_SCARAB, ACTION_SCARAB_SUBMERGE);
  58.              //Spawn Burrow
  59. diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_faction_champions.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_faction_champions.cpp
  60. index 62fa2f8..c7e1550 100755
  61. --- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_faction_champions.cpp
  62. +++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_faction_champions.cpp
  63. @@ -215,6 +215,7 @@ public:
  64.                              if (m_uiChampionsFailed + m_uiChampionsKilled >= Summons.size())
  65.                              {
  66.                                  m_pInstance->SetData(TYPE_CRUSADERS, FAIL);
  67. +                                m_pInstance->SetBossState(BOSS_CRUSADERS, NOT_STARTED);
  68.                                  Summons.DespawnAll();
  69.                                  me->DespawnOrUnsummon();
  70.                              }
  71. @@ -228,6 +229,7 @@ public:
  72.                                  m_bInProgress = true;
  73.                                  Summons.DoZoneInCombat();
  74.                                  m_pInstance->SetData(TYPE_CRUSADERS, IN_PROGRESS);
  75. +                                m_pInstance->SetBossState(BOSS_CRUSADERS, IN_PROGRESS);
  76.                              }
  77.                              break;
  78.                          case DONE:
  79. @@ -237,6 +239,7 @@ public:
  80.                              else if (m_uiChampionsKilled >= Summons.size())
  81.                              {
  82.                                  m_pInstance->SetData(TYPE_CRUSADERS, DONE);
  83. +                                m_pInstance->SetBossState(BOSS_CRUSADERS, DONE);
  84.                                  Summons.DespawnAll();
  85.                                  me->DespawnOrUnsummon();
  86.                              }
  87. @@ -249,9 +252,9 @@ public:
  88.  
  89.  };
  90.  
  91. -struct boss_faction_championsAI : public ScriptedAI
  92. +struct boss_faction_championsAI : public BossAI
  93.  {
  94. -    boss_faction_championsAI(Creature* pCreature, uint32 aitype) : ScriptedAI(pCreature)
  95. +    boss_faction_championsAI(Creature* pCreature, uint32 aitype) : BossAI(pCreature, BOSS_CRUSADERS)
  96.      {
  97.          m_pInstance = (InstanceScript *) pCreature->GetInstanceScript();
  98.          mAIType = aitype;
  99. diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_lord_jaraxxus.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_lord_jaraxxus.cpp
  100. index 5dda655..2f60af5 100755
  101. --- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_lord_jaraxxus.cpp
  102. +++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_lord_jaraxxus.cpp
  103. @@ -95,9 +95,9 @@ public:
  104.          return new boss_jaraxxusAI(pCreature);
  105.      }
  106.  
  107. -    struct boss_jaraxxusAI : public ScriptedAI
  108. +    struct boss_jaraxxusAI : public  BossAI
  109.      {
  110. -        boss_jaraxxusAI(Creature* pCreature) : ScriptedAI(pCreature), Summons(me)
  111. +        boss_jaraxxusAI(Creature* pCreature) :  BossAI(pCreature, BOSS_JARAXXUS), Summons(me)
  112.          {
  113.              m_pInstance = pCreature->GetInstanceScript();
  114.              Reset();
  115. @@ -135,7 +135,10 @@ public:
  116.          void JustReachedHome()
  117.          {
  118.              if (m_pInstance)
  119. +            {
  120.                  m_pInstance->SetData(TYPE_JARAXXUS, FAIL);
  121. +                m_pInstance->SetBossState(BOSS_JARAXXUS, NOT_STARTED);
  122. +            }
  123.              DoCast(me, SPELL_JARAXXUS_CHAINS);
  124.              me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
  125.              me->SetReactState(REACT_PASSIVE);
  126. @@ -155,7 +158,10 @@ public:
  127.              Summons.DespawnAll();
  128.              DoScriptText(SAY_DEATH, me);
  129.              if (m_pInstance)
  130. +            {
  131.                  m_pInstance->SetData(TYPE_JARAXXUS, DONE);
  132. +                m_pInstance->SetBossState(BOSS_JARAXXUS, DONE);
  133. +            }
  134.          }
  135.  
  136.          void JustSummoned(Creature* pSummoned)
  137. @@ -167,7 +173,10 @@ public:
  138.          {
  139.              me->SetInCombatWithZone();
  140.              if (m_pInstance)
  141. +            {
  142.                  m_pInstance->SetData(TYPE_JARAXXUS, IN_PROGRESS);
  143. +                m_pInstance->SetBossState(BOSS_JARAXXUS, IN_PROGRESS);
  144. +            }
  145.              DoScriptText(SAY_AGGRO, me);
  146.          }
  147.  
  148. diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_northrend_beasts.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_northrend_beasts.cpp
  149. index ba8682d..89119e4 100755
  150. --- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_northrend_beasts.cpp
  151. +++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_northrend_beasts.cpp
  152. @@ -119,9 +119,9 @@ public:
  153.          return new boss_gormokAI(pCreature);
  154.      }
  155.  
  156. -    struct boss_gormokAI : public ScriptedAI
  157. +    struct boss_gormokAI : public BossAI
  158.      {
  159. -        boss_gormokAI(Creature* pCreature) : ScriptedAI(pCreature), Summons(me)
  160. +        boss_gormokAI(Creature* pCreature) : BossAI(pCreature, BOSS_BEASTS), Summons(me)
  161.          {
  162.              m_pInstance = (InstanceScript*)pCreature->GetInstanceScript();
  163.          }
  164. @@ -158,14 +158,21 @@ public:
  165.          void JustReachedHome()
  166.          {
  167.              if (m_pInstance)
  168. +            {
  169.                  m_pInstance->SetData(TYPE_NORTHREND_BEASTS, FAIL);
  170. +                m_pInstance->SetBossState(BOSS_BEASTS, NOT_STARTED);
  171. +            }
  172.              me->DespawnOrUnsummon();
  173.          }
  174.  
  175.          void EnterCombat(Unit* /*pWho*/)
  176.          {
  177.              me->SetInCombatWithZone();
  178. -            m_pInstance->SetData(TYPE_NORTHREND_BEASTS, GORMOK_IN_PROGRESS);
  179. +            if (m_pInstance)
  180. +            {
  181. +                m_pInstance->SetData(TYPE_NORTHREND_BEASTS, GORMOK_IN_PROGRESS);
  182. +                m_pInstance->SetBossState(BOSS_BEASTS, IN_PROGRESS);
  183. +            }
  184.          }
  185.  
  186.          void JustSummoned(Creature* summon)
  187. @@ -357,11 +364,11 @@ public:
  188.  
  189.  };
  190.  
  191. -struct boss_jormungarAI : public ScriptedAI
  192. +struct boss_jormungarAI : public BossAI
  193.  {
  194. -    boss_jormungarAI(Creature* creature) : ScriptedAI(creature)
  195. +    boss_jormungarAI(Creature* pCreature) : BossAI(pCreature, BOSS_BEASTS)
  196.      {
  197. -        instanceScript = creature->GetInstanceScript();
  198. +        instanceScript = pCreature->GetInstanceScript();
  199.      }
  200.  
  201.      void Reset()
  202. @@ -397,8 +404,10 @@ struct boss_jormungarAI : public ScriptedAI
  203.      void JustReachedHome()
  204.      {
  205.          if (instanceScript && instanceScript->GetData(TYPE_NORTHREND_BEASTS) != FAIL)
  206. +        {
  207.              instanceScript->SetData(TYPE_NORTHREND_BEASTS, FAIL);
  208. -
  209. +            instanceScript->SetBossState(BOSS_BEASTS, NOT_STARTED);
  210. +        }
  211.          me->DespawnOrUnsummon();
  212.      }
  213.  
  214. @@ -415,7 +424,10 @@ struct boss_jormungarAI : public ScriptedAI
  215.      {
  216.          me->SetInCombatWithZone();
  217.          if (instanceScript)
  218. +        {
  219.              instanceScript->SetData(TYPE_NORTHREND_BEASTS, SNAKES_IN_PROGRESS);
  220. +            instanceScript->SetBossState(BOSS_BEASTS, IN_PROGRESS);
  221. +        }
  222.      }
  223.  
  224.      void UpdateAI(const uint32 uiDiff)
  225. @@ -677,9 +689,9 @@ public:
  226.          return new boss_icehowlAI(pCreature);
  227.      }
  228.  
  229. -    struct boss_icehowlAI : public ScriptedAI
  230. +    struct boss_icehowlAI : public BossAI
  231.      {
  232. -        boss_icehowlAI(Creature* pCreature) : ScriptedAI(pCreature)
  233. +        boss_icehowlAI(Creature* pCreature) : BossAI(pCreature, BOSS_BEASTS)
  234.          {
  235.              m_pInstance = (InstanceScript*)pCreature->GetInstanceScript();
  236.          }
  237. @@ -719,7 +731,10 @@ public:
  238.          void JustDied(Unit* /*pKiller*/)
  239.          {
  240.              if (m_pInstance)
  241. +            {
  242.                  m_pInstance->SetData(TYPE_NORTHREND_BEASTS, ICEHOWL_DONE);
  243. +                m_pInstance->SetBossState(BOSS_BEASTS, DONE);
  244. +            }
  245.          }
  246.  
  247.          void MovementInform(uint32 uiType, uint32 uiId)
  248. @@ -752,7 +767,10 @@ public:
  249.          void JustReachedHome()
  250.          {
  251.              if (m_pInstance)
  252. +            {
  253.                  m_pInstance->SetData(TYPE_NORTHREND_BEASTS, FAIL);
  254. +                m_pInstance->SetBossState(BOSS_BEASTS, NOT_STARTED);
  255. +            }
  256.              me->DespawnOrUnsummon();
  257.          }
  258.  
  259. @@ -768,7 +786,10 @@ public:
  260.          void EnterCombat(Unit* /*pWho*/)
  261.          {
  262.              if (m_pInstance)
  263. +            {
  264.                  m_pInstance->SetData(TYPE_NORTHREND_BEASTS, ICEHOWL_IN_PROGRESS);
  265. +                m_pInstance->SetBossState(BOSS_BEASTS, IN_PROGRESS);
  266. +            }
  267.              me->SetInCombatWithZone();
  268.          }
  269.  
  270. diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_twin_valkyr.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_twin_valkyr.cpp
  271. index daf306a..7071260 100755
  272. --- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_twin_valkyr.cpp
  273. +++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_twin_valkyr.cpp
  274. @@ -112,9 +112,9 @@ enum Actions
  275.  ## boss_twin_base
  276.  ######*/
  277.  
  278. -struct boss_twin_baseAI : public ScriptedAI
  279. +struct boss_twin_baseAI : public BossAI
  280.  {
  281. -    boss_twin_baseAI(Creature* pCreature) : ScriptedAI(pCreature), Summons(me)
  282. +    boss_twin_baseAI(Creature* pCreature) : BossAI(pCreature, BOSS_VALKIRIES), Summons(me)
  283.      {
  284.          m_pInstance = (InstanceScript*)pCreature->GetInstanceScript();
  285.      }
  286. @@ -173,6 +173,7 @@ struct boss_twin_baseAI : public ScriptedAI
  287.          {
  288.              m_pInstance->SetData(TYPE_VALKIRIES, FAIL);
  289.              m_pInstance->SetData(DATA_HEALTH_TWIN_SHARED, me->GetMaxHealth());
  290. +            m_pInstance->SetBossState(BOSS_VALKIRIES, NOT_STARTED);
  291.          }
  292.          me->DespawnOrUnsummon();
  293.      }
  294. @@ -288,6 +289,7 @@ struct boss_twin_baseAI : public ScriptedAI
  295.                  if (!pSister->isAlive())
  296.                  {
  297.                      m_pInstance->SetData(TYPE_VALKIRIES, DONE);
  298. +                    m_pInstance->SetBossState(BOSS_VALKIRIES, DONE);
  299.                      Summons.DespawnAll();
  300.                  }
  301.                  else m_pInstance->SetData(TYPE_VALKIRIES, SPECIAL);
  302. @@ -309,6 +311,7 @@ struct boss_twin_baseAI : public ScriptedAI
  303.          {
  304.              m_pInstance->SetData(TYPE_VALKIRIES, IN_PROGRESS);
  305.              m_pInstance->SetData(DATA_HEALTH_TWIN_SHARED, me->GetMaxHealth());
  306. +            m_pInstance->SetBossState(BOSS_VALKIRIES, IN_PROGRESS);
  307.          }
  308.          if (me->isAlive())
  309.          {
  310. diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/instance_trial_of_the_crusader.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/instance_trial_of_the_crusader.cpp
  311. index 8a404c4..dd40a34 100755
  312. --- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/instance_trial_of_the_crusader.cpp
  313. +++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/instance_trial_of_the_crusader.cpp
  314. @@ -85,6 +85,8 @@ class instance_trial_of_the_crusader : public InstanceMapScript
  315.                  for (uint8 i = 0; i < MAX_ENCOUNTERS; ++i)
  316.                      EncounterStatus[i] = NOT_STARTED;
  317.  
  318. +                SetBossNumber(MAX_BOSS_NUMBER);
  319. +                
  320.                  TrialCounter = 50;
  321.                  EventStage = 0;
  322.  
  323. @@ -108,14 +110,6 @@ class instance_trial_of_the_crusader : public InstanceMapScript
  324.                  NeedSave = false;
  325.              }
  326.  
  327. -            bool IsEncounterInProgress() const
  328. -            {
  329. -                for (uint8 i = 0; i < MAX_ENCOUNTERS ; ++i)
  330. -                    if (EncounterStatus[i] == IN_PROGRESS)
  331. -                        return true;
  332. -                return false;
  333. -            }
  334. -
  335.              void OnPlayerEnter(Player* player)
  336.              {
  337.                  if (instance->IsHeroic())
  338. @@ -611,6 +605,14 @@ class instance_trial_of_the_crusader : public InstanceMapScript
  339.                          ResilienceWillFixItTimer -= diff;
  340.                  }
  341.              }
  342. +            
  343. +            bool SetBossState(uint32 id, EncounterState state)
  344. +            {
  345. +                if (!InstanceScript::SetBossState(id, state))
  346. +                    return false;
  347. +                
  348. +                return true;
  349. +            }
  350.  
  351.              void Save()
  352.              {
  353. diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/trial_of_the_crusader.h b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/trial_of_the_crusader.h
  354. index ab9087c..bb464ea 100644
  355. --- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/trial_of_the_crusader.h
  356. +++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/trial_of_the_crusader.h
  357. @@ -37,6 +37,16 @@ enum
  358.      DESPAWN_TIME                = 300000,
  359.  };
  360.  
  361. +enum BossToC
  362. +{
  363. +    BOSS_BEASTS                 = 0,
  364. +    BOSS_JARAXXUS               = 1,
  365. +    BOSS_CRUSADERS              = 2,
  366. +    BOSS_VALKIRIES              = 3,
  367. +    BOSS_ANUBARAK               = 4,
  368. +    MAX_BOSS_NUMBER             = 5,
  369. +};
  370. +
  371.  const Position ToCCommonLoc[]=
  372.  {
  373.      {559.257996f, 90.266197f, 395.122986f, 0},  //  0 Barrent
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top