aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/DungeonFinding/LFGScripts.cpp
diff options
context:
space:
mode:
authorSpp <none@none>2010-12-09 19:13:11 +0100
committerSpp <none@none>2010-12-09 19:13:11 +0100
commitbe73926ab36b9776dab1fdfb8ebcb3bbe99b8735 (patch)
treeb0b851cc0b22c8e24e44189b3d70946370e8141c /src/server/game/DungeonFinding/LFGScripts.cpp
parent4914ca575bd0a14918947baf131df739339fce38 (diff)
Core/Dungeon Finder: Fix incorrect Lfg state after multiple actions.
- Clear state after get out DF system - Fix player not getting reward after finish a random dungeon - Remove OnDisband Hook, it's already handled by OnRemoveMember --HG-- branch : trunk
Diffstat (limited to 'src/server/game/DungeonFinding/LFGScripts.cpp')
-rw-r--r--src/server/game/DungeonFinding/LFGScripts.cpp19
1 files changed, 1 insertions, 18 deletions
diff --git a/src/server/game/DungeonFinding/LFGScripts.cpp b/src/server/game/DungeonFinding/LFGScripts.cpp
index 465cf7047a3..d9f81435e93 100644
--- a/src/server/game/DungeonFinding/LFGScripts.cpp
+++ b/src/server/game/DungeonFinding/LFGScripts.cpp
@@ -89,6 +89,7 @@ void LFGScripts::OnRemoveMember(Group* group, uint64 guid, RemoveMethod& method,
// Update internal kick cooldown of kicked
*/
+ plr->ClearLfgState();
plr->GetSession()->SendLfgUpdateParty(LFG_UPDATETYPE_LEADER);
if (plr->GetMap()->IsDungeon()) // Teleport player out the dungeon
sLFGMgr.TeleportPlayer(plr, true);
@@ -100,24 +101,6 @@ void LFGScripts::OnRemoveMember(Group* group, uint64 guid, RemoveMethod& method,
void LFGScripts::OnDisband(Group* group)
{
- uint64 gguid = group->GetGUID();
- if (!gguid)
- return;
-
- sLog.outDebug("LFGScripts::OnDisband [" UI64FMTD "]", gguid);
- if (group->GetLfgState() == LFG_STATE_QUEUED)
- sLFGMgr.Leave(NULL, group);
-
- for (GroupReference *itr = group->GetFirstMember(); itr != NULL; itr = itr->next())
- {
- if (Player *plrg = itr->getSource())
- {
- plrg->GetSession()->SendLfgUpdateParty(LFG_UPDATETYPE_GROUP_DISBAND);
- plrg->GetSession()->SendLfgUpdateParty(LFG_UPDATETYPE_LEADER);
- if (plrg->GetMap()->IsDungeon()) // Teleport player out the dungeon
- sLFGMgr.TeleportPlayer(plrg, true);
- }
- }
}
void LFGScripts::OnChangeLeader(Group* group, uint64 newLeaderGuid, uint64 oldLeaderGuid)