Implemented(Hook): OnPlayerSetPhase

This commit is contained in:
Winfidonarleyan
2019-08-29 20:16:12 +07:00
parent 8f96a398d2
commit 8858dd779c
3 changed files with 11 additions and 1 deletions

View File

@@ -2904,6 +2904,11 @@ void ScriptMgr::OnInstanceSave(InstanceSave* instanceSave)
FOREACH_SCRIPT(MiscScript)->OnInstanceSave(instanceSave);
}
void ScriptMgr::OnPlayerSetPhase(AuraEffect* auraEff, AuraApplication const* aurApp, uint8 mode, bool apply, uint32& newPhase)
{
FOREACH_SCRIPT(MiscScript)->OnPlayerSetPhase(auraEff, aurApp, mode, apply, newPhase);
}
// PetScript
void ScriptMgr::OnInitStatsForLevel(Guardian* guardian, uint8 petlevel)
{

View File

@@ -1415,6 +1415,8 @@ public:
virtual void OnAfterLootTemplateProcess(Loot* /*loot*/, LootTemplate const* /*tab*/, LootStore const& /*store*/, Player* /*lootOwner*/, bool /*personal*/, bool /*noEmptyError*/, uint16 /*lootMode*/) { }
virtual void OnPlayerSetPhase(AuraEffect* /*auraEff*/, AuraApplication const* /*aurApp*/, uint8 /*mode*/, bool /*apply*/, uint32& /*newPhase*/) { }
virtual void OnInstanceSave(InstanceSave* /*instanceSave*/) { }
};
@@ -1884,6 +1886,7 @@ class ScriptMgr
bool CanItemApplyEquipSpell(Player* player, Item* item);
bool CanSendAuctionHello(WorldSession const* session, uint64 guid, Creature* creature);
void ValidateSpellAtCastSpell(Player* player, uint32& oldSpellId, uint32& spellId, uint8& castCount, uint8& castFlags);
void OnPlayerSetPhase(AuraEffect* auraEff, AuraApplication const* aurApp, uint8 mode, bool apply, uint32& newPhase);nt32& oldSpellId, uint32& spellId, uint8& castCount, uint8& castFlags);
void ValidateSpellAtCastSpellResult(Player* player, Unit* mover, Spell* spell, uint32 oldSpellId, uint32 spellId);
void OnAfterLootTemplateProcess(Loot* loot, LootTemplate const* tab, LootStore const& store, Player* lootOwner, bool personal, bool noEmptyError, uint16 lootMode);
void OnInstanceSave(InstanceSave* instanceSave);

View File

@@ -1723,9 +1723,11 @@ void AuraEffect::HandlePhase(AuraApplication const* aurApp, uint8 mode, bool app
newPhase = PHASEMASK_NORMAL;
// do not change phase to GM with all phases enabled
if (/*player->IsGameMaster() [AZTH] &&*/ player->HasFlag(PLAYER_FLAGS, PLAYER_FLAGS_DEVELOPER) /*[/AZTH]*/)
if (player->IsGameMaster())
newPhase = PHASEMASK_ANYWHERE;
sScriptMgr->OnPlayerSetPhase(this, aurApp, mode, apply, newPhase);
player->SetPhaseMask(newPhase, false);
player->GetSession()->SendSetPhaseShift(newPhase);
}