From 0963cb3aeadf01734ce06c88a0bbf535e78342e8 Mon Sep 17 00:00:00 2001 From: silinoron Date: Wed, 11 Aug 2010 19:52:58 -0700 Subject: Implement a PlayerScript class with a handful of new hooks: * OnPVPKill * OnCreatureKill * OnPlayerKilledByCreature * OnPlayerLevelChanged * OnPlayerFreeTalentPointsChanged * OnPlayerTalentsReset * More hooks may be added in the future --HG-- branch : trunk --- src/server/game/Scripting/ScriptMgr.cpp | 36 +++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) (limited to 'src/server/game/Scripting/ScriptMgr.cpp') diff --git a/src/server/game/Scripting/ScriptMgr.cpp b/src/server/game/Scripting/ScriptMgr.cpp index 4c64f8251da..1eb54b83b50 100644 --- a/src/server/game/Scripting/ScriptMgr.cpp +++ b/src/server/game/Scripting/ScriptMgr.cpp @@ -1067,6 +1067,36 @@ bool ScriptMgr::OnCriteriaCheck(AchievementCriteriaData const* data, Player* sou return tmpscript->OnCheck(source, target); } +void ScriptMgr::OnPVPKill(Player *killer, Player *killed) +{ + FOREACH_SCRIPT(PlayerScript)->OnPVPKill(killer, killed); +} + +void ScriptMgr::OnCreatureKill(Player *killer, Creature *killed) +{ + FOREACH_SCRIPT(PlayerScript)->OnCreatureKill(killer, killed); +} + +void ScriptMgr::OnPlayerKilledByCreature(Creature *killer, Player *killed) +{ + FOREACH_SCRIPT(PlayerScript)->OnPlayerKilledByCreature(killer, killed); +} + +void ScriptMgr::OnPlayerLevelChanged(Player *player, uint8 newLevel) +{ + FOREACH_SCRIPT(PlayerScript)->OnLevelChanged(player, newLevel); +} + +void ScriptMgr::OnPlayerFreeTalentPointsChanged(Player *player, uint32 points) +{ + FOREACH_SCRIPT(PlayerScript)->OnFreeTalentPointsChanged(player, points); +} + +void ScriptMgr::OnPlayerTalentsReset(Player *player, bool no_cost) +{ + FOREACH_SCRIPT(PlayerScript)->OnTalentsReset(player, no_cost); +} + SpellHandlerScript::SpellHandlerScript(const char* name) : ScriptObject(name) { @@ -1208,6 +1238,12 @@ AchievementCriteriaScript::AchievementCriteriaScript(const char* name) ScriptMgr::ScriptRegistry::AddScript(this); } +PlayerScript::PlayerScript(const char* name) + : ScriptObject(name) +{ + ScriptMgr::ScriptRegistry::AddScript(this); +} + // Instantiate static members of ScriptMgr::ScriptRegistry. template std::map ScriptMgr::ScriptRegistry::ScriptPointerList; template uint32 ScriptMgr::ScriptRegistry::_scriptIdCounter = 0; -- cgit v1.2.3