aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Scripting/ScriptMgr.h
diff options
context:
space:
mode:
authorsilinoron <none@none>2010-08-11 19:52:58 -0700
committersilinoron <none@none>2010-08-11 19:52:58 -0700
commit0963cb3aeadf01734ce06c88a0bbf535e78342e8 (patch)
tree1d068418dbc62d06832c519d663557ee648321c7 /src/server/game/Scripting/ScriptMgr.h
parentbd1f9ceaf9a4a5865e6f026dff9f51daf2f382b4 (diff)
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
Diffstat (limited to 'src/server/game/Scripting/ScriptMgr.h')
-rw-r--r--src/server/game/Scripting/ScriptMgr.h35
1 files changed, 35 insertions, 0 deletions
diff --git a/src/server/game/Scripting/ScriptMgr.h b/src/server/game/Scripting/ScriptMgr.h
index cf583a68532..9239f2c3ac3 100644
--- a/src/server/game/Scripting/ScriptMgr.h
+++ b/src/server/game/Scripting/ScriptMgr.h
@@ -652,6 +652,33 @@ class AchievementCriteriaScript : public ScriptObject
virtual bool OnCheck(Player* source, Unit* target) = 0;
};
+class PlayerScript : public ScriptObject
+{
+protected:
+ PlayerScript(const char* name);
+
+public:
+ bool IsDatabaseBound() const { return false; }
+
+ // Called when a player kills another player
+ virtual void OnPVPKill(Player *killer, Player *killed);
+
+ // Called when a player kills a creature
+ virtual void OnCreatureKill(Player *killer, Creature *killed);
+
+ // Called when a player is killed by a creature
+ virtual void OnPlayerKilledByCreature(Creature *killer, Player *killed);
+
+ // Called when a player's level changes (right before the level is applied)
+ virtual void OnLevelChanged(Player *player, uint8 newLevel);
+
+ // Called when a player's free talent points change (right before the change is applied)
+ virtual void OnFreeTalentPointsChanged(Player *player, uint32 points);
+
+ // Called when a player's talent points are reset (right before the reset is done)
+ virtual void OnTalentsReset(Player *player, bool no_cost);
+};
+
// Placed here due to ScriptRegistry::AddScript dependency.
#define sScriptMgr (*ACE_Singleton<ScriptMgr, ACE_Null_Mutex>::instance())
@@ -824,6 +851,14 @@ class ScriptMgr
bool OnCriteriaCheck(AchievementCriteriaData const* data, Player* source, Unit* target);
+ public: /* PlayerScript */
+ void OnPVPKill(Player *killer, Player *killed);
+ void OnCreatureKill(Player *killer, Creature *killed);
+ void OnPlayerKilledByCreature(Creature *killer, Player *killed);
+ void OnPlayerLevelChanged(Player *player, uint8 newLevel);
+ void OnPlayerFreeTalentPointsChanged(Player *player, uint32 newPoints);
+ void OnPlayerTalentsReset(Player *player, bool no_cost);
+
public: /* ScriptRegistry */
// This is the global static registry of scripts.