Add command similar to pinfo but for gameobjects.
Displays Entry, Type, DisplayId, and Name. Created in response to issue #768. --HG-- branch : trunk
This commit is contained in:
@@ -0,0 +1 @@
|
||||
INSERT INTO comand VALUES ('gobject info', 2, 'Syntax: .gobject info [$object_entry]\r\n\r\nQuery Gameobject information for selected gameobject or given entry.");
|
||||
@@ -0,0 +1,4 @@
|
||||
INSERT INTO trinity_string (`entry`, `content_default`) VALUES (5024, 'Entry: %u');
|
||||
INSERT INTO trinity_string (`entry`, `content_default`) VALUES (5025, 'Type: %u');
|
||||
INSERT INTO trinity_string (`entry`, `content_default`) VALUES (5026, 'DisplayID: %u');
|
||||
INSERT INTO trinity_string (`entry`, `content_default`) VALUES (5027, 'Name: %s');
|
||||
@@ -403,6 +403,7 @@ INSERT INTO `command` VALUES
|
||||
('gobject activate','2','Syntax: .gobject activate #guid\r\n\r\nActivates an object like a door or a button.'),
|
||||
('gobject add','2','Syntax: .gobject add #id <spawntimeSecs>\r\n\r\nAdd a game object from game object templates to the world at your current location using the #id.\r\nspawntimesecs sets the spawntime, it is optional.\r\n\r\nNote: this is a copy of .gameobject.'),
|
||||
('gobject delete','2','Syntax: .gobject delete #go_guid\r\nDelete gameobject with guid #go_guid.'),
|
||||
('gobject info', 2, 'Syntax: .gobject info [$object_entry]\r\n\r\nQuery Gameobject information for selected gameobject or given entry.');
|
||||
('gobject move','2','Syntax: .gobject move #goguid [#x #y #z]\r\n\r\nMove gameobject #goguid to character coordinates (or to (#x,#y,#z) coordinates if its provide).'),
|
||||
('gobject near','2','Syntax: .gobject near [#distance]\r\n\r\nOutput gameobjects at distance #distance from player. Output gameobject guids and coordinates sorted by distance from character. If #distance not provided use 10 as default value.'),
|
||||
('gobject setphase','2','Syntax: .gobject setphase #guid #phasemask\r\n\r\nGameobject with DB guid #guid phasemask changed to #phasemask with related world vision update for players. Gameobject state saved to DB and persistent.'),
|
||||
@@ -14791,6 +14792,10 @@ INSERT INTO `trinity_string` (`entry`,`content_default`,`content_loc1`,`content_
|
||||
(5021, 'Armor: %u', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
|
||||
(5022, 'Channel password not changed due to channel being marked public. GM Powers required.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
|
||||
(5023, 'Channel: %s publicity set to: %u', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
|
||||
(5024, 'Entry: %u', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
|
||||
(5025, 'Type: %u', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
|
||||
(5026, 'DisplayID: %u', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
|
||||
(5027, 'Name: %s', 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),
|
||||
(6615, '|cffffff00[|c1f40af20GM Announce by|r |cffff0000%s|cffffff00]:|r %s|r', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
|
||||
|
||||
@@ -235,6 +235,7 @@ ChatCommand * ChatHandler::getCommandTable()
|
||||
{ "activate", SEC_GAMEMASTER, false, &ChatHandler::HandleActivateObjectCommand, "", NULL },
|
||||
{ "add", SEC_GAMEMASTER, false, &ChatHandler::HandleGameObjectAddCommand, "", NULL },
|
||||
{ "delete", SEC_GAMEMASTER, false, &ChatHandler::HandleGameObjectDeleteCommand, "", NULL },
|
||||
{ "info", SEC_GAMEMASTER, false, &ChatHandler::HandleGOInfoCommand, "", NULL },
|
||||
{ "move", SEC_GAMEMASTER, false, &ChatHandler::HandleGameObjectMoveCommand, "", NULL },
|
||||
{ "near", SEC_GAMEMASTER, false, &ChatHandler::HandleGameObjectNearCommand, "", NULL },
|
||||
{ "state", SEC_GAMEMASTER, false, &ChatHandler::HandleGameObjectStateCommand, "", NULL },
|
||||
|
||||
@@ -192,6 +192,7 @@ class ChatHandler
|
||||
|
||||
bool HandleGameObjectAddCommand(const char* args);
|
||||
bool HandleGameObjectDeleteCommand(const char* args);
|
||||
bool HandleGOInfoCommand(const char* args);
|
||||
bool HandleGameObjectMoveCommand(const char* args);
|
||||
bool HandleGameObjectNearCommand(const char* args);
|
||||
bool HandleGameObjectPhaseCommand(const char* args);
|
||||
|
||||
+5
-1
@@ -879,7 +879,11 @@ enum TrinityStrings
|
||||
LANG_NPCINFO_ARMOR = 5021,
|
||||
LANG_CHANNEL_NOT_PUBLIC = 5022,
|
||||
LANG_CHANNEL_PUBLIC_CHANGED = 5023,
|
||||
// Room for more Trinity strings 5024-9999
|
||||
LANG_GOINFO_ENTRY = 5024,
|
||||
LANG_GOINFO_TYPE = 5025,
|
||||
LANG_GOINFO_DISPLAYID = 5026,
|
||||
LANG_GOINFO_NAME = 5027,
|
||||
// Room for more Trinity strings 5028-9999
|
||||
// Used for GM Announcements
|
||||
LANG_GM_BROADCAST = 6613,
|
||||
LANG_GM_NOTIFY = 6614,
|
||||
|
||||
@@ -2123,6 +2123,37 @@ bool ChatHandler::HandleModifyPhaseCommand(const char* args)
|
||||
|
||||
return true;
|
||||
}
|
||||
//show info of gameobject
|
||||
bool ChatHandler::HandleGOInfoCommand(const char* args)
|
||||
{
|
||||
uint32 entry = atoi((char*)args);
|
||||
uint32 type = 0;
|
||||
uint32 displayid = 0;
|
||||
std::string name;
|
||||
|
||||
if(!*args)
|
||||
{
|
||||
WorldObject * obj = getSelectedObject();
|
||||
entry = obj->GetEntry();
|
||||
}
|
||||
|
||||
QueryResult_AutoPtr result = WorldDatabase.PQuery("SELECT `type` `displayid` `name` FROM gameobject_template WHERE entry = %u", entry);
|
||||
|
||||
if(!result)
|
||||
return false;
|
||||
|
||||
Field * fields = result->Fetch();
|
||||
type = fields[0].GetUInt32();
|
||||
displayid = fields[1].GetUInt32();
|
||||
name = fields[3].GetString();
|
||||
|
||||
PSendSysMessage(LANG_GOINFO_ENTRY, entry);
|
||||
PSendSysMessage(LANG_GOINFO_TYPE, type);
|
||||
PSendSysMessage(LANG_GOINFO_DISPLAYID, displayid);
|
||||
PSendSysMessage(LANG_GOINFO_NAME, name.c_str());
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
//show info of player
|
||||
bool ChatHandler::HandlePInfoCommand(const char* args)
|
||||
|
||||
Reference in New Issue
Block a user