diff options
| -rw-r--r-- | sql/updates/10132_world_command.sql | 3 | ||||
| -rw-r--r-- | sql/updates/10132_world_trinity_string.sql | 5 | ||||
| -rw-r--r-- | src/server/game/Chat/Chat.cpp | 1 | ||||
| -rw-r--r-- | src/server/game/Chat/Chat.h | 1 | ||||
| -rw-r--r-- | src/server/game/Chat/Commands/Debugcmds.cpp | 14 | ||||
| -rw-r--r-- | src/server/game/Entities/Player/Player.cpp | 2 | ||||
| -rw-r--r-- | src/server/game/Entities/Player/Player.h | 1 | ||||
| -rw-r--r-- | src/server/game/Miscellaneous/Language.h | 5 | ||||
| -rw-r--r-- | src/server/game/Server/Protocol/Handlers/MiscHandler.cpp | 3 |
9 files changed, 34 insertions, 1 deletions
diff --git a/sql/updates/10132_world_command.sql b/sql/updates/10132_world_command.sql new file mode 100644 index 00000000000..f4532d65a6e --- /dev/null +++ b/sql/updates/10132_world_command.sql @@ -0,0 +1,3 @@ +DELETE FROM `command` WHERE `name` IN ('debug areatriggers'); +INSERT INTO `command` (`name`,`security`,`help`) VALUES +('debug areatriggers',1,'Syntax: .debug areatriggers\nToggle debug mode for areatriggers. In debug mode GM will be notified if reaching an areatrigger');
\ No newline at end of file diff --git a/sql/updates/10132_world_trinity_string.sql b/sql/updates/10132_world_trinity_string.sql new file mode 100644 index 00000000000..c9a540a26b9 --- /dev/null +++ b/sql/updates/10132_world_trinity_string.sql @@ -0,0 +1,5 @@ +DELETE FROM `trinity_string` WHERE `entry` IN (1202,1203,1204); +INSERT INTO `trinity_string` (`entry`, `content_default`) VALUES +(1202, 'Areatrigger debugging turned on.'), +(1203, 'Areatrigger debugging turned off.'), +(1204, 'You have reached areatrigger %u.'); diff --git a/src/server/game/Chat/Chat.cpp b/src/server/game/Chat/Chat.cpp index 6a3a76bed0b..4e04138de92 100644 --- a/src/server/game/Chat/Chat.cpp +++ b/src/server/game/Chat/Chat.cpp @@ -205,6 +205,7 @@ ChatCommand * ChatHandler::getCommandTable() { "uws", SEC_ADMINISTRATOR, false, &ChatHandler::HandleDebugUpdateWorldStateCommand, "", NULL }, { "update", SEC_ADMINISTRATOR, false, &ChatHandler::HandleDebugUpdateCommand, "", NULL }, { "itemexpire", SEC_ADMINISTRATOR, false, &ChatHandler::HandleDebugItemExpireCommand, "", NULL }, + { "areatriggers", SEC_ADMINISTRATOR, false, &ChatHandler::HandleDebugAreaTriggers, "", NULL }, { NULL, 0, false, NULL, "", NULL } }; diff --git a/src/server/game/Chat/Chat.h b/src/server/game/Chat/Chat.h index 046e47971a1..90e837689e8 100644 --- a/src/server/game/Chat/Chat.h +++ b/src/server/game/Chat/Chat.h @@ -171,6 +171,7 @@ class ChatHandler bool HandleDebugSpellCheckCommand(const char* args); bool HandleDebugUpdateCommand(const char* args); bool HandleDebugUpdateWorldStateCommand(const char* args); + bool HandleDebugAreaTriggers(const char* args); bool HandleDebugSet32Bit(const char* args); bool HandleDebugThreatList(const char * args); diff --git a/src/server/game/Chat/Commands/Debugcmds.cpp b/src/server/game/Chat/Commands/Debugcmds.cpp index a7d53b15c08..7d202a91a67 100644 --- a/src/server/game/Chat/Commands/Debugcmds.cpp +++ b/src/server/game/Chat/Commands/Debugcmds.cpp @@ -271,6 +271,20 @@ bool ChatHandler::HandleDebugUpdateWorldStateCommand(const char* args) return true; } +bool ChatHandler::HandleDebugAreaTriggers(const char* args) +{ + Player* plr = m_session->GetPlayer(); + if (!plr->isDebugAreaTriggers) + { + PSendSysMessage(LANG_DEBUG_AREATRIGGER_ON); + plr->isDebugAreaTriggers = true; + } else { + PSendSysMessage(LANG_DEBUG_AREATRIGGER_OFF); + plr->isDebugAreaTriggers = false; + } + return true; +} + bool ChatHandler::HandleDebugPlayCinematicCommand(const char* args) { // USAGE: .debug play cinematic #cinematicid diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index 37602e2a027..6b554595583 100644 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -615,6 +615,8 @@ Player::Player (WorldSession *session): Unit(), m_achievementMgr(this), m_reputa m_globalCooldowns.clear(); m_ConditionErrorMsgId = 0; + + isDebugAreaTriggers = false; } Player::~Player () diff --git a/src/server/game/Entities/Player/Player.h b/src/server/game/Entities/Player/Player.h index 6b55b07b6f0..16e92127d04 100644 --- a/src/server/game/Entities/Player/Player.h +++ b/src/server/game/Entities/Player/Player.h @@ -2381,6 +2381,7 @@ class Player : public Unit, public GridObject<Player> Spell * m_spellModTakingSpell; float GetAverageItemLevel(); + bool isDebugAreaTriggers; protected: uint32 m_AreaID; diff --git a/src/server/game/Miscellaneous/Language.h b/src/server/game/Miscellaneous/Language.h index f26581f2db2..928ab207114 100644 --- a/src/server/game/Miscellaneous/Language.h +++ b/src/server/game/Miscellaneous/Language.h @@ -802,7 +802,10 @@ enum TrinityStrings // Debug commands LANG_CINEMATIC_NOT_EXIST = 1200, LANG_MOVIE_NOT_EXIST = 1201, - // Room for more debug 1202-1299 not used + LANG_DEBUG_AREATRIGGER_ON = 1202, + LANG_DEBUG_AREATRIGGER_OFF = 1203, + LANG_DEBUG_AREATRIGGER_REACHED = 1204, + // Room for more debug 1205-1299 not used // FREE IDS 1300-9999 diff --git a/src/server/game/Server/Protocol/Handlers/MiscHandler.cpp b/src/server/game/Server/Protocol/Handlers/MiscHandler.cpp index e836b2de86a..8737bf7116e 100644 --- a/src/server/game/Server/Protocol/Handlers/MiscHandler.cpp +++ b/src/server/game/Server/Protocol/Handlers/MiscHandler.cpp @@ -882,6 +882,9 @@ void WorldSession::HandleAreaTriggerOpcode(WorldPacket & recv_data) } } + if (GetPlayer()->isDebugAreaTriggers) + ChatHandler(GetPlayer()).PSendSysMessage(LANG_DEBUG_AREATRIGGER_REACHED, Trigger_ID); + if (sScriptMgr.OnAreaTrigger(GetPlayer(), atEntry)) return; |
