Move Onyxia 40 to difficulty 2, warnings clean up

This commit is contained in:
郑佩茹
2022-09-08 16:44:38 -06:00
parent 61d4182fc5
commit 23e25e7b34
18 changed files with 966 additions and 112 deletions

View File

@@ -22,7 +22,7 @@
class spell_bwl_chromaggus_time_lapse_60_2_A : public SpellScriptLoader
{
public:
spell_bwl_chromaggus_time_lapse_60_2_A() : SpellScriptLoader("spell_bwl_chromaggus_time_lapse_60_2_A") { }
spell_bwl_chromaggus_time_lapse_60_2_A() : SpellScriptLoader("spell_bwl_chromaggus_time_lapse") { }
class spell_bwl_chromaggus_time_lapse_60_2_A_SpellScript : public SpellScript
{

View File

@@ -117,15 +117,15 @@ enum Yells
EMOTE_BREATH = 4
};
class boss_onyxia_60_2 : public CreatureScript
class boss_onyxia_40 : public CreatureScript
{
public:
boss_onyxia_60_2() : CreatureScript("boss_onyxia") {}
boss_onyxia_40() : CreatureScript("boss_onyxia_40") {}
struct boss_onyxiaAI_60_2 : public BossAI
struct boss_onyxiaAI_40 : public BossAI
{
public:
boss_onyxiaAI_60_2(Creature* pCreature) : BossAI(pCreature, DATA_ONYXIA)
boss_onyxiaAI_40(Creature* pCreature) : BossAI(pCreature, DATA_ONYXIA)
{
Initialize();
}
@@ -172,7 +172,6 @@ public:
me->SetCanFly(false);
me->SetDisableGravity(false);
me->SetSpeed(MOVE_RUN, me->GetCreatureTemplate()->speed_run, false);
instance->DoStopTimedAchievement(ACHIEVEMENT_TIMED_TYPE_EVENT, ACHIEV_TIMED_START_EVENT);
BossAI::Reset();
}
@@ -194,8 +193,6 @@ public:
Talk(SAY_AGGRO);
SetPhase(PHASE_GROUNDED);
instance->DoStopTimedAchievement(ACHIEVEMENT_TIMED_TYPE_EVENT, ACHIEV_TIMED_START_EVENT); // just in case at reset some players already left the instance
instance->DoStartTimedAchievement(ACHIEVEMENT_TIMED_TYPE_EVENT, ACHIEV_TIMED_START_EVENT);
BossAI::EnterCombat(who);
}
@@ -539,11 +536,11 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return GetOnyxiasLairAI<boss_onyxiaAI_60_2>(creature);
return GetOnyxiasLairAI<boss_onyxiaAI_40>(creature);
};
};
void AddSC_boss_onyxia_60_2()
void AddSC_boss_onyxia_40()
{
new boss_onyxia_60_2();
new boss_onyxia_40();
}

View File

@@ -22,13 +22,14 @@
ObjectData const creatureData[] =
{
{ NPC_ONYXIA, DATA_ONYXIA }
{ NPC_ONYXIA, DATA_ONYXIA },
{ NPC_ONYXIA_40, DATA_ONYXIA }
};
class instance_onyxias_lair_60_2 : public InstanceMapScript
class instance_onyxias_lair_40 : public InstanceMapScript
{
public:
instance_onyxias_lair_60_2() : InstanceMapScript("instance_onyxias_lair", 249) {}
instance_onyxias_lair_40() : InstanceMapScript("instance_onyxias_lair", 249) {}
InstanceScript* GetInstanceScript(InstanceMap* pMap) const override
{
@@ -144,6 +145,10 @@ public:
bool CheckAchievementCriteriaMeet(uint32 criteria_id, Player const* /*source*/, Unit const* /*target*/, uint32 /*miscvalue1*/) override
{
if (instance->GetDifficulty() == RAID_DIFFICULTY_10MAN_HEROIC)
{
return false; // No achievements in Onyxia 40man
}
switch(criteria_id)
{
case ACHIEV_CRITERIA_MANY_WHELPS_10_PLAYER:
@@ -158,6 +163,25 @@ public:
};
};
class onyxia_entrance_trigger : public AreaTriggerScript
{
public:
onyxia_entrance_trigger() : AreaTriggerScript("onyxia_entrance_trigger") { }
bool OnTrigger(Player* player, AreaTrigger const* areaTrigger) override
{
if (player->getLevel() < 80)
{
player->SetRaidDifficulty(RAID_DIFFICULTY_10MAN_HEROIC);
}
if (!sMapMgr->PlayerCannotEnter(249, player, true))
{
player->TeleportTo(249, 29.1607f, -71.3372f, -8.18032f, 4.58f);
}
return true;
}
};
class global_onyxia_tuning_script : public GlobalScript
{
public:
@@ -165,6 +189,7 @@ public:
void OnLoadSpellCustomAttr(SpellInfo* spellInfo) override
{
// TODO: This is currently overriding 10 man spells
switch (spellInfo->Id)
{
case 18435: // Flame Breath
@@ -293,8 +318,9 @@ public:
}
};
void AddSC_instance_onyxias_lair_60_2()
void AddSC_instance_onyxias_lair_40()
{
new instance_onyxias_lair_60_2();
new instance_onyxias_lair_40();
new global_onyxia_tuning_script();
new onyxia_entrance_trigger();
}

View File

@@ -19,6 +19,8 @@
#define DEF_ONYXIAS_LAIR_H
#include "CreatureAIImpl.h"
#include "Player.h"
#include "MapMgr.h"
#define OnyxiasLairScriptName "instance_onyxias_lair"
@@ -35,6 +37,10 @@ enum eCreatures
NPC_ONYXIA = 10184,
NPC_ONYXIAN_WHELP = 11262,
NPC_ONYXIAN_LAIR_GUARD = 36561,
NPC_ONYXIA_40 = 301000,
NPC_ONYXIAN_WHELP_40 = 301001,
NPC_ONYXIAN_LAIR_GUARD_40 = 301002,
};
enum eGameObjects