From 15ad9356a4e5a1cce2b195d933cc3d025f6a74a1 Mon Sep 17 00:00:00 2001 From: Grimfeather <88028633+Grimfeather@users.noreply.github.com> Date: Thu, 5 Jun 2025 10:57:43 +0200 Subject: [PATCH] Update custom_gameobjects_40.cpp trying to find a solution --- src/naxx40Scripts/custom_gameobjects_40.cpp | 28 +++++++++++++++------ 1 file changed, 21 insertions(+), 7 deletions(-) diff --git a/src/naxx40Scripts/custom_gameobjects_40.cpp b/src/naxx40Scripts/custom_gameobjects_40.cpp index 88b8e8e..51b9ca5 100644 --- a/src/naxx40Scripts/custom_gameobjects_40.cpp +++ b/src/naxx40Scripts/custom_gameobjects_40.cpp @@ -12,13 +12,16 @@ class gobject_naxx40_tele : public GameObjectScript private: static bool isAttuned(Player* player) { - if (player->GetQuestStatus(NAXX40_ATTUNEMENT_1) == QUEST_STATUS_REWARDED) + if ((player->GetQuestStatus(NAXX40_ATTUNEMENT_1) == QUEST_STATUS_REWARDED) || + (player->GetQuestStatus(NAXX40_ATTUNEMENT_2) == QUEST_STATUS_REWARDED) || + (player->GetQuestStatus(NAXX40_ATTUNEMENT_3) == 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; + } + else + { + return false; + } } public: @@ -35,9 +38,20 @@ public: return new gobject_naxx40_teleAI(object); } + bool isExcludedFromProgression(Player* player) + { + if(!sIndividualProgression->excludeAccounts) { + return false; + } + std::string accountName; + bool accountNameFound = AccountMgr::GetName(player->GetSession()->GetAccountId(), accountName); + std::regex excludedAccountsRegex (sIndividualProgression->excludedAccountsRegex); + return (accountNameFound && std::regex_match(accountName, excludedAccountsRegex)); + } + bool OnGossipHello(Player* player, GameObject* /*go*/) override { - if ((!sIndividualProgression->requireNaxxStrath || player->GetQuestStatus(NAXX40_ENTRANCE_FLAG) == QUEST_STATUS_REWARDED) && isAttuned(player)) + if (((!sIndividualProgression->requireNaxxStrath || player->GetQuestStatus(NAXX40_ENTRANCE_FLAG) == QUEST_STATUS_REWARDED) && isAttuned(player)) || (isExcludedFromProgression(player) && (player->GetLevel() == 60))) { player->SetRaidDifficulty(RAID_DIFFICULTY_10MAN_HEROIC); player->TeleportTo(533, 3005.51f, -3434.64f, 304.195f, 6.2831f);