From be1afd794904d5963cc38757cf53afdf55421998 Mon Sep 17 00:00:00 2001 From: hondacrx Date: Thu, 14 Oct 2021 19:44:58 -0400 Subject: [PATCH] Scripts/Commands: .npc info and .gobj info now show runtime AI typenames in addition to AIName/ScriptName. Port From (https://github.com/TrinityCore/TrinityCore/commit/c4458dd08ebe442461c711d01b014c6ff268fde6) --- Source/Framework/Constants/Language.cs | 1 + Source/Game/Chat/Commands/GameObjectCommands.cs | 17 ++++++++++------- Source/Game/Chat/Commands/NPCCommands.cs | 3 +++ 3 files changed, 14 insertions(+), 7 deletions(-) diff --git a/Source/Framework/Constants/Language.cs b/Source/Framework/Constants/Language.cs index 7b18e4c23..31740a9fd 100644 --- a/Source/Framework/Constants/Language.cs +++ b/Source/Framework/Constants/Language.cs @@ -1094,6 +1094,7 @@ namespace Framework.Constants ListRespawnsOverdue = 5080, ListRespawnsCreatures = 5081, ListRespawnsGameobjects = 5082, + ObjectInfoAIType = 5083, NpcinfoUnitFieldFlags2 = 5084, NpcinfoUnitFieldFlags3 = 5085, diff --git a/Source/Game/Chat/Commands/GameObjectCommands.cs b/Source/Game/Chat/Commands/GameObjectCommands.cs index dcfa97560..aa9cb4b06 100644 --- a/Source/Game/Chat/Commands/GameObjectCommands.cs +++ b/Source/Game/Chat/Commands/GameObjectCommands.cs @@ -203,16 +203,16 @@ namespace Game.Chat handler.SendSysMessage(CypherStrings.GoinfoType, type); handler.SendSysMessage(CypherStrings.GoinfoLootid, lootId); handler.SendSysMessage(CypherStrings.GoinfoDisplayid, displayId); - WorldObject obj = handler.GetSelectedObject(); - if (obj != null) + + if (thisGO != null) { - if (obj.IsGameObject() && obj.ToGameObject().GetGameObjectData() != null && obj.ToGameObject().GetGameObjectData().spawnGroupData.groupId != 0) + if (thisGO.GetGameObjectData() != null && thisGO.GetGameObjectData().spawnGroupData.groupId != 0) { - SpawnGroupTemplateData groupData = obj.ToGameObject().GetGameObjectData().spawnGroupData; - handler.SendSysMessage(CypherStrings.SpawninfoGroupId, groupData.name, groupData.groupId, groupData.flags, obj.GetMap().IsSpawnGroupActive(groupData.groupId)); + SpawnGroupTemplateData groupData = thisGO.ToGameObject().GetGameObjectData().spawnGroupData; + handler.SendSysMessage(CypherStrings.SpawninfoGroupId, groupData.name, groupData.groupId, groupData.flags, thisGO.GetMap().IsSpawnGroupActive(groupData.groupId)); } - if (obj.IsGameObject()) - handler.SendSysMessage(CypherStrings.SpawninfoCompatibilityMode, obj.ToGameObject().GetRespawnCompatibilityMode()); + + handler.SendSysMessage(CypherStrings.SpawninfoCompatibilityMode, thisGO.GetRespawnCompatibilityMode()); } handler.SendSysMessage(CypherStrings.GoinfoName, name); handler.SendSysMessage(CypherStrings.GoinfoSize, gameObjectInfo.size); @@ -232,6 +232,9 @@ namespace Game.Chat handler.SendSysMessage(CypherStrings.GoinfoAddon, goOverride.Faction, goOverride.Flags); handler.SendSysMessage(CypherStrings.ObjectInfoAIInfo, gameObjectInfo.AIName, Global.ObjectMgr.GetScriptName(gameObjectInfo.ScriptId)); + var ai = thisGO != null ? thisGO.GetAI() : null; + if (ai != null) + handler.SendSysMessage(CypherStrings.ObjectInfoAIType, nameof(ai)); GameObjectDisplayInfoRecord modelInfo = CliDB.GameObjectDisplayInfoStorage.LookupByKey(displayId); if (modelInfo != null) diff --git a/Source/Game/Chat/Commands/NPCCommands.cs b/Source/Game/Chat/Commands/NPCCommands.cs index 22c2cbc6e..3013829d5 100644 --- a/Source/Game/Chat/Commands/NPCCommands.cs +++ b/Source/Game/Chat/Commands/NPCCommands.cs @@ -179,6 +179,9 @@ namespace Game.Chat handler.SendSysMessage(CypherStrings.NpcinfoArmor, target.GetArmor()); handler.SendSysMessage(CypherStrings.NpcinfoPosition, target.GetPositionX(), target.GetPositionY(), target.GetPositionZ()); handler.SendSysMessage(CypherStrings.ObjectInfoAIInfo, target.GetAIName(), target.GetScriptName()); + var ai = target.GetAI(); + if (ai != null) + handler.SendSysMessage(CypherStrings.ObjectInfoAIType, nameof(ai)); handler.SendSysMessage(CypherStrings.NpcinfoFlagsExtra, cInfo.FlagsExtra); foreach (uint value in Enum.GetValues(typeof(CreatureFlagsExtra))) if (cInfo.FlagsExtra.HasAnyFlag((CreatureFlagsExtra)value))