SHARE
TWEET

Untitled

a guest Sep 13th, 2017 65 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
Top