diff --git a/sql/mangos.sql b/sql/mangos.sql index 30340d0f8..6fd209e9e 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_10106_02_mangos_mangos_string` bit(1) default NULL + `required_10107_01_mangos_mangos_string` bit(1) default NULL ) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='Used DB version notes'; -- @@ -3210,29 +3210,29 @@ INSERT INTO `mangos_string` VALUES (302,'Player\'s chat is already enabled.',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), (303,'Your chat has been enabled.',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), (304,'You have enabled %s\'s chat.',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), -(305, 'Faction %s (%u) reputation of %s was set to %5d!',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), -(306, 'The arena points of %s was set to %u!',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), -(307, 'No faction found!',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), -(308, 'Faction %i unknown!',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), -(309, 'Invalid parameter %s',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), -(310, 'delta must be between 0 and %d (inclusive)',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), -(311, '%d - |cffffffff|Hfaction:%d|h[%s]|h|r',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), -(312, ' [visible]',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), -(313, ' [at war]',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), -(314, ' [peace forced]',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), -(315, ' [hidden]',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), -(316, ' [invisible forced]',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), -(317, ' [inactive]',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), -(318, 'Hated',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), -(319, 'Hostile',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), -(320, 'Unfriendly',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), -(321, 'Neutral',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), -(322, 'Friendly',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), -(323, 'Honored',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), -(324, 'Revered',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), -(325, 'Exalted',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), -(326, 'Faction %s (%u) can\'not have reputation.',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), -(327, ' [no reputation]',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(305,'Faction %s (%u) reputation of %s was set to %5d!',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(306,'The arena points of %s was set to %u!',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(307,'No faction found!',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(308,'Faction %i unknown!',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(309,'Invalid parameter %s',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(310,'delta must be between 0 and %d (inclusive)',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(311,'%d - |cffffffff|Hfaction:%d|h[%s]|h|r',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(312,' [visible]',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(313,' [at war]',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(314,' [peace forced]',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(315,' [hidden]',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(316,' [invisible forced]',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(317,' [inactive]',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(318,'Hated',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(319,'Hostile',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(320,'Unfriendly',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(321,'Neutral',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(322,'Friendly',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(323,'Honored',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(324,'Revered',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(325,'Exalted',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(326,'Faction %s (%u) can\'not have reputation.',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(327,' [no reputation]',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), (328,'Characters at account %s (Id: %u)',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), (329,' %s (GUID %u)',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), (330,'No players found!',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), @@ -3625,19 +3625,19 @@ INSERT INTO `mangos_string` VALUES (1013,'| %10u |%15s| %20s | %15s |%4d| %9d |',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), (1014,'No online players.',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), (1015,'Used not fully typed quit command, need type it fully (quit), or command used not in RA command line.',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), -(1016, '| GUID | Name | Account | Delete Date |',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), -(1017, '| %10u | %20s | %15s (%10u) | %19s |',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), -(1018, '==========================================================================================',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), -(1019, 'No characters found.',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), -(1020, 'Restoring the following characters:',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), -(1021, 'Deleting the following characters:',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), -(1022, 'ERROR: You can only assign a new name if you have only selected a single character!',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), -(1023, 'Character \'%s\' (GUID: %u Account %u) can\'t be restored: account not exist!',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), -(1024, 'Character \'%s\' (GUID: %u Account %u) can\'t be restored: account character list full!',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), -(1025, 'Character \'%s\' (GUID: %u Account %u) can\'t be restored: new name already used!',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), -(1026, 'GUID: %u Name: %s Account: %s (%u) Date: %s',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), -(1027, 'Log filters state:',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), -(1028, 'All log filters set to: %s',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1016,'| GUID | Name | Account | Delete Date |',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1017,'| %10u | %20s | %15s (%10u) | %19s |',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1018,'==========================================================================================',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1019,'No characters found.',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1020,'Restoring the following characters:',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1021,'Deleting the following characters:',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1022,'ERROR: You can only assign a new name if you have only selected a single character!',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1023,'Character \'%s\' (GUID: %u Account %u) can\'t be restored: account not exist!',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1024,'Character \'%s\' (GUID: %u Account %u) can\'t be restored: account character list full!',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1025,'Character \'%s\' (GUID: %u Account %u) can\'t be restored: new name already used!',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1026,'GUID: %u Name: %s Account: %s (%u) Date: %s',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1027,'Log filters state:',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1028,'All log filters set to: %s',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), (1100,'Account %s (Id: %u) have up to %u expansion allowed now.',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), (1101,'Message of the day changed to:\r\n%s',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), (1102,'Message sent to %s: %s',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), @@ -3676,11 +3676,17 @@ INSERT INTO `mangos_string` VALUES (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), -(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), -(1141, '%u - |cffffffff|Hplayer:%s|h[%s]|h|r %s %s %u',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), +(1141,'%u - |cffffffff|Hplayer:%s|h[%s]|h|r %s %s %u',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), (1142,'%u - %s (Online:%s IP:%s GM:%u Expansion:%u)',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1143,'Spawned by event %u (%s)',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1144,'Despawned by event %u (%s)',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1145,'Part of pool %u',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(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), (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/10107_01_mangos_mangos_string.sql b/sql/updates/10107_01_mangos_mangos_string.sql new file mode 100644 index 000000000..1e9e74d16 --- /dev/null +++ b/sql/updates/10107_01_mangos_mangos_string.sql @@ -0,0 +1,11 @@ +ALTER TABLE db_version CHANGE COLUMN required_10106_02_mangos_mangos_string required_10107_01_mangos_mangos_string bit; + +DELETE FROM mangos_string WHERE entry BETWEEN 1143 AND 1148; + +INSERT INTO mangos_string VALUES +(1143, 'Spawned by event %u (%s)',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1144, 'Despawned by event %u (%s)',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1145, 'Part of pool %u',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(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); diff --git a/sql/updates/Makefile.am b/sql/updates/Makefile.am index 015257138..6b9a7dcc2 100644 --- a/sql/updates/Makefile.am +++ b/sql/updates/Makefile.am @@ -93,6 +93,7 @@ pkgdata_DATA = \ 10089_01_mangos_game_event_pool.sql \ 10106_01_mangos_command.sql \ 10106_02_mangos_mangos_string.sql \ + 10107_01_mangos_mangos_string.sql \ README ## Additional files to include when running 'make dist' @@ -166,4 +167,5 @@ EXTRA_DIST = \ 10089_01_mangos_game_event_pool.sql \ 10106_01_mangos_command.sql \ 10106_02_mangos_mangos_string.sql \ + 10107_01_mangos_mangos_string.sql \ README diff --git a/src/game/Chat.cpp b/src/game/Chat.cpp index 901b77280..034d8e650 100644 --- a/src/game/Chat.cpp +++ b/src/game/Chat.cpp @@ -33,6 +33,8 @@ #include "CellImpl.h" #include "AccountMgr.h" #include "SpellMgr.h" +#include "PoolManager.h" +#include "GameEventMgr.h" // Supported shift-links (client generated and server side) // |color|Hachievement:achievement_id:player_guid:0:0:0:0:0:0:0:0|h[name]|h|r @@ -2523,3 +2525,42 @@ int CliHandler::GetSessionDbLocaleIndex() const { return sObjectMgr.GetDBCLocaleIndex(); } + +// Check/ Output if a NPC or GO (by guid) is part of a pool or game event +template +void ChatHandler::ShowNpcOrGoSpawnInformation(uint32 guid) +{ + if (uint16 pool_id = sPoolMgr.IsPartOfAPool(guid)) + { + uint16 top_pool_id = sPoolMgr.IsPartOfTopPool(pool_id); + if (!top_pool_id || top_pool_id == pool_id) + PSendSysMessage(LANG_NPC_GO_INFO_POOL, pool_id); + else + PSendSysMessage(LANG_NPC_GO_INFO_TOP_POOL, pool_id, top_pool_id); + + if (int16 event_id = sGameEventMgr.GetGameEventId(top_pool_id)) + { + GameEventMgr::GameEventDataMap const& events = sGameEventMgr.GetEventMap(); + GameEventData const& eventData = events[std::abs(event_id)]; + + if (event_id > 0) + PSendSysMessage(LANG_NPC_GO_INFO_POOL_GAME_EVENT_S, top_pool_id, std::abs(event_id), eventData.description.c_str()); + else + PSendSysMessage(LANG_NPC_GO_INFO_POOL_GAME_EVENT_D, top_pool_id, std::abs(event_id), eventData.description.c_str()); + } + } + else if (int16 event_id = sGameEventMgr.GetGameEventId(guid)) + { + GameEventMgr::GameEventDataMap const& events = sGameEventMgr.GetEventMap(); + GameEventData const& eventData = events[std::abs(event_id)]; + + if (event_id > 0) + PSendSysMessage(LANG_NPC_GO_INFO_GAME_EVENT_S, std::abs(event_id), eventData.description.c_str()); + else + PSendSysMessage(LANG_NPC_GO_INFO_GAME_EVENT_D, std::abs(event_id), eventData.description.c_str()); + } +} + +// Instantiate template for helper function +template void ChatHandler::ShowNpcOrGoSpawnInformation(uint32 guid); +template void ChatHandler::ShowNpcOrGoSpawnInformation(uint32 guid); diff --git a/src/game/Chat.h b/src/game/Chat.h index 047cde760..24ac20e94 100644 --- a/src/game/Chat.h +++ b/src/game/Chat.h @@ -560,7 +560,8 @@ class ChatHandler void HandleLearnSkillRecipesHelper(Player* player,uint32 skill_id); void ShowSpellListHelper(Player* target, SpellEntry const* spellInfo, LocaleConstant loc); bool HandleGoHelper(Player* _player, uint32 mapid, float x, float y, float const* zPtr = NULL, float const* ortPtr = NULL); - + template + void ShowNpcOrGoSpawnInformation(uint32 guid); /** * Stores informations about a deleted character diff --git a/src/game/GameEventMgr.cpp b/src/game/GameEventMgr.cpp index 2bcbbd1a8..0d55dfbd8 100644 --- a/src/game/GameEventMgr.cpp +++ b/src/game/GameEventMgr.cpp @@ -839,6 +839,39 @@ void GameEventMgr::UpdateWorldStates(uint16 event_id, bool Activate) } } +// Get the Game Event ID for Creature by guid +template <> +int16 GameEventMgr::GetGameEventId(uint32 guid_or_poolid) +{ + for (uint16 i = 0; i < mGameEventCreatureGuids.size(); i++) // 0 <= i <= 2*(S := mGameEvent.size()) - 2 + for (GuidList::const_iterator itr = mGameEventCreatureGuids[i].begin(); itr != mGameEventCreatureGuids[i].end(); itr++) + if (*itr == guid_or_poolid) + return i + 1 - mGameEvent.size(); // -S *1 + 1 <= . <= 1*S - 1 + return 0; +} + +// Get the Game Event ID for GameObject by guid +template <> +int16 GameEventMgr::GetGameEventId(uint32 guid_or_poolid) +{ + for (uint16 i = 0; i < mGameEventGameobjectGuids.size(); i++) + for (GuidList::const_iterator itr = mGameEventGameobjectGuids[i].begin(); itr != mGameEventGameobjectGuids[i].end(); itr++) + if (*itr == guid_or_poolid) + return i + 1 - mGameEvent.size(); // -S *1 + 1 <= . <= 1*S - 1 + return 0; +} + +// Get the Game Event ID for Pool by pool ID +template <> +int16 GameEventMgr::GetGameEventId(uint32 guid_or_poolid) +{ + for (uint16 i = 0; i < mGameEventSpawnPoolIds.size(); i++) + for (IdList::const_iterator itr = mGameEventSpawnPoolIds[i].begin(); itr != mGameEventSpawnPoolIds[i].end(); itr++) + if (*itr == guid_or_poolid) + return i; + return 0; +} + GameEventMgr::GameEventMgr() { m_IsGameEventsInit = false; diff --git a/src/game/GameEventMgr.h b/src/game/GameEventMgr.h index e236768bb..661b6de79 100644 --- a/src/game/GameEventMgr.h +++ b/src/game/GameEventMgr.h @@ -67,6 +67,8 @@ class GameEventMgr uint32 Initialize(); void StartEvent(uint16 event_id, bool overwrite = false); void StopEvent(uint16 event_id, bool overwrite = false); + template + int16 GetGameEventId(uint32 guid_or_poolid); private: void AddActiveEvent(uint16 event_id) { m_ActiveEvents.insert(event_id); } void RemoveActiveEvent(uint16 event_id) { m_ActiveEvents.erase(event_id); } diff --git a/src/game/Language.h b/src/game/Language.h index 9b6668745..5ad8e0446 100644 --- a/src/game/Language.h +++ b/src/game/Language.h @@ -840,7 +840,13 @@ enum MangosStrings LANG_CHARACTERS_LIST_LINE_CONSOLE = 1140, LANG_CHARACTERS_LIST_LINE_CHAT = 1141, LANG_ACCOUNT_LIST_LINE_CHAT = 1142, - // Room for more level 3 1143-1199 not used + LANG_NPC_GO_INFO_GAME_EVENT_S = 1143, + LANG_NPC_GO_INFO_GAME_EVENT_D = 1144, + LANG_NPC_GO_INFO_POOL = 1145, + 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 // Debug commands LANG_CINEMATIC_NOT_EXIST = 1200, diff --git a/src/game/Level2.cpp b/src/game/Level2.cpp index 27ee038da..10d42863d 100644 --- a/src/game/Level2.cpp +++ b/src/game/Level2.cpp @@ -526,7 +526,7 @@ bool ChatHandler::HandleGameObjectTargetCommand(const char* args) PSendSysMessage(LANG_GAMEOBJECT_DETAIL, lowguid, goI->name, lowguid, id, x, y, z, mapid, o); - if(target) + if (target) { time_t curRespawnDelay = target->GetRespawnTimeEx()-time(NULL); if(curRespawnDelay < 0) @@ -536,6 +536,8 @@ bool ChatHandler::HandleGameObjectTargetCommand(const char* args) std::string defRespawnDelayStr = secsToTimeString(target->GetRespawnDelay(),true); PSendSysMessage(LANG_COMMAND_RAWPAWNTIMES, defRespawnDelayStr.c_str(),curRespawnDelayStr.c_str()); + + ShowNpcOrGoSpawnInformation(target->GetDBTableGUIDLow()); } return true; } @@ -858,7 +860,7 @@ bool ChatHandler::HandleGameObjectNearCommand(const char* args) GameObjectInfo const * gInfo = ObjectMgr::GetGameObjectInfo(entry); - if(!gInfo) + if (!gInfo) continue; PSendSysMessage(LANG_GO_MIXED_LIST_CHAT, guid, entry, guid, gInfo->name, x, y, z, mapid); diff --git a/src/game/Level3.cpp b/src/game/Level3.cpp index 7a0b3705b..5d9e5ead0 100644 --- a/src/game/Level3.cpp +++ b/src/game/Level3.cpp @@ -3809,6 +3809,7 @@ bool ChatHandler::HandleNpcInfoCommand(const char* /*args*/) SendSysMessage(LANG_NPCINFO_TRAINER); } + ShowNpcOrGoSpawnInformation(target->GetDBTableGUIDLow()); return true; } diff --git a/src/shared/revision_nr.h b/src/shared/revision_nr.h index f894ab4f5..7f143ae72 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 "10106" + #define REVISION_NR "10107" #endif // __REVISION_NR_H__ diff --git a/src/shared/revision_sql.h b/src/shared/revision_sql.h index 8cbb2837a..ebee55bbb 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_10106_02_mangos_mangos_string" + #define REVISION_DB_MANGOS "required_10107_01_mangos_mangos_string" #define REVISION_DB_REALMD "required_10008_01_realmd_realmd_db_version" #endif // __REVISION_SQL_H__