From bd4ec74318ee16b43870da49660727cd2847e2ea Mon Sep 17 00:00:00 2001 From: Matteo Date: Sun, 7 May 2017 13:00:05 +0200 Subject: [PATCH] Created hooks for first login and LFGMgr --- src/game/DungeonFinding/LFGMgr.cpp | 8 +++++++- src/game/Scripting/ScriptMgr.cpp | 15 +++++++++++++++ src/game/Scripting/ScriptMgr.h | 9 +++++++++ 3 files changed, 31 insertions(+), 1 deletion(-) diff --git a/src/game/DungeonFinding/LFGMgr.cpp b/src/game/DungeonFinding/LFGMgr.cpp index 497eeeee7..14b7f1e29 100644 --- a/src/game/DungeonFinding/LFGMgr.cpp +++ b/src/game/DungeonFinding/LFGMgr.cpp @@ -419,6 +419,9 @@ void LFGMgr::InitializeLockedDungeons(Player* player, uint8 level /* = 0 */) lockData = LFG_LOCKSTATUS_MISSING_ITEM; } + + sScriptMgr->OnInitializeLockedDungeons(player, level, lockData); + /* TODO VoA closed if WG is not under team control (LFG_LOCKSTATUS_RAID_LOCKED) lockData = LFG_LOCKSTATUS_TOO_LOW_GEAR_SCORE; lockData = LFG_LOCKSTATUS_TOO_HIGH_GEAR_SCORE; @@ -429,6 +432,9 @@ void LFGMgr::InitializeLockedDungeons(Player* player, uint8 level /* = 0 */) if (lockData) lock[dungeon->Entry()] = lockData; } + + sScriptMgr->OnAfterInitializeLockedDungeons(player); + SetLockedDungeons(guid, lock); } @@ -713,7 +719,7 @@ void LFGMgr::JoinLfg(Player* player, uint8 roles, LfgDungeonSet& dungeons, const */ void LFGMgr::LeaveLfg(uint64 guid) { - ;//sLog->outDebug((LOG_FILTER_LFG, "LFGMgr::Leave: [" UI64FMTD "]", guid); + //sLog->outDebug((LOG_FILTER_LFG, "LFGMgr::LeaveLfg: [" UI64FMTD "]", guid); uint64 gguid = IS_GROUP_GUID(guid) ? guid : GetGroup(guid); LfgState state = GetState(guid); diff --git a/src/game/Scripting/ScriptMgr.cpp b/src/game/Scripting/ScriptMgr.cpp index 356ac8313..bea0e71a0 100644 --- a/src/game/Scripting/ScriptMgr.cpp +++ b/src/game/Scripting/ScriptMgr.cpp @@ -1379,6 +1379,11 @@ void ScriptMgr::OnQuestRewardItem(Player* player, Item* item, uint32 count) FOREACH_SCRIPT(PlayerScript)->OnQuestRewardItem(player, item, count); } +void ScriptMgr::OnFirstLogin(Player* player) +{ + FOREACH_SCRIPT(PlayerScript)->OnFirstLogin(player); +} + // Guild void ScriptMgr::OnGuildAddMember(Guild* guild, Player* player, uint8& plRank) { @@ -1495,6 +1500,16 @@ void ScriptMgr::OnBeforeDropAddItem(Player const* player, Loot& loot, LootStoreI FOREACH_SCRIPT(GlobalScript)->OnBeforeDropAddItem(player, loot, LootStoreItem); } +void ScriptMgr::OnInitializeLockedDungeons(Player* player, uint8& level, uint32& lockData) +{ + FOREACH_SCRIPT(GlobalScript)->OnInitializeLockedDungeons(player, level, lockData); +} + +void ScriptMgr::OnAfterInitializeLockedDungeons(Player* player) +{ + FOREACH_SCRIPT(GlobalScript)->OnAfterInitializeLockedDungeons(player); +} + uint32 ScriptMgr::DealDamage(Unit* AttackerUnit, Unit *pVictim, uint32 damage, DamageEffectType damagetype) { FOR_SCRIPTS_RET(UnitScript, itr, end, damage) diff --git a/src/game/Scripting/ScriptMgr.h b/src/game/Scripting/ScriptMgr.h index 9ef21f775..1f0965f02 100644 --- a/src/game/Scripting/ScriptMgr.h +++ b/src/game/Scripting/ScriptMgr.h @@ -906,6 +906,8 @@ class PlayerScript : public ScriptObject virtual void OnAfterUpdateAttackPowerAndDamage(Player* /*player*/, float& /*level*/, float& /*base_attPower*/, float& /*attPowerMod*/, float& /*attPowerMultiplier*/, bool /*ranged*/) { } virtual void OnBeforeInitTalentForLevel(Player* /*player*/, uint8& /*level*/, uint32& /*talentPointsForLevel*/) { } + + virtual void OnFirstLogin(Player* /*player*/) { } }; class GuildScript : public ScriptObject @@ -991,6 +993,9 @@ class GlobalScript : public ScriptObject virtual void OnMirrorImageDisplayItem(const Item* /*item*/, uint32& /*display*/) { } virtual void OnAfterRefCount(LootStoreItem* /*LootStoreItem*/, uint32& /*maxcount*/) { } virtual void OnBeforeDropAddItem(Player const* /*player*/, Loot& /*loot*/, LootStoreItem* /*LootStoreItem*/) { } + + virtual void OnInitializeLockedDungeons(Player* /*player*/, uint8& /*level*/, uint32& /*lockData*/) { } + virtual void OnAfterInitializeLockedDungeons(Player* /*player*/) { } // On Before arena points distribution virtual void OnBeforeUpdateArenaPoints(ArenaTeam* /*at*/, std::map & /*ap*/) { } @@ -1225,6 +1230,7 @@ class ScriptMgr void OnBeforeUpdateAttackPowerAndDamage(Player* player, float& level, float& val2, bool ranged); void OnAfterUpdateAttackPowerAndDamage(Player* player, float& level, float& base_attPower, float& attPowerMod, float& attPowerMultiplier, bool ranged); void OnBeforeInitTalentForLevel(Player* player, uint8& level, uint32& talentPointsForLevel); + void OnFirstLogin(Player* player); public: /* GuildScript */ @@ -1255,6 +1261,9 @@ class ScriptMgr void OnBeforeUpdateArenaPoints(ArenaTeam* at, std::map &ap); void OnAfterRefCount(LootStoreItem* LootStoreItem, uint32 &maxcount); void OnBeforeDropAddItem(Player const* player, Loot& loot, LootStoreItem* LootStoreItem); + void OnInitializeLockedDungeons(Player* player, uint8& level, uint32& lockData); + void OnAfterInitializeLockedDungeons(Player* player); + public: /* Scheduled scripts */