diff options
| author | Spp <none@none> | 2010-12-23 06:06:24 +0100 |
|---|---|---|
| committer | Spp <none@none> | 2010-12-23 06:06:24 +0100 |
| commit | 067984ba9f63177763e2696399bdef1a0d1b61a5 (patch) | |
| tree | ad93354ce52afc16be46dad6812f053f57c7d556 /src | |
| parent | 0c8b07d3e52e7727b8a47138ff8cdedde486b166 (diff) | |
Core/Dungeon Finder: Reset player Locked Dungeons after change level or bind to heroic instance
Note: Actual DF system is not supposed to select a dungeon you are already saved to (core does not support someone to have multiple saves on the same instance)
--HG--
branch : trunk
Diffstat (limited to 'src')
| -rwxr-xr-x | src/server/game/DungeonFinding/LFGMgr.cpp | 4 | ||||
| -rw-r--r-- | src/server/game/DungeonFinding/LFGScripts.cpp | 11 | ||||
| -rw-r--r-- | src/server/game/DungeonFinding/LFGScripts.h | 1 |
3 files changed, 10 insertions, 6 deletions
diff --git a/src/server/game/DungeonFinding/LFGMgr.cpp b/src/server/game/DungeonFinding/LFGMgr.cpp index b11d8194f90..a439e7576f3 100755 --- a/src/server/game/DungeonFinding/LFGMgr.cpp +++ b/src/server/game/DungeonFinding/LFGMgr.cpp @@ -416,10 +416,6 @@ bool LFGMgr::RemoveFromQueue(const uint64& guid) void LFGMgr::InitializeLockedDungeons(Player* plr) { uint64 guid = plr->GetGUID(); - LfgLockMap cachedLockMap = GetLockedDungeons(guid); - if (!cachedLockMap.empty()) - return; - uint8 level = plr->getLevel(); uint8 expansion = plr->GetSession()->Expansion(); LfgDungeonSet dungeons = GetDungeonsByRandom(0); diff --git a/src/server/game/DungeonFinding/LFGScripts.cpp b/src/server/game/DungeonFinding/LFGScripts.cpp index bedf2e7c43e..49a14ff8896 100644 --- a/src/server/game/DungeonFinding/LFGScripts.cpp +++ b/src/server/game/DungeonFinding/LFGScripts.cpp @@ -141,9 +141,9 @@ void LFGScripts::OnInviteMember(Group* group, uint64 guid) sLFGMgr->Leave(NULL, group); } -void LFGScripts::OnLevelChanged(Player* /*player*/, uint8 /*newLevel*/) +void LFGScripts::OnLevelChanged(Player* player, uint8 /*newLevel*/) { - // TODO - Invalidate LockStatus from cache + sLFGMgr->InitializeLockedDungeons(player); } void LFGScripts::OnLogout(Player* player) @@ -163,3 +163,10 @@ void LFGScripts::OnLogin(Player* player) sLFGMgr->InitializeLockedDungeons(player); // TODO - Restore LfgPlayerData and send proper status to player if it was in a group } + +void LFGScripts::OnBindToInstance(Player* player, Difficulty difficulty, uint32 mapId, bool permanent) +{ + MapEntry const* mapEntry = sMapStore.LookupEntry(mapId); + if (mapEntry->IsDungeon() && difficulty > DUNGEON_DIFFICULTY_NORMAL) + sLFGMgr->InitializeLockedDungeons(player); +}
\ No newline at end of file diff --git a/src/server/game/DungeonFinding/LFGScripts.h b/src/server/game/DungeonFinding/LFGScripts.h index 0c48affc343..d506a6be137 100644 --- a/src/server/game/DungeonFinding/LFGScripts.h +++ b/src/server/game/DungeonFinding/LFGScripts.h @@ -42,4 +42,5 @@ class LFGScripts: public GroupScript, public PlayerScript void OnLevelChanged(Player* player, uint8 newLevel); void OnLogout(Player* player); void OnLogin(Player* player); + void OnBindToInstance(Player* player, Difficulty difficulty, uint32 mapId, bool permanent); }; |
