Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Core/Misc: The Purification of Quel'Delar #29806

Open
Aokromes opened this issue Mar 14, 2024 · 2 comments
Open

Core/Misc: The Purification of Quel'Delar #29806

Aokromes opened this issue Mar 14, 2024 · 2 comments

Comments

@Aokromes
Copy link
Member

Description

The Purification of Quel'Delar quest needs to allow you to enter sunwell plateau without raid mode but atm this is impossible.

Expected behaviour

you can enter sunwell to complete The Purification of Quel'Delar without raid

Steps to reproduce the problem

The Purification of Quel'Delar quest,
speak with guard
notice you aren't teleported

Branch

3.3.5

TC rev. hash/commit

fd0b00c

Operating system

n/r

Custom changes

n/r

@dr-j
Copy link
Contributor

dr-j commented Apr 7, 2024

I did not write this think is only part of quest I did not write on my server no idea if is compatible with current tc as server is on older version of tc

diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp
index 94648f172ef9570f48ea5ba6ede011a887616bc3..b2c727851e8564eb2507449728a0ff5980e53e91 100644
--- a/src/server/game/Entities/Player/Player.cpp
+++ b/src/server/game/Entities/Player/Player.cpp
@@ -22349,6 +22349,13 @@ void Player::UpdateHomebindTime(uint32 time)
     }
     else
     {
+        // Special case for Barethil Hilt quest chain (SWP)
+        if (GetMapId() == 580 && ((hasQuest(24564) && GetQuestStatus(24564) != QUEST_STATUS_REWARDED) || (hasQuest(24553) && GetQuestStatus(24553) != QUEST_STATUS_REWARDED)))
+        {
+            m_HomebindTimer = 0;
+            return;
+        }
+
         // instance is invalid, start homebind timer
         m_HomebindTimer = 60000;
         // send message to player
diff --git a/src/server/game/Maps/MapManager.cpp b/src/server/game/Maps/MapManager.cpp
index 7c4cb548679f02e159917ddce161cbb3939d0118..79c44f7049db69a748e9af492410395d3aff131c 100644
--- a/src/server/game/Maps/MapManager.cpp
+++ b/src/server/game/Maps/MapManager.cpp
@@ -149,6 +149,10 @@ Map::EnterState MapManager::PlayerCannotEnter(uint32 mapid, Player* player, bool
     if (player->IsGameMaster())
         return Map::CAN_ENTER;
 
+    // Special case for Barethil Hilt quest chain (SWP)
+    if (mapid == 580 && !(player->GetGroup() && player->GetGroup()->isRaidGroup()) && ((player->hasQuest(24564) && player->GetQuestStatus(24564) != QUEST_STATUS_REWARDED) || (player->hasQuest(24553) && player->GetQuestStatus(24553) != QUEST_STATUS_REWARDED)))
+        return Map::CAN_ENTER;
+
     //Other requirements
     if (!player->Satisfy(sObjectMgr->GetAccessRequirement(mapid, targetDifficulty), mapid, true))
         return Map::CANNOT_ENTER_UNSPECIFIED_REASON;

@CraftedRO
Copy link
Contributor

Well dr-J script build but doesn't seem to work on current tc and I remember I have a feeling that this shoud be much more complex so it shoud only allow the players to be teleported by gossip guard and not by entering the instance portal too as I saw on many servers.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants