diff options
author | ModoX <moardox@gmail.com> | 2021-10-26 22:58:49 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-10-26 22:58:49 +0200 |
commit | 6ebd5926fb61a5457d7048504d2f92bc3c9318ab (patch) | |
tree | 3e1dff9f496bf0307203a9544fc78c691af30667 /src/server | |
parent | 94b14e4f6355a7bab8004dcc2ecadadbc52833de (diff) |
Core/Conditions: Added conditions for old areatrigger system (AreaTrigger.db2) (#27174)
Diffstat (limited to 'src/server')
-rw-r--r-- | src/server/game/Conditions/ConditionMgr.cpp | 7 | ||||
-rw-r--r-- | src/server/game/Conditions/ConditionMgr.h | 3 | ||||
-rw-r--r-- | src/server/game/Handlers/MiscHandler.cpp | 3 |
3 files changed, 12 insertions, 1 deletions
diff --git a/src/server/game/Conditions/ConditionMgr.cpp b/src/server/game/Conditions/ConditionMgr.cpp index 9a8abba5482..93ee5c2625c 100644 --- a/src/server/game/Conditions/ConditionMgr.cpp +++ b/src/server/game/Conditions/ConditionMgr.cpp @@ -1924,6 +1924,13 @@ bool ConditionMgr::isSourceTypeValid(Condition* cond) const return false; } break; + case CONDITION_SOURCE_TYPE_AREATRIGGER_CLIENT_TRIGGERED: + if (!sAreaTriggerStore.LookupEntry(cond->SourceEntry)) + { + TC_LOG_ERROR("sql.sql", "%s SourceEntry in `condition` table, does not exists in AreaTrigger.db2, ignoring.", cond->ToString().c_str()); + return false; + } + break; default: TC_LOG_ERROR("sql.sql", "%s Invalid ConditionSourceType in `condition` table, ignoring.", cond->ToString().c_str()); return false; diff --git a/src/server/game/Conditions/ConditionMgr.h b/src/server/game/Conditions/ConditionMgr.h index 3ce9b8564e2..496bd43974a 100644 --- a/src/server/game/Conditions/ConditionMgr.h +++ b/src/server/game/Conditions/ConditionMgr.h @@ -170,7 +170,8 @@ enum ConditionSourceType CONDITION_SOURCE_TYPE_GRAVEYARD = 27, CONDITION_SOURCE_TYPE_AREATRIGGER = 28, CONDITION_SOURCE_TYPE_CONVERSATION_LINE = 29, - CONDITION_SOURCE_TYPE_MAX = 30 // MAX + CONDITION_SOURCE_TYPE_AREATRIGGER_CLIENT_TRIGGERED = 30, + CONDITION_SOURCE_TYPE_MAX = 31 // MAX }; enum RelationType diff --git a/src/server/game/Handlers/MiscHandler.cpp b/src/server/game/Handlers/MiscHandler.cpp index e7431a92e9a..bad9721eb72 100644 --- a/src/server/game/Handlers/MiscHandler.cpp +++ b/src/server/game/Handlers/MiscHandler.cpp @@ -485,6 +485,9 @@ void WorldSession::HandleAreaTriggerOpcode(WorldPackets::AreaTrigger::AreaTrigge if (player->isDebugAreaTriggers) ChatHandler(player->GetSession()).PSendSysMessage(packet.Entered ? LANG_DEBUG_AREATRIGGER_ENTERED : LANG_DEBUG_AREATRIGGER_LEFT, packet.AreaTriggerID); + if (!sConditionMgr->IsObjectMeetingNotGroupedConditions(CONDITION_SOURCE_TYPE_AREATRIGGER_CLIENT_TRIGGERED, atEntry->ID, player)) + return; + if (sScriptMgr->OnAreaTrigger(player, atEntry, packet.Entered)) return; |