aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/DungeonFinding/LFGScripts.cpp
diff options
context:
space:
mode:
authorVincent_Michael <Vincent_Michael@gmx.de>2013-02-04 22:14:56 +0100
committerVincent_Michael <Vincent_Michael@gmx.de>2013-02-04 22:14:56 +0100
commit12c8cdc26c9e307c4ae475d6021349f8a5603f14 (patch)
tree8033cd6f537cd7ac49e9a556f581d985ba04e8ff /src/server/game/DungeonFinding/LFGScripts.cpp
parent1537de5b39d032b0d560db23fc4330f313dda67d (diff)
parent8f6e9dc85ccda388bc5ced1921cd4e30cb5fe2e0 (diff)
Merge branch 'master' of github.com:TrinityCore/TrinityCore into 4.3.4
Conflicts: sql/base/auth_database.sql sql/base/characters_database.sql src/server/game/Entities/Player/Player.cpp src/server/game/Handlers/LFGHandler.cpp src/server/game/Server/WorldSession.cpp src/server/game/Server/WorldSession.h src/server/game/Server/WorldSocket.cpp src/server/game/World/World.cpp src/server/scripts/Spells/spell_generic.cpp
Diffstat (limited to 'src/server/game/DungeonFinding/LFGScripts.cpp')
-rw-r--r--src/server/game/DungeonFinding/LFGScripts.cpp23
1 files changed, 23 insertions, 0 deletions
diff --git a/src/server/game/DungeonFinding/LFGScripts.cpp b/src/server/game/DungeonFinding/LFGScripts.cpp
index 568b61eef2f..a4716de9524 100644
--- a/src/server/game/DungeonFinding/LFGScripts.cpp
+++ b/src/server/game/DungeonFinding/LFGScripts.cpp
@@ -29,6 +29,9 @@
#include "ObjectAccessor.h"
#include "WorldSession.h"
+namespace lfg
+{
+
LFGPlayerScript::LFGPlayerScript() : PlayerScript("LFGPlayerScript")
{
}
@@ -85,6 +88,24 @@ void LFGPlayerScript::OnBindToInstance(Player* player, Difficulty difficulty, ui
sLFGMgr->InitializeLockedDungeons(player);
}
+void LFGPlayerScript::OnMapChanged(Player* player)
+{
+ Map const* map = player->GetMap();
+
+ if (sLFGMgr->inLfgDungeonMap(player->GetGUID(), map->GetId(), map->GetDifficulty()))
+ {
+ Group* group = player->GetGroup();
+ for (GroupReference* itr = group->GetFirstMember(); itr != NULL; itr = itr->next())
+ if (Player* member = itr->getSource())
+ player->GetSession()->SendNameQueryOpcode(member->GetGUID());
+
+ if (sLFGMgr->selectedRandomLfgDungeon(player->GetGUID()))
+ player->CastSpell(player, LFG_SPELL_LUCK_OF_THE_DRAW, true);
+ }
+ else
+ player->RemoveAurasDueToSpell(LFG_SPELL_LUCK_OF_THE_DRAW);
+}
+
LFGGroupScript::LFGGroupScript() : GroupScript("LFGGroupScript")
{
}
@@ -208,3 +229,5 @@ void LFGGroupScript::OnInviteMember(Group* group, uint64 guid)
if (leader && !gguid)
sLFGMgr->LeaveLfg(leader);
}
+
+} // namespace lfg