Core/Unit: added new script OnPlayerBeingCharmed

This commit is contained in:
mik1893
2016-09-11 22:53:22 +02:00
committed by Yehonal
parent 6966eba2bb
commit ca510dfd8d
3 changed files with 13 additions and 1 deletions

View File

@@ -16963,6 +16963,9 @@ bool Unit::SetCharmedBy(Unit* charmer, CharmType type, AuraApplication const* au
CombatStop();
DeleteThreatList();
if (GetTypeId() == TYPEID_PLAYER)
sScriptMgr->OnPlayerBeingCharmed(ToPlayer(), charmer, _oldFactionId, charmer->getFaction());
return true;
}

View File

@@ -1318,6 +1318,11 @@ void ScriptMgr::OnCriteriaSave(SQLTransaction& trans, Player* player, uint16 cri
FOREACH_SCRIPT(PlayerScript)->OnCriteriaSave(trans, player, critId, criteriaData);
}
void ScriptMgr::OnPlayerBeingCharmed(Player* player, Unit* charmer, uint32 oldFactionId, uint32 newFactionId)
{
FOREACH_SCRIPT(PlayerScript)->OnBeingCharmed(player, charmer, oldFactionId, newFactionId);
}
// Guild
void ScriptMgr::OnGuildAddMember(Guild* guild, Player* player, uint8& plRank)
{

View File

@@ -782,6 +782,9 @@ class PlayerScript : public ScriptObject
// 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*/) { }
// On player getting charmed
virtual void OnBeingCharmed(Player* /*player*/, Unit* /*charmer*/, uint32 /*oldFactionId*/, uint32 /*newFactionId*/) { }
};
class GuildScript : public ScriptObject
@@ -1055,6 +1058,7 @@ class ScriptMgr
void OnPlayerBindToInstance(Player* player, Difficulty difficulty, uint32 mapid, bool permanent);
void OnPlayerUpdateZone(Player* player, uint32 newZone, uint32 newArea);
void OnPlayerUpdateFaction(Player* player);
void OnPlayerAddToBattleground(Player* player, Battleground* bg);
void OnPlayerRemoveFromBattleground(Player* player, Battleground* bg);
void OnAchievementComplete(Player *player, AchievementEntry const* achievement);
void OnCriteriaProgress(Player *player, AchievementCriteriaEntry const* criteria);
@@ -1062,7 +1066,7 @@ class ScriptMgr
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);
void OnPlayerAddToBattleground(Player* player, Battleground* bg);
void OnPlayerBeingCharmed(Player* player, Unit* charmer, uint32 oldFactionId, uint32 newFactionId);
public: /* GuildScript */