More Naxx40 progress, Vanilla world level adjustments

This commit is contained in:
郑佩茹
2022-08-30 18:37:10 -06:00
parent 470481190b
commit af39f0cbe1
7 changed files with 3970 additions and 2079 deletions

View File

@@ -137,6 +137,67 @@ public:
}
};
class npc_naxx40_area_trigger : public CreatureScript
{
private:
static bool isAttuned(Player* player)
{
if (player->GetQuestStatus(NAXX40_ATTUNEMENT_1) == QUEST_STATUS_REWARDED)
return true;
if (player->GetQuestStatus(NAXX40_ATTUNEMENT_2) == QUEST_STATUS_REWARDED)
return true;
if (player->GetQuestStatus(NAXX40_ATTUNEMENT_3) == QUEST_STATUS_REWARDED)
return true;
return false;
}
public:
npc_naxx40_area_trigger() : CreatureScript("npc_naxx40_area_trigger") {}
struct npc_naxx40_area_triggerAI: public ScriptedAI
{
npc_naxx40_area_triggerAI(Creature* creature) : ScriptedAI(creature)
{
me->SetDisplayId(11686); // Invisible
}
void MoveInLineOfSight(Unit* who) override
{
if (who && me->GetDistance2d(who) < 5.0f)
{
if (Player* player = who->ToPlayer())
{
if (isAttuned(player))
{
player->SetRaidDifficulty(RAID_DIFFICULTY_10MAN_HEROIC);
player->TeleportTo(533, 3005.68f, -3447.77f, 293.93f, 4.65f);
}
}
}
else if (who && me->GetDistance2d(who) < 20.0f)
{
if (Player* player = who->ToPlayer())
{
if (isAttuned(player))
{
GameObject* door = me->FindNearestGameObject(NAXX_STRATH_GATE, 100.0f);
if (door)
{
door->SetGoState(GO_STATE_ACTIVE);
}
}
}
}
}
};
CreatureAI* GetAI(Creature* creature) const override
{
return new npc_naxx40_area_triggerAI(creature);
}
};
class IndividualPlayerProgression_WorldScript : public WorldScript
{
private:
@@ -653,6 +714,7 @@ void AddSC_mod_individual_progression()
new npc_ipp_aq();
new npc_ipp_tbc();
new npc_ipp_wotlk();
new npc_naxx40_area_trigger();
new gobject_ipp_tbc();
new gobject_ipp_wotlk();
}

View File

@@ -12,6 +12,8 @@
#include "Group.h"
#include "Pet.h"
#include "DBCEnums.h"
#include "QuestDef.h"
#include "GameObject.h"
typedef std::unordered_map<uint32, uint32> questXpMapType;
questXpMapType questXpMap;
@@ -46,7 +48,10 @@ enum BuffSpells
enum ProgressionQuestIDs
{
MIGHT_OF_KALIMDOR = 8742
MIGHT_OF_KALIMDOR = 8742,
NAXX40_ATTUNEMENT_1 = 9121,
NAXX40_ATTUNEMENT_2 = 9122,
NAXX40_ATTUNEMENT_3 = 9123,
};
enum NaxxGraveyards
@@ -108,4 +113,9 @@ enum ProgressionState : uint8
PROGRESSION_WOTLK_TIER_5 = 16 // Ruby Sanctum
};
enum ProgressionObjects
{
NAXX_STRATH_GATE = 176424
};
#endif //AZEROTHCORE_INDIVIDUALPROGRESSION_H