aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSpp <none@none>2010-12-23 06:06:21 +0100
committerSpp <none@none>2010-12-23 06:06:21 +0100
commit0c8b07d3e52e7727b8a47138ff8cdedde486b166 (patch)
tree234739ca5951d867222bb39743377ffc55d8d64d
parent1f238d1700b9bb7a094b775df68f92d05f6575f5 (diff)
Core/ScriptMgr: Add OnBindToInstance Player hook
--HG-- branch : trunk
-rwxr-xr-xsrc/server/game/Entities/Player/Player.cpp1
-rwxr-xr-xsrc/server/game/Scripting/ScriptMgr.cpp5
-rwxr-xr-xsrc/server/game/Scripting/ScriptMgr.h4
3 files changed, 10 insertions, 0 deletions
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp
index 7e3831f4b5c..c498c01354b 100755
--- a/src/server/game/Entities/Player/Player.cpp
+++ b/src/server/game/Entities/Player/Player.cpp
@@ -17595,6 +17595,7 @@ InstancePlayerBind* Player::BindToInstance(InstanceSave *save, bool permanent, b
bind.perm = permanent;
if (!load)
sLog.outDebug("Player::BindToInstance: %s(%d) is now bound to map %d, instance %d, difficulty %d", GetName(), GetGUIDLow(), save->GetMapId(), save->GetInstanceId(), save->GetDifficulty());
+ sScriptMgr->OnPlayerBindToInstance(this, save->GetDifficulty(), save->GetMapId(), permanent);
return &bind;
}
else
diff --git a/src/server/game/Scripting/ScriptMgr.cpp b/src/server/game/Scripting/ScriptMgr.cpp
index d1761910e96..3824abdfa72 100755
--- a/src/server/game/Scripting/ScriptMgr.cpp
+++ b/src/server/game/Scripting/ScriptMgr.cpp
@@ -1191,6 +1191,11 @@ void ScriptMgr::OnPlayerDelete(uint64 guid)
FOREACH_SCRIPT(PlayerScript)->OnDelete(guid);
}
+void ScriptMgr::OnPlayerBindToInstance(Player* player, Difficulty difficulty, uint32 mapid, bool permanent)
+{
+ FOREACH_SCRIPT(PlayerScript)->OnBindToInstance(player, difficulty, mapid, permanent);
+}
+
// Guild
void ScriptMgr::OnGuildAddMember(Guild *guild, Player *player, uint8& plRank)
{
diff --git a/src/server/game/Scripting/ScriptMgr.h b/src/server/game/Scripting/ScriptMgr.h
index ad70afbcf70..bb47304a979 100755
--- a/src/server/game/Scripting/ScriptMgr.h
+++ b/src/server/game/Scripting/ScriptMgr.h
@@ -709,6 +709,9 @@ class PlayerScript : public ScriptObject
// Called when a player is created/deleted
virtual void OnCreate(Player* /*player*/) { }
virtual void OnDelete(uint64 /*guid*/) { }
+
+ // Called when a player is binded to an instance
+ virtual void OnBindToInstance(Player* /*player*/, Difficulty /*difficulty*/, uint32 /*mapid*/, bool /*permanent*/) { }
};
class GuildScript : public ScriptObject
@@ -943,6 +946,7 @@ class ScriptMgr
void OnPlayerLogout(Player* player);
void OnPlayerCreate(Player* player);
void OnPlayerDelete(uint64 guid);
+ void OnPlayerBindToInstance(Player* player, Difficulty difficulty, uint32 mapid, bool permanent);
public: /* GuildScript */
void OnGuildAddMember(Guild *guild, Player *player, uint8& plRank);