feat(Scripting/Hooks): Implement OnGameEventCheck() hook (#10761)

This commit is contained in:
Skjalf
2022-02-20 17:39:08 -03:00
committed by GitHub
parent 2dc40d1a7d
commit 57b9b296d8
3 changed files with 15 additions and 0 deletions

View File

@@ -1136,6 +1136,9 @@ uint32 GameEventMgr::Update() // return the next e
// must do the activating first, and after that the deactivating
// so first queue it
//LOG_ERROR("sql.sql", "Checking event {}", itr);
sScriptMgr->OnGameEventCheck(itr);
if (CheckOneGameEvent(itr))
{
// if the world event is in NEXTPHASE state, and the time has passed to finish this event, then do so

View File

@@ -33,3 +33,11 @@ void ScriptMgr::OnGameEventStop(uint16 EventID)
script->OnStop(EventID);
});
}
void ScriptMgr::OnGameEventCheck(uint16 EventID)
{
ExecuteScript<GameEventScript>([&](GameEventScript* script)
{
script->OnEventCheck(EventID);
});
}

View File

@@ -1717,6 +1717,9 @@ public:
// Runs on stop event
virtual void OnStop(uint16 /*EventID*/) { }
// Runs on event check
virtual void OnEventCheck(uint16 /*EventID*/) { }
};
class MailScript : public ScriptObject
@@ -2437,6 +2440,7 @@ public: /* SpellSC */
public: /* GameEventScript */
void OnGameEventStart(uint16 EventID);
void OnGameEventStop(uint16 EventID);
void OnGameEventCheck(uint16 EventID);
public: /* MailScript */
void OnBeforeMailDraftSendMailTo(MailDraft* mailDraft, MailReceiver const& receiver, MailSender const& sender, MailCheckMask& checked, uint32& deliver_delay, uint32& custom_expiration, bool& deleteMailItemsFromDB, bool& sendMail);