From ed5130c1c1a19f3ece72a40d7437f3667d75bf3a Mon Sep 17 00:00:00 2001 From: balrok Date: Fri, 9 Oct 2009 14:31:44 +0200 Subject: [PATCH] [8607] more userfriendly eventcommands .event start/stop will now output the started/stopped eventame+id .event activelist got renamed to .event list with optional parameter "all" so .event list - will list all active events and .event list all - will list all events including inactive ones --- sql/mangos.sql | 6 ++++-- sql/updates/8607_01_mangos_string.sql | 6 ++++++ sql/updates/8607_02_mangos_command.sql | 6 ++++++ sql/updates/Makefile.am | 4 ++++ src/game/Chat.cpp | 2 +- src/game/Chat.h | 2 +- src/game/Language.h | 4 +++- src/game/Level2.cpp | 26 +++++++++++++++++++++----- src/shared/revision_nr.h | 2 +- src/shared/revision_sql.h | 2 +- 10 files changed, 48 insertions(+), 12 deletions(-) create mode 100644 sql/updates/8607_01_mangos_string.sql create mode 100644 sql/updates/8607_02_mangos_command.sql diff --git a/sql/mangos.sql b/sql/mangos.sql index 055418eeb..08f7f2bd8 100644 --- a/sql/mangos.sql +++ b/sql/mangos.sql @@ -24,7 +24,7 @@ CREATE TABLE `db_version` ( `version` varchar(120) default NULL, `creature_ai_version` varchar(120) default NULL, `cache_id` int(10) default '0', - `required_8600_01_mangos_command` bit(1) default NULL + `required_8607_02_mangos_command` bit(1) default NULL ) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='Used DB version notes'; -- @@ -392,7 +392,7 @@ INSERT INTO `command` VALUES ('dismount',0,'Syntax: .dismount\r\n\r\nDismount you, if you are mounted.'), ('distance',3,'Syntax: .distance [$name/$link]\r\n\r\nDisplay the distance from your character to the selected creature/player, or player with name $name, or player/creature/gameobject pointed to shift-link with guid.'), ('event',2,'Syntax: .event #event_id\r\nShow details about event with #event_id.'), -('event activelist',2,'Syntax: .event activelist\r\nShow list of currently active events.'), +('event list',2,'Syntax: .event list\r\nShow list of currently active events.\r\nShow list of all events'), ('event start',2,'Syntax: .event start #event_id\r\nStart event #event_id. Set start time for event to current moment (change not saved in DB).'), ('event stop',2,'Syntax: .event stop #event_id\r\nStop event #event_id. Set start time for event to time in past that make current moment is event stop time (change not saved in DB).'), ('explorecheat',3,'Syntax: .explorecheat #flag\r\n\r\nReveal or hide all maps for the selected player. If no player is selected, hide or reveal maps to you.\r\n\r\nUse a #flag of value 1 to reveal, use a #flag value of 0 to hide all maps.'), @@ -3215,6 +3215,8 @@ INSERT INTO `mangos_string` VALUES (1127,'Talents of %s\'s pet reset.',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), (1128,'%d - |cffffffff|Htaxinode:%u|h[%s %s]|h|r (Map:%u X:%f Y:%f Z:%f)',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), (1129,'%d - %s %s (Map:%u X:%f Y:%f Z:%f)',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1130,'event started %u "%s"',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1131,'event stopped %u "%s"',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), (1200,'You try to view cinemitic %u but it doesn\'t exist.',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), (1201,'You try to view movie %u but it doesn\'t exist.',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); /*!40000 ALTER TABLE `mangos_string` ENABLE KEYS */; diff --git a/sql/updates/8607_01_mangos_string.sql b/sql/updates/8607_01_mangos_string.sql new file mode 100644 index 000000000..1120d6d4e --- /dev/null +++ b/sql/updates/8607_01_mangos_string.sql @@ -0,0 +1,6 @@ +ALTER TABLE db_version CHANGE COLUMN required_8600_01_mangos_command required_8607_01_mangos_string bit; + +DELETE FROM mangos_string WHERE entry IN(1130, 1131); +INSERT INTO mangos_string VALUES +(1130,'event started %u "%s"',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1131,'event stopped %u "%s"',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); diff --git a/sql/updates/8607_02_mangos_command.sql b/sql/updates/8607_02_mangos_command.sql new file mode 100644 index 000000000..f04ddf1a5 --- /dev/null +++ b/sql/updates/8607_02_mangos_command.sql @@ -0,0 +1,6 @@ +ALTER TABLE db_version CHANGE COLUMN required_8607_01_mangos_string required_8607_02_mangos_command bit; + +DELETE FROM command where name='event activelist'; + +INSERT INTO `command` VALUES +('event list',2,'Syntax: .event list\r\nShow list of currently active events.\r\nShow list of all events'); diff --git a/sql/updates/Makefile.am b/sql/updates/Makefile.am index 5a18403b4..6f25972b9 100644 --- a/sql/updates/Makefile.am +++ b/sql/updates/Makefile.am @@ -130,6 +130,8 @@ pkgdata_DATA = \ 8589_11_characters_characters.sql \ 8596_01_characters_bugreport.sql \ 8600_01_mangos_command.sql \ + 8607_01_mangos_string.sql \ + 8607_02_mangos_command.sql \ README ## Additional files to include when running 'make dist' @@ -240,4 +242,6 @@ EXTRA_DIST = \ 8589_11_characters_characters.sql \ 8596_01_characters_bugreport.sql \ 8600_01_mangos_command.sql \ + 8607_01_mangos_string.sql \ + 8607_02_mangos_command.sql \ README diff --git a/src/game/Chat.cpp b/src/game/Chat.cpp index 5cb96bdec..a66c65ca4 100644 --- a/src/game/Chat.cpp +++ b/src/game/Chat.cpp @@ -173,7 +173,7 @@ ChatCommand * ChatHandler::getCommandTable() static ChatCommand eventCommandTable[] = { - { "activelist", SEC_GAMEMASTER, true, &ChatHandler::HandleEventActiveListCommand, "", NULL }, + { "list", SEC_GAMEMASTER, true, &ChatHandler::HandleEventListCommand, "", NULL }, { "start", SEC_GAMEMASTER, true, &ChatHandler::HandleEventStartCommand, "", NULL }, { "stop", SEC_GAMEMASTER, true, &ChatHandler::HandleEventStopCommand, "", NULL }, { "", SEC_GAMEMASTER, true, &ChatHandler::HandleEventInfoCommand, "", NULL }, diff --git a/src/game/Chat.h b/src/game/Chat.h index 45a029346..6e7ee3e89 100644 --- a/src/game/Chat.h +++ b/src/game/Chat.h @@ -160,7 +160,7 @@ class ChatHandler bool HandleDebugSendSetPhaseShiftCommand(const char * args); bool HandleDebugSendSpellFailCommand(const char* args); - bool HandleEventActiveListCommand(const char* args); + bool HandleEventListCommand(const char* args); bool HandleEventStartCommand(const char* args); bool HandleEventStopCommand(const char* args); bool HandleEventInfoCommand(const char* args); diff --git a/src/game/Language.h b/src/game/Language.h index ae3c251d2..fbf33d2a5 100644 --- a/src/game/Language.h +++ b/src/game/Language.h @@ -765,7 +765,9 @@ enum MangosStrings LANG_RESET_PET_TALENTS_ONLINE = 1127, LANG_TAXINODE_ENTRY_LIST_CHAT = 1128, LANG_TAXINODE_ENTRY_LIST_CONSOLE = 1129, - // Room for more level 3 1130-1199 not used + LANG_EVENT_STARTED = 1130, + LANG_EVENT_STOPPED = 1131, + // Room for more level 3 1132-1199 not used // Debug commands LANG_CINEMATIC_NOT_EXIST = 1200, diff --git a/src/game/Level2.cpp b/src/game/Level2.cpp index 96b05fc93..fcff303e7 100644 --- a/src/game/Level2.cpp +++ b/src/game/Level2.cpp @@ -3717,24 +3717,38 @@ bool ChatHandler::HandleLookupEventCommand(const char* args) return true; } -bool ChatHandler::HandleEventActiveListCommand(const char* /*args*/) +bool ChatHandler::HandleEventListCommand(const char* args) { uint32 counter = 0; + bool all = false; + std::string arg = args; + if (arg == "all") + all = true; GameEventMgr::GameEventDataMap const& events = gameeventmgr.GetEventMap(); GameEventMgr::ActiveEvents const& activeEvents = gameeventmgr.GetActiveEventList(); char const* active = GetMangosString(LANG_ACTIVE); + char const* inactive = GetMangosString(LANG_FACTION_INACTIVE); + char const* state = ""; - for(GameEventMgr::ActiveEvents::const_iterator itr = activeEvents.begin(); itr != activeEvents.end(); ++itr ) + for (uint32 event_id = 0; event_id < events.size(); ++event_id) { - uint32 event_id = *itr; + if (activeEvents.find(event_id) == activeEvents.end()) + { + if (!all) + continue; + state = inactive; + } + else + state = active; + GameEventData const& eventData = events[event_id]; if(m_session) - PSendSysMessage(LANG_EVENT_ENTRY_LIST_CHAT,event_id,event_id,eventData.description.c_str(),active ); + PSendSysMessage(LANG_EVENT_ENTRY_LIST_CHAT, event_id, event_id, eventData.description.c_str(), state); else - PSendSysMessage(LANG_EVENT_ENTRY_LIST_CONSOLE,event_id,eventData.description.c_str(),active ); + PSendSysMessage(LANG_EVENT_ENTRY_LIST_CONSOLE, event_id, eventData.description.c_str(), state); ++counter; } @@ -3831,6 +3845,7 @@ bool ChatHandler::HandleEventStartCommand(const char* args) return false; } + PSendSysMessage(LANG_EVENT_STARTED, event_id, eventData.description.c_str()); gameeventmgr.StartEvent(event_id,true); return true; } @@ -3873,6 +3888,7 @@ bool ChatHandler::HandleEventStopCommand(const char* args) return false; } + PSendSysMessage(LANG_EVENT_STOPPED, event_id, eventData.description.c_str()); gameeventmgr.StopEvent(event_id,true); return true; } diff --git a/src/shared/revision_nr.h b/src/shared/revision_nr.h index 58e972144..619411466 100644 --- a/src/shared/revision_nr.h +++ b/src/shared/revision_nr.h @@ -1,4 +1,4 @@ #ifndef __REVISION_NR_H__ #define __REVISION_NR_H__ - #define REVISION_NR "8606" + #define REVISION_NR "8607" #endif // __REVISION_NR_H__ diff --git a/src/shared/revision_sql.h b/src/shared/revision_sql.h index 93bae364c..d2277b7bb 100644 --- a/src/shared/revision_sql.h +++ b/src/shared/revision_sql.h @@ -1,6 +1,6 @@ #ifndef __REVISION_SQL_H__ #define __REVISION_SQL_H__ #define REVISION_DB_CHARACTERS "required_8596_01_characters_bugreport" - #define REVISION_DB_MANGOS "required_8600_01_mangos_command" + #define REVISION_DB_MANGOS "required_8607_02_mangos_command" #define REVISION_DB_REALMD "required_8332_01_realmd_realmcharacters" #endif // __REVISION_SQL_H__