*Implement command .lookup map
--HG-- branch : trunk
This commit is contained in:
@@ -0,0 +1,14 @@
|
|||||||
|
DELETE FROM `trinity_string` WHERE `entry` BETWEEN 5012 AND 5019;
|
||||||
|
INSERT INTO `trinity_string` (`entry`, `content_default`, `content_loc1`, `content_loc2`, `content_loc3`, `content_loc4`, `content_loc5`, `content_loc6`, `content_loc7`, `content_loc8`) VALUES
|
||||||
|
(5012, 'No maps found!', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
|
||||||
|
(5013, '[Continent]', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
|
||||||
|
(5014, '[Instance]', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
|
||||||
|
(5015, '[Battleground]', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
|
||||||
|
(5016, '[Arena]', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
|
||||||
|
(5017, '[Raid reset time: %u]', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
|
||||||
|
(5018, '[Heroic reset time: %u]', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
|
||||||
|
(5019, '[Mountable]', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
|
||||||
|
|
||||||
|
DELETE FROM `command` WHERE `name` = 'lookup map';
|
||||||
|
INSERT INTO `command` (`name`, `security`, `help`) VALUES
|
||||||
|
('lookup map', 3, 'Syntax: .lookup map $namepart\r\n\r\nLooks up a map by $namepart, and returns all matches with their map ID''s.');
|
||||||
@@ -430,6 +430,7 @@ INSERT INTO `command` VALUES
|
|||||||
('lookup faction',3,'Syntax: .lookup faction $name\r\nAttempts to find the ID of the faction with the provided $name.'),
|
('lookup faction',3,'Syntax: .lookup faction $name\r\nAttempts to find the ID of the faction with the provided $name.'),
|
||||||
('lookup item',3,'Syntax: .lookup item $itemname\r\n\r\nLooks up an item by $itemname, and returns all matches with their Item ID\'s.'),
|
('lookup item',3,'Syntax: .lookup item $itemname\r\n\r\nLooks up an item by $itemname, and returns all matches with their Item ID\'s.'),
|
||||||
('lookup itemset',3,'Syntax: .lookup itemset $itemname\r\n\r\nLooks up an item set by $itemname, and returns all matches with their Item set ID\'s.'),
|
('lookup itemset',3,'Syntax: .lookup itemset $itemname\r\n\r\nLooks up an item set by $itemname, and returns all matches with their Item set ID\'s.'),
|
||||||
|
('lookup map',3,'Syntax: .lookup map $namepart\r\n\r\nLooks up a map by $namepart, and returns all matches with their map ID''s.'),
|
||||||
('lookup object',3,'Syntax: .lookup object $objname\r\n\r\nLooks up an gameobject by $objname, and returns all matches with their Gameobject ID\'s.'),
|
('lookup object',3,'Syntax: .lookup object $objname\r\n\r\nLooks up an gameobject by $objname, and returns all matches with their Gameobject ID\'s.'),
|
||||||
('lookup player account',2,'Syntax: .lookup player account $account ($limit) \r\n\r\n Searchs players, which account username is $account with optional parametr $limit of results.'),
|
('lookup player account',2,'Syntax: .lookup player account $account ($limit) \r\n\r\n Searchs players, which account username is $account with optional parametr $limit of results.'),
|
||||||
('lookup player email',2,'Syntax: .lookup player email $email ($limit) \r\n\r\n Searchs players, which account email is $email with optional parametr $limit of results.'),
|
('lookup player email',2,'Syntax: .lookup player email $email ($limit) \r\n\r\n Searchs players, which account email is $email with optional parametr $limit of results.'),
|
||||||
@@ -15404,6 +15405,14 @@ INSERT INTO `trinity_string` VALUES
|
|||||||
(5009,'Sound %u Played to server',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),
|
(5009,'Sound %u Played to server',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),
|
||||||
(5010,'linkGUID: %u, Entry: %u (%s)',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),
|
(5010,'linkGUID: %u, Entry: %u (%s)',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),
|
||||||
(5011,'You can\'t teleport self to self!',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),
|
(5011,'You can\'t teleport self to self!',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),
|
||||||
|
(5012,'No maps found!',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),
|
||||||
|
(5013,'[Continent]',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),
|
||||||
|
(5014,'[Instance]',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),
|
||||||
|
(5015,'[Battleground]',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),
|
||||||
|
(5016,'[Arena]',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),
|
||||||
|
(5017,'[Raid reset time: %u]',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),
|
||||||
|
(5018,'[Heroic reset time: %u]',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),
|
||||||
|
(5019,'[Mountable]',NULL NULL,NULL,NULL,NULL,NULL,NULL,NULL),
|
||||||
(6613,'|cfff00000[GM Announcement]: %s|r',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),
|
(6613,'|cfff00000[GM Announcement]: %s|r',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),
|
||||||
(6614,'Notification to GM\'s - ',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),
|
(6614,'Notification to GM\'s - ',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),
|
||||||
(6615,'|cffffff00[|c1f40af20GM Announce by|r |cffff0000%s|cffffff00]:|r %s|r',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),
|
(6615,'|cffffff00[|c1f40af20GM Announce by|r |cffff0000%s|cffffff00]:|r %s|r',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),
|
||||||
|
|||||||
@@ -306,6 +306,7 @@ ChatCommand * ChatHandler::getCommandTable()
|
|||||||
{ "spell", SEC_ADMINISTRATOR, true, &ChatHandler::HandleLookupSpellCommand, "", NULL },
|
{ "spell", SEC_ADMINISTRATOR, true, &ChatHandler::HandleLookupSpellCommand, "", NULL },
|
||||||
{ "taxinode", SEC_ADMINISTRATOR, true, &ChatHandler::HandleLookupTaxiNodeCommand, "", NULL },
|
{ "taxinode", SEC_ADMINISTRATOR, true, &ChatHandler::HandleLookupTaxiNodeCommand, "", NULL },
|
||||||
{ "tele", SEC_MODERATOR, true, &ChatHandler::HandleLookupTeleCommand, "", NULL },
|
{ "tele", SEC_MODERATOR, true, &ChatHandler::HandleLookupTeleCommand, "", NULL },
|
||||||
|
{ "map", SEC_ADMINISTRATOR, true, &ChatHandler::HandleLookupMapCommand, "", NULL },
|
||||||
{ NULL, 0, false, NULL, "", NULL }
|
{ NULL, 0, false, NULL, "", NULL }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -256,6 +256,7 @@ class ChatHandler
|
|||||||
bool HandleLookupSpellCommand(const char* args);
|
bool HandleLookupSpellCommand(const char* args);
|
||||||
bool HandleLookupTaxiNodeCommand(const char * args);
|
bool HandleLookupTaxiNodeCommand(const char * args);
|
||||||
bool HandleLookupTeleCommand(const char * args);
|
bool HandleLookupTeleCommand(const char * args);
|
||||||
|
bool HandleLookupMapCommand(const char* args);
|
||||||
|
|
||||||
bool HandleModifyKnownTitlesCommand(const char* args);
|
bool HandleModifyKnownTitlesCommand(const char* args);
|
||||||
bool HandleModifyHPCommand(const char* args);
|
bool HandleModifyHPCommand(const char* args);
|
||||||
|
|||||||
+10
-1
@@ -854,7 +854,16 @@ enum TrinityStrings
|
|||||||
LANG_COMMAND_PLAYED_TO_ALL = 5009,
|
LANG_COMMAND_PLAYED_TO_ALL = 5009,
|
||||||
LANG_NPCINFO_LINKGUID = 5010,
|
LANG_NPCINFO_LINKGUID = 5010,
|
||||||
LANG_TELEPORTED_TO_BY_CONSOLE = 5011,
|
LANG_TELEPORTED_TO_BY_CONSOLE = 5011,
|
||||||
// Room for more Trinity strings 5012-9999
|
// for command lookup map
|
||||||
|
LANG_COMMAND_NOMAPFOUND = 5012,
|
||||||
|
LANG_CONTINENT = 5013,
|
||||||
|
LANG_INSTANCE = 5014,
|
||||||
|
LANG_BATTLEGROUND = 5015,
|
||||||
|
LANG_ARENA = 5016,
|
||||||
|
LANG_RAID = 5017,
|
||||||
|
LANG_HEROIC = 5018,
|
||||||
|
LANG_MOUNTABLE = 5019,
|
||||||
|
// Room for more Trinity strings 5020-9999
|
||||||
// Used for GM Announcements
|
// Used for GM Announcements
|
||||||
LANG_GM_BROADCAST = 6613,
|
LANG_GM_BROADCAST = 6613,
|
||||||
LANG_GM_NOTIFY = 6614,
|
LANG_GM_NOTIFY = 6614,
|
||||||
|
|||||||
@@ -3799,6 +3799,103 @@ bool ChatHandler::HandleLookupTaxiNodeCommand(const char * args)
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool ChatHandler::HandleLookupMapCommand(const char* args)
|
||||||
|
{
|
||||||
|
if(!*args)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
std::string namepart = args;
|
||||||
|
std::wstring wnamepart;
|
||||||
|
|
||||||
|
// converting string that we try to find to lower case
|
||||||
|
if(!Utf8toWStr(namepart, wnamepart))
|
||||||
|
return false;
|
||||||
|
|
||||||
|
wstrToLower(wnamepart);
|
||||||
|
|
||||||
|
uint32 counter = 0;
|
||||||
|
|
||||||
|
// search in Map.dbc
|
||||||
|
for(uint32 id = 0; id < sMapStore.GetNumRows(); id++)
|
||||||
|
{
|
||||||
|
MapEntry const* MapInfo = sMapStore.LookupEntry(id);
|
||||||
|
if(MapInfo)
|
||||||
|
{
|
||||||
|
uint8 loc = m_session ? m_session->GetSessionDbcLocale() : sWorld.GetDefaultDbcLocale();
|
||||||
|
|
||||||
|
std::string name = MapInfo->name[loc];
|
||||||
|
if(name.empty())
|
||||||
|
continue;
|
||||||
|
|
||||||
|
if(!Utf8FitTo(name, wnamepart))
|
||||||
|
{
|
||||||
|
loc = LOCALE_enUS;
|
||||||
|
for(; loc < MAX_LOCALE; loc++)
|
||||||
|
{
|
||||||
|
if(m_session && loc == m_session->GetSessionDbcLocale())
|
||||||
|
continue;
|
||||||
|
|
||||||
|
name = MapInfo->name[loc];
|
||||||
|
if(name.empty())
|
||||||
|
continue;
|
||||||
|
|
||||||
|
if(Utf8FitTo(name, wnamepart))
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if(loc < MAX_LOCALE)
|
||||||
|
{
|
||||||
|
// send map in "id - [name][Continent][Instance/Battleground/Arena][Raid reset time:][Heroic reset time:][Mountable]" format
|
||||||
|
std::ostringstream ss;
|
||||||
|
|
||||||
|
if(m_session)
|
||||||
|
ss << id << " - |cffffffff|Hmap:" << id << "|h[" << name << "]";
|
||||||
|
else // console
|
||||||
|
ss << id << " - [" << name << "]";
|
||||||
|
|
||||||
|
if(MapInfo->IsContinent())
|
||||||
|
ss << GetTrinityString(LANG_CONTINENT);
|
||||||
|
|
||||||
|
switch(MapInfo->map_type)
|
||||||
|
{
|
||||||
|
case MAP_INSTANCE: ss << GetTrinityString(LANG_INSTANCE); break;
|
||||||
|
case MAP_BATTLEGROUND: ss << GetTrinityString(LANG_BATTLEGROUND); break;
|
||||||
|
case MAP_ARENA: ss << GetTrinityString(LANG_ARENA); break;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(MapInfo->IsRaid())
|
||||||
|
ss << GetTrinityString(LANG_RAID);
|
||||||
|
|
||||||
|
if(MapInfo->SupportsHeroicMode())
|
||||||
|
ss << GetTrinityString(LANG_HEROIC);
|
||||||
|
|
||||||
|
uint32 ResetTimeRaid = MapInfo->resetTimeRaid;
|
||||||
|
uint32 ResetTimeHeroic = MapInfo->resetTimeHeroic;
|
||||||
|
|
||||||
|
if(MapInfo->IsMountAllowed())
|
||||||
|
ss << GetTrinityString(LANG_MOUNTABLE);
|
||||||
|
|
||||||
|
if(ResetTimeRaid && !ResetTimeHeroic)
|
||||||
|
PSendSysMessage(ss.str().c_str(), ResetTimeRaid);
|
||||||
|
else if(!ResetTimeRaid && ResetTimeHeroic)
|
||||||
|
PSendSysMessage(ss.str().c_str(), ResetTimeHeroic);
|
||||||
|
else if(ResetTimeRaid && ResetTimeHeroic)
|
||||||
|
PSendSysMessage(ss.str().c_str(), ResetTimeRaid, ResetTimeHeroic);
|
||||||
|
else
|
||||||
|
SendSysMessage(ss.str().c_str());
|
||||||
|
|
||||||
|
counter++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if(!counter)
|
||||||
|
SendSysMessage(LANG_COMMAND_NOMAPFOUND);
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
/** \brief GM command level 3 - Create a guild.
|
/** \brief GM command level 3 - Create a guild.
|
||||||
*
|
*
|
||||||
* This command allows a GM (level 3) to create a guild.
|
* This command allows a GM (level 3) to create a guild.
|
||||||
|
|||||||
Reference in New Issue
Block a user