Improved ScriptMgr with more hooks

This commit is contained in:
Yehonal
2016-08-08 11:46:34 +02:00
parent 9d3f4767c0
commit 2636b90869
5 changed files with 118 additions and 4 deletions

View File

@@ -29,6 +29,7 @@
#include "SharedDefines.h"
#include "World.h"
#include "Weather.h"
#include "AchievementMgr.h"
class AuctionHouseObject;
class AuraScript;
@@ -418,6 +419,12 @@ class ItemScript : public ScriptObject
// Called when the item expires (is destroyed).
virtual bool OnExpire(Player* /*player*/, ItemTemplate const* /*proto*/) { return false; }
// Called when a player selects an option in an item gossip window
virtual void OnGossipSelect(Player* /*player*/, Item* /*item*/, uint32 /*sender*/, uint32 /*action*/) { }
// Called when a player selects an option in an item gossip window
virtual void OnGossipSelectCode(Player* /*player*/, Item* /*item*/, uint32 /*sender*/, uint32 /*action*/, const char* /*code*/) { }
};
class CreatureScript : public ScriptObject, public UpdatableScript<Creature>
@@ -748,6 +755,30 @@ class PlayerScript : public ScriptObject
// Called when a player changes to a new map (after moving to new map)
virtual void OnMapChanged(Player* /*player*/) { }
// Called when team/faction is set on player
virtual void OnUpdateFaction(Player* /*player*/) { }
// Called when a player is removed from battleground
virtual void OnPlayerRemoveFromBattleground(Player* /*player*/, Battleground* /*bg*/) { }
// Called when a player complete an achievement
virtual void OnAchiComplete(Player* /*player*/, AchievementEntry const* /*achievement*/) { }
// Called when a player complete an achievement criteria
virtual void OnCriteriaProgress(Player* /*player*/, AchievementCriteriaEntry const* /*criteria*/) { }
// Called when an Achievement is saved to DB
virtual void OnAchiSave(SQLTransaction& /*trans*/, Player* /*player*/, uint16 /*achId*/, CompletedAchievementData /*achiData*/) { }
// Called when an Criteria is saved to DB
virtual void OnCriteriaSave(SQLTransaction& /*trans*/, Player* /*player*/, uint16 /*achId*/, CriteriaProgress /*criteriaData*/) { }
// Called when a player selects an option in a player gossip window
virtual void OnGossipSelect(Player* /*player*/, uint32 /*menu_id*/, uint32 /*sender*/, uint32 /*action*/) { }
// Called when a player selects an option in a player gossip window
virtual void OnGossipSelectCode(Player* /*player*/, uint32 /*menu_id*/, uint32 /*sender*/, uint32 /*action*/, const char* /*code*/) { }
};
class GuildScript : public ScriptObject
@@ -903,6 +934,9 @@ class ScriptMgr
bool OnQuestAccept(Player* player, Item* item, Quest const* quest);
bool OnItemUse(Player* player, Item* item, SpellCastTargets const& targets);
bool OnItemExpire(Player* player, ItemTemplate const* proto);
void OnGossipSelect(Player* player, Item* item, uint32 sender, uint32 action);
void OnGossipSelectCode(Player* player, Item* item, uint32 sender, uint32 action, const char* code);
public: /* CreatureScript */
@@ -1017,6 +1051,14 @@ class ScriptMgr
void OnPlayerDelete(uint64 guid);
void OnPlayerBindToInstance(Player* player, Difficulty difficulty, uint32 mapid, bool permanent);
void OnPlayerUpdateZone(Player* player, uint32 newZone, uint32 newArea);
void OnPlayerUpdateFaction(Player* player);
void OnPlayerRemoveFromBattleground(Player* player, Battleground* bg);
void OnAchievementComplete(Player *player, AchievementEntry const* achievement);
void OnCriteriaProgress(Player *player, AchievementCriteriaEntry const* criteria);
void OnAchievementSave(SQLTransaction& trans, Player* player, uint16 achiId, CompletedAchievementData achiData);
void OnCriteriaSave(SQLTransaction& trans, Player* player, uint16 critId, CriteriaProgress criteriaData);
void OnGossipSelect(Player* player, uint32 menu_id, uint32 sender, uint32 action);
void OnGossipSelectCode(Player* player, uint32 menu_id, uint32 sender, uint32 action, const char* code);
public: /* GuildScript */