aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sql/updates/10132_world_command.sql3
-rw-r--r--sql/updates/10132_world_trinity_string.sql5
-rw-r--r--src/server/game/Chat/Chat.cpp1
-rw-r--r--src/server/game/Chat/Chat.h1
-rw-r--r--src/server/game/Chat/Commands/Debugcmds.cpp14
-rw-r--r--src/server/game/Entities/Player/Player.cpp2
-rw-r--r--src/server/game/Entities/Player/Player.h1
-rw-r--r--src/server/game/Miscellaneous/Language.h5
-rw-r--r--src/server/game/Server/Protocol/Handlers/MiscHandler.cpp3
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;