diff --git a/sql/mangos.sql b/sql/mangos.sql index ff417e3d3..5a660e6eb 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_10119_01_mangos_creature_model_info` bit(1) default NULL + `required_10125_01_mangos_mangos_string` bit(1) default NULL ) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='Used DB version notes'; -- @@ -3396,9 +3396,9 @@ INSERT INTO `mangos_string` VALUES (512,'%d - |cffffffff|Hitem:%d:0:0:0:0:0:0:0:0|h[%s]|h|r ',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), (513,'%d - |cffffffff|Hquest:%d:%d|h[%s]|h|r %s',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), (514,'%d - |cffffffff|Hcreature_entry:%d|h[%s]|h|r ',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), -(515,'%d - |cffffffff|Hcreature:%d|h[%s X:%f Y:%f Z:%f MapId:%d]|h|r ',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(515,'%d%s - |cffffffff|Hcreature:%d|h[%s X:%f Y:%f Z:%f MapId:%d]|h|r ',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), (516,'%d - |cffffffff|Hgameobject_entry:%d|h[%s]|h|r ',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), -(517,'%d, Entry %d - |cffffffff|Hgameobject:%d|h[%s X:%f Y:%f Z:%f MapId:%d]|h|r ',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(517,'%d%s, Entry %d - |cffffffff|Hgameobject:%d|h[%s X:%f Y:%f Z:%f MapId:%d]|h|r',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), (518,'%d - |cffffffff|Hitemset:%d|h[%s %s]|h|r ',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), (519,'|cffffffff|Htele:%s|h[%s]|h|r ',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), (520,'%d - |cffffffff|Hspell:%d|h[%s]|h|r ',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), @@ -3668,8 +3668,8 @@ INSERT INTO `mangos_string` VALUES (1107,'%d - %s',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), (1108,'%d - %s %s',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), (1109,'%d - %s %s %s %s',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), -(1110,'%d - %s X:%f Y:%f Z:%f MapId:%d',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), -(1111,'%d - %s X:%f Y:%f Z:%f MapId:%d',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1110,'%d%s - %s X:%f Y:%f Z:%f MapId:%d',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1111,'%d%s - %s X:%f Y:%f Z:%f MapId:%d',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), (1112,'Failed to open file: %s',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), (1113,'Account %s (%u) have max amount allowed characters (client limit)',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), (1114,'Dump file have broken data!',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), @@ -3695,7 +3695,7 @@ INSERT INTO `mangos_string` VALUES (1134,' Follow ',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), (1135,'List known talents:',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), (1136,' (Found talents: %u used talent points: %u)',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), -(1137,'%d - |cffffffff|Hgameobject:%d|h[%s X:%f Y:%f Z:%f MapId:%d]|h|r ',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1137,'%d%s - |cffffffff|Hgameobject:%d|h[%s X:%f Y:%f Z:%f MapId:%d]|h|r ',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), (1138,'=================================================================================',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), (1139,'| GUID | Name | Race | Class | Level |',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), (1140,'| %10u | %20s | %15s | %15s | %5u |',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), @@ -3707,6 +3707,9 @@ INSERT INTO `mangos_string` VALUES (1146,'Part of pool %u, top pool %u',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), (1147,'The (top)pool %u is spawned by event %u (%s)',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), (1148,'The (top)pool %u is despawned by event %u (%s)',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1149,' (Pool %u)',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1150,' (Event %i)',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1151,' (Pool %u Event %i)',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/10125_01_mangos_mangos_string.sql b/sql/updates/10125_01_mangos_mangos_string.sql new file mode 100644 index 000000000..1cdd776d9 --- /dev/null +++ b/sql/updates/10125_01_mangos_mangos_string.sql @@ -0,0 +1,17 @@ +ALTER TABLE db_version CHANGE COLUMN required_10119_01_mangos_creature_model_info required_10125_01_mangos_mangos_string bit; + +DELETE FROM mangos_string WHERE entry BETWEEN 1149 AND 1151; + +INSERT INTO mangos_string VALUES +(1149,' (Pool %u)',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1150,' (Event %i)',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1151,' (Pool %u Event %i)',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); + +DELETE FROM mangos_string WHERE entry in (515, 517, 1110, 1111, 1137); + +INSERT INTO mangos_string VALUES +(515,'%d%s - |cffffffff|Hcreature:%d|h[%s X:%f Y:%f Z:%f MapId:%d]|h|r ',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), -- LANG_CREATURE_LIST_CHAT (.list creature) +(517,'%d%s, Entry %d - |cffffffff|Hgameobject:%d|h[%s X:%f Y:%f Z:%f MapId:%d]|h|r',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), -- LANG_GO_MIXED_LIST_CHAT (.gobject near) +(1110,'%d%s - %s X:%f Y:%f Z:%f MapId:%d',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), -- LANG_CREATURE_LIST_CONSOLE +(1111,'%d%s - %s X:%f Y:%f Z:%f MapId:%d',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), -- LANG_GO_LIST_CONSOLE +(1137,'%d%s - |cffffffff|Hgameobject:%d|h[%s X:%f Y:%f Z:%f MapId:%d]|h|r ',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -- LANG_GO_LIST_CHAT (.list object) \ No newline at end of file diff --git a/sql/updates/Makefile.am b/sql/updates/Makefile.am index 0be78c964..af5619e32 100644 --- a/sql/updates/Makefile.am +++ b/sql/updates/Makefile.am @@ -96,6 +96,7 @@ pkgdata_DATA = \ 10107_01_mangos_mangos_string.sql \ 10109_01_mangos_creature_model_info.sql \ 10119_01_mangos_creature_model_info.sql \ + 10125_01_mangos_mangos_string.sql \ README ## Additional files to include when running 'make dist' @@ -172,4 +173,5 @@ EXTRA_DIST = \ 10107_01_mangos_mangos_string.sql \ 10109_01_mangos_creature_model_info.sql \ 10119_01_mangos_creature_model_info.sql \ + 10125_01_mangos_mangos_string.sql \ README diff --git a/src/game/Chat.cpp b/src/game/Chat.cpp index 034d8e650..8dc91481c 100644 --- a/src/game/Chat.cpp +++ b/src/game/Chat.cpp @@ -2561,6 +2561,43 @@ void ChatHandler::ShowNpcOrGoSpawnInformation(uint32 guid) } } +// Prepare ShortString for a NPC or GO (by guid) with pool or game event IDs +template +std::string ChatHandler::PrepareStringNpcOrGoSpawnInformation(uint32 guid) +{ + std::string str = ""; + if (uint16 pool_id = sPoolMgr.IsPartOfAPool(guid)) + { + uint16 top_pool_id = sPoolMgr.IsPartOfTopPool(guid); + if (int16 event_id = sGameEventMgr.GetGameEventId(top_pool_id)) + { + char buffer[100]; + const char* format = GetMangosString(LANG_NPC_GO_INFO_POOL_EVENT_STRING); + sprintf(buffer, format, pool_id, event_id); + str = buffer; + } + else + { + char buffer[100]; + const char* format = GetMangosString(LANG_NPC_GO_INFO_POOL_STRING); + sprintf(buffer, format, pool_id); + str = buffer; + } + } + else if (int16 event_id = sGameEventMgr.GetGameEventId(guid)) + { + char buffer[100]; + const char* format = GetMangosString(LANG_NPC_GO_INFO_EVENT_STRING); + sprintf(buffer, format, event_id); + str = buffer; + } + + return str; +} + // Instantiate template for helper function template void ChatHandler::ShowNpcOrGoSpawnInformation(uint32 guid); template void ChatHandler::ShowNpcOrGoSpawnInformation(uint32 guid); + +template std::string ChatHandler::PrepareStringNpcOrGoSpawnInformation(uint32 guid); +template std::string ChatHandler::PrepareStringNpcOrGoSpawnInformation(uint32 guid); diff --git a/src/game/Chat.h b/src/game/Chat.h index 24ac20e94..b82899e14 100644 --- a/src/game/Chat.h +++ b/src/game/Chat.h @@ -562,6 +562,8 @@ class ChatHandler bool HandleGoHelper(Player* _player, uint32 mapid, float x, float y, float const* zPtr = NULL, float const* ortPtr = NULL); template void ShowNpcOrGoSpawnInformation(uint32 guid); + template + std::string PrepareStringNpcOrGoSpawnInformation(uint32 guid); /** * Stores informations about a deleted character @@ -615,4 +617,7 @@ class CliHandler : public ChatHandler Print* m_print; }; + + + #endif diff --git a/src/game/Language.h b/src/game/Language.h index 5ad8e0446..78c9fb607 100644 --- a/src/game/Language.h +++ b/src/game/Language.h @@ -846,7 +846,10 @@ enum MangosStrings LANG_NPC_GO_INFO_TOP_POOL = 1146, LANG_NPC_GO_INFO_POOL_GAME_EVENT_S = 1147, LANG_NPC_GO_INFO_POOL_GAME_EVENT_D = 1148, - // Room for more level 3 1149-1199 not used + LANG_NPC_GO_INFO_POOL_STRING = 1149, + LANG_NPC_GO_INFO_EVENT_STRING = 1150, + LANG_NPC_GO_INFO_POOL_EVENT_STRING = 1151, + // Room for more level 3 1152-1199 not used // Debug commands LANG_CINEMATIC_NOT_EXIST = 1200, diff --git a/src/game/Level2.cpp b/src/game/Level2.cpp index 7e8554d3f..fdf2599be 100644 --- a/src/game/Level2.cpp +++ b/src/game/Level2.cpp @@ -844,7 +844,7 @@ bool ChatHandler::HandleGameObjectNearCommand(const char* args) "(POW(position_x - '%f', 2) + POW(position_y - '%f', 2) + POW(position_z - '%f', 2)) AS order_ " "FROM gameobject WHERE map='%u' AND (POW(position_x - '%f', 2) + POW(position_y - '%f', 2) + POW(position_z - '%f', 2)) <= '%f' ORDER BY order_", pl->GetPositionX(), pl->GetPositionY(), pl->GetPositionZ(), - pl->GetMapId(),pl->GetPositionX(), pl->GetPositionY(), pl->GetPositionZ(),distance*distance); + pl->GetMapId(), pl->GetPositionX(), pl->GetPositionY(), pl->GetPositionZ(),distance*distance); if (result) { @@ -863,7 +863,7 @@ bool ChatHandler::HandleGameObjectNearCommand(const char* args) if (!gInfo) continue; - PSendSysMessage(LANG_GO_MIXED_LIST_CHAT, guid, entry, guid, gInfo->name, x, y, z, mapid); + PSendSysMessage(LANG_GO_MIXED_LIST_CHAT, guid, PrepareStringNpcOrGoSpawnInformation(guid).c_str(), entry, guid, gInfo->name, x, y, z, mapid); ++count; } while (result->NextRow()); diff --git a/src/game/Level3.cpp b/src/game/Level3.cpp index 5d9e5ead0..791397a4f 100644 --- a/src/game/Level3.cpp +++ b/src/game/Level3.cpp @@ -2530,9 +2530,9 @@ bool ChatHandler::HandleListObjectCommand(const char* args) int mapid = fields[4].GetUInt16(); if (m_session) - PSendSysMessage(LANG_GO_LIST_CHAT, guid, guid, gInfo->name, x, y, z, mapid); + PSendSysMessage(LANG_GO_LIST_CHAT, guid, PrepareStringNpcOrGoSpawnInformation(guid).c_str(), guid, gInfo->name, x, y, z, mapid); else - PSendSysMessage(LANG_GO_LIST_CONSOLE, guid, gInfo->name, x, y, z, mapid); + PSendSysMessage(LANG_GO_LIST_CONSOLE, guid, PrepareStringNpcOrGoSpawnInformation(guid).c_str(), gInfo->name, x, y, z, mapid); } while (result->NextRow()); delete result; @@ -2605,10 +2605,10 @@ bool ChatHandler::HandleListCreatureCommand(const char* args) float z = fields[3].GetFloat(); int mapid = fields[4].GetUInt16(); - if (m_session) - PSendSysMessage(LANG_CREATURE_LIST_CHAT, guid, guid, cInfo->Name, x, y, z, mapid); + if (m_session) + PSendSysMessage(LANG_CREATURE_LIST_CHAT, guid, PrepareStringNpcOrGoSpawnInformation(guid).c_str(), guid, cInfo->Name, x, y, z, mapid); else - PSendSysMessage(LANG_CREATURE_LIST_CONSOLE, guid, cInfo->Name, x, y, z, mapid); + PSendSysMessage(LANG_CREATURE_LIST_CONSOLE, guid, PrepareStringNpcOrGoSpawnInformation(guid).c_str(), cInfo->Name, x, y, z, mapid); } while (result->NextRow()); delete result; diff --git a/src/shared/revision_nr.h b/src/shared/revision_nr.h index 13ad2fd4e..be24888bd 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 "10124" + #define REVISION_NR "10125" #endif // __REVISION_NR_H__ diff --git a/src/shared/revision_sql.h b/src/shared/revision_sql.h index 4f13fe836..59c3e469e 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_10051_01_characters_character_aura" - #define REVISION_DB_MANGOS "required_10119_01_mangos_creature_model_info" + #define REVISION_DB_MANGOS "required_10125_01_mangos_mangos_string" #define REVISION_DB_REALMD "required_10008_01_realmd_realmd_db_version" #endif // __REVISION_SQL_H__