feat(Core/Hooks): Added new BG hooks (#2008)
This commit is contained in:
@@ -1150,6 +1150,8 @@ void Battleground::RemovePlayerAtLeave(Player* player)
|
|||||||
|
|
||||||
// Xinef: remove all criterias on bg leave
|
// Xinef: remove all criterias on bg leave
|
||||||
player->ResetAchievementCriteria(ACHIEVEMENT_CRITERIA_CONDITION_BG_MAP, GetMapId(), true);
|
player->ResetAchievementCriteria(ACHIEVEMENT_CRITERIA_CONDITION_BG_MAP, GetMapId(), true);
|
||||||
|
|
||||||
|
sScriptMgr->OnBattlegroundRemovePlayerAtLeave(this, player);
|
||||||
}
|
}
|
||||||
|
|
||||||
// this method is called when creating bg
|
// this method is called when creating bg
|
||||||
@@ -1197,12 +1199,13 @@ void Battleground::AddPlayer(Player* player)
|
|||||||
if (player->HasFlag(PLAYER_FLAGS, PLAYER_FLAGS_AFK))
|
if (player->HasFlag(PLAYER_FLAGS, PLAYER_FLAGS_AFK))
|
||||||
player->ToggleAFK();
|
player->ToggleAFK();
|
||||||
|
|
||||||
|
sScriptMgr->OnBattlegroundBeforeAddPlayer(this, player);
|
||||||
|
|
||||||
// score struct must be created in inherited class
|
// score struct must be created in inherited class
|
||||||
|
|
||||||
uint64 guid = player->GetGUID();
|
uint64 guid = player->GetGUID();
|
||||||
TeamId teamId = player->GetBgTeamId();
|
TeamId teamId = player->GetBgTeamId();
|
||||||
|
|
||||||
|
|
||||||
// Add to list/maps
|
// Add to list/maps
|
||||||
m_Players[guid] = player;
|
m_Players[guid] = player;
|
||||||
|
|
||||||
|
|||||||
@@ -2055,6 +2055,16 @@ void ScriptMgr::OnBattlegroundAddPlayer(Battleground* bg, Player* player)
|
|||||||
FOREACH_SCRIPT(BGScript)->OnBattlegroundAddPlayer(bg, player);
|
FOREACH_SCRIPT(BGScript)->OnBattlegroundAddPlayer(bg, player);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ScriptMgr::OnBattlegroundBeforeAddPlayer(Battleground* bg, Player* player)
|
||||||
|
{
|
||||||
|
FOREACH_SCRIPT(BGScript)->OnBattlegroundBeforeAddPlayer(bg, player);
|
||||||
|
}
|
||||||
|
|
||||||
|
void ScriptMgr::OnBattlegroundRemovePlayerAtLeave(Battleground* bg, Player* player)
|
||||||
|
{
|
||||||
|
FOREACH_SCRIPT(BGScript)->OnBattlegroundRemovePlayerAtLeave(bg, player);
|
||||||
|
}
|
||||||
|
|
||||||
// SpellSC
|
// SpellSC
|
||||||
void ScriptMgr::OnCalcMaxDuration(Aura const* aura, int32& maxDuration)
|
void ScriptMgr::OnCalcMaxDuration(Aura const* aura, int32& maxDuration)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1110,6 +1110,12 @@ public:
|
|||||||
|
|
||||||
// Add Player in Battlegroud
|
// Add Player in Battlegroud
|
||||||
virtual void OnBattlegroundAddPlayer(Battleground* /*bg*/, Player* /*player*/) { }
|
virtual void OnBattlegroundAddPlayer(Battleground* /*bg*/, Player* /*player*/) { }
|
||||||
|
|
||||||
|
// Before added player in Battlegroud
|
||||||
|
virtual void OnBattlegroundBeforeAddPlayer(Battleground* /*bg*/, Player* /*player*/) { }
|
||||||
|
|
||||||
|
// Remove player at leave BG
|
||||||
|
virtual void OnBattlegroundRemovePlayerAtLeave(Battleground* /*bg*/, Player* /*player*/) { }
|
||||||
};
|
};
|
||||||
|
|
||||||
class SpellSC : public ScriptObject
|
class SpellSC : public ScriptObject
|
||||||
@@ -1480,6 +1486,8 @@ class ScriptMgr
|
|||||||
void OnBattlegroundEndReward(Battleground* bg, Player* player, TeamId winnerTeamId);
|
void OnBattlegroundEndReward(Battleground* bg, Player* player, TeamId winnerTeamId);
|
||||||
void OnBattlegroundUpdate(Battleground* bg, uint32 diff);
|
void OnBattlegroundUpdate(Battleground* bg, uint32 diff);
|
||||||
void OnBattlegroundAddPlayer(Battleground* bg, Player* player);
|
void OnBattlegroundAddPlayer(Battleground* bg, Player* player);
|
||||||
|
void OnBattlegroundBeforeAddPlayer(Battleground* bg, Player* player);
|
||||||
|
void OnBattlegroundRemovePlayerAtLeave(Battleground* bg, Player* player);
|
||||||
|
|
||||||
public: /* SpellSC */
|
public: /* SpellSC */
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user