aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Scripting
diff options
context:
space:
mode:
authorSpp <none@none>2010-09-15 13:23:07 +0200
committerSpp <none@none>2010-09-15 13:23:07 +0200
commitcc3d4cc8237f4b5eef391eddeb51ae63874bd5a7 (patch)
treea5a8a77103da3df21ee897d7b70e75c5a753d25b /src/server/game/Scripting
parent9d9f18f9d28b496312c13d7e639c244b8fc33f3a (diff)
Core/Scripts: Add OnPlayerLogin, OnPlayerLogout, OnPlayerCreate and OnPlayerDelete
--HG-- branch : trunk
Diffstat (limited to 'src/server/game/Scripting')
-rw-r--r--src/server/game/Scripting/ScriptMgr.cpp20
-rw-r--r--src/server/game/Scripting/ScriptMgr.h16
2 files changed, 34 insertions, 2 deletions
diff --git a/src/server/game/Scripting/ScriptMgr.cpp b/src/server/game/Scripting/ScriptMgr.cpp
index 5dba5b1ed30..fc3061b04e7 100644
--- a/src/server/game/Scripting/ScriptMgr.cpp
+++ b/src/server/game/Scripting/ScriptMgr.cpp
@@ -1174,6 +1174,26 @@ void ScriptMgr::OnPlayerSpellCast(Player *player, Spell *spell, bool skipCheck)
FOREACH_SCRIPT(PlayerScript)->OnSpellCast(player, spell, skipCheck);
}
+void ScriptMgr::OnPlayerLogin(Player *player)
+{
+ FOREACH_SCRIPT(PlayerScript)->OnLogin(player);
+}
+
+void ScriptMgr::OnPlayerLogout(Player *player)
+{
+ FOREACH_SCRIPT(PlayerScript)->OnLogout(player);
+}
+
+void ScriptMgr::OnPlayerCreate(Player *player)
+{
+ FOREACH_SCRIPT(PlayerScript)->OnCreate(player);
+}
+
+void ScriptMgr::OnPlayerDelete(uint64 guid)
+{
+ FOREACH_SCRIPT(PlayerScript)->OnDelete(guid);
+}
+
void ScriptMgr::OnGuildAddMember(Guild *guild, Player *player, uint32& plRank)
{
FOREACH_SCRIPT(GuildScript)->OnAddMember(guild, player, plRank);
diff --git a/src/server/game/Scripting/ScriptMgr.h b/src/server/game/Scripting/ScriptMgr.h
index 6e030638d38..443d7f28653 100644
--- a/src/server/game/Scripting/ScriptMgr.h
+++ b/src/server/game/Scripting/ScriptMgr.h
@@ -706,7 +706,15 @@ class PlayerScript : public ScriptObject
virtual void OnTextEmote(Player* /*player*/, uint32 /*text_emote*/, uint32 /*emoteNum*/, uint64 /*guid*/) { }
// Called in Spell::cast
- virtual void OnSpellCast(Player * /*player*/, Spell * /*spell*/, bool /*skipCheck*/) { }
+ virtual void OnSpellCast(Player* /*player*/, Spell * /*spell*/, bool /*skipCheck*/) { }
+
+ // Called when a player logs in or out
+ virtual void OnLogin(Player* /*player*/) { }
+ virtual void OnLogout(Player* /*player*/) { }
+
+ // Called when a player is created/deleted
+ virtual void OnCreate(Player* /*player*/) { }
+ virtual void OnDelete(uint64 /*guid*/) { }
};
class GuildScript : public ScriptObject
@@ -930,7 +938,11 @@ class ScriptMgr
void OnPlayerChat(Player* player, uint32 type, uint32 lang, std::string msg, Channel* channel);
void OnPlayerEmote(Player* player, uint32 emote);
void OnPlayerTextEmote(Player* player, uint32 text_emote, uint32 emoteNum, uint64 guid);
- void OnPlayerSpellCast(Player *player, Spell *spell, bool skipCheck);
+ void OnPlayerSpellCast(Player* player, Spell *spell, bool skipCheck);
+ void OnPlayerLogin(Player* player);
+ void OnPlayerLogout(Player* player);
+ void OnPlayerCreate(Player* player);
+ void OnPlayerDelete(uint64 guid);
public: /* GuildScript */
void OnGuildAddMember(Guild *guild, Player *player, uint32& plRank);