feat(Core/Scripting): Added new hook: OnInstanceIdRemoved. (#14670)

Co-authored-by: Kitzunu <24550914+Kitzunu@users.noreply.github.com>
Co-authored-by: 55Honey <71938210+55Honey@users.noreply.github.com>
This commit is contained in:
UltraNix
2023-02-04 23:56:20 +01:00
committed by GitHub
parent e581cd34ac
commit b1bc1c24e4
3 changed files with 21 additions and 0 deletions

View File

@@ -176,3 +176,16 @@ bool ScriptMgr::OnAllowedForPlayerLootCheck(Player const* player, ObjectGuid sou
return true;
}
/**
* @brief Called when an instance Id is deleted, usually because it expired or no players are bound to it anymore.
*
* @param instanceId The unique id of the instance
*/
void ScriptMgr::OnInstanceIdRemoved(uint32 instanceId)
{
ExecuteScript<GlobalScript>([&](GlobalScript* script)
{
script->OnInstanceIdRemoved(instanceId);
});
}

View File

@@ -1594,6 +1594,9 @@ public:
// Called when checking if a player can see the creature loot
virtual bool OnAllowedForPlayerLootCheck(Player const* /*player*/, ObjectGuid /*source*/) { return false; };
// Called when instance id is removed from database (e.g. instance reset)
virtual void OnInstanceIdRemoved(uint32 /*instanceId*/) { }
};
class BGScript : public ScriptObject
@@ -2427,6 +2430,7 @@ public: /* GlobalScript */
bool OnSpellHealingBonusTakenNegativeModifiers(Unit const* target, Unit const* caster, SpellInfo const* spellInfo, float& val);
void OnLoadSpellCustomAttr(SpellInfo* spell);
bool OnAllowedForPlayerLootCheck(Player const* player, ObjectGuid source);
void OnInstanceIdRemoved(uint32 instanceId);
public: /* Scheduled scripts */
uint32 IncreaseScheduledScriptsCount() { return ++_scheduledScripts; }