aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sql/updates/world/2014_06_14_04_world_trinity_string.sql3
-rw-r--r--src/server/game/Miscellaneous/Language.h3
-rw-r--r--src/server/scripts/Commands/cs_npc.cpp25
3 files changed, 30 insertions, 1 deletions
diff --git a/sql/updates/world/2014_06_14_04_world_trinity_string.sql b/sql/updates/world/2014_06_14_04_world_trinity_string.sql
new file mode 100644
index 00000000000..b110a7de6d2
--- /dev/null
+++ b/sql/updates/world/2014_06_14_04_world_trinity_string.sql
@@ -0,0 +1,3 @@
+DELETE FROM `trinity_string` WHERE `entry`=11009;
+INSERT INTO `trinity_string` (`entry`, `content_default`) VALUES
+(11009, 'Flags Extra: %u');
diff --git a/src/server/game/Miscellaneous/Language.h b/src/server/game/Miscellaneous/Language.h
index 34871085157..3a680e30217 100644
--- a/src/server/game/Miscellaneous/Language.h
+++ b/src/server/game/Miscellaneous/Language.h
@@ -1224,7 +1224,8 @@ enum TrinityStrings
LANG_BAN_ACCOUNT_YOUBANNEDMESSAGE_WORLD = 11006,
LANG_BAN_ACCOUNT_YOUPERMBANNEDMESSAGE_WORLD = 11007,
- LANG_NPCINFO_INHABIT_TYPE = 11008
+ LANG_NPCINFO_INHABIT_TYPE = 11008,
+ LANG_NPCINFO_FLAGS_EXTRA = 11009
// NOT RESERVED IDS 12000-1999999999
// `db_script_string` table index 2000000000-2000009999 (MIN_DB_SCRIPT_STRING_ID-MAX_DB_SCRIPT_STRING_ID)
diff --git a/src/server/scripts/Commands/cs_npc.cpp b/src/server/scripts/Commands/cs_npc.cpp
index 28d49fe11aa..9cf8c041883 100644
--- a/src/server/scripts/Commands/cs_npc.cpp
+++ b/src/server/scripts/Commands/cs_npc.cpp
@@ -43,6 +43,7 @@ struct EnumName
#define CREATE_NAMED_ENUM(VALUE) { VALUE, STRINGIZE(VALUE) }
#define NPCFLAG_COUNT 24
+#define FLAGS_EXTRA_COUNT 16
EnumName<NPCFlags, int32> const npcFlagTexts[NPCFLAG_COUNT] =
{
@@ -144,6 +145,26 @@ EnumName<UnitFlags> const unitFlags[MAX_UNIT_FLAGS] =
CREATE_NAMED_ENUM(UNIT_FLAG_UNK_31)
};
+EnumName<CreatureFlagsExtra> const flagsExtra[FLAGS_EXTRA_COUNT] =
+{
+ CREATE_NAMED_ENUM(CREATURE_FLAG_EXTRA_INSTANCE_BIND),
+ CREATE_NAMED_ENUM(CREATURE_FLAG_EXTRA_CIVILIAN),
+ CREATE_NAMED_ENUM(CREATURE_FLAG_EXTRA_NO_PARRY),
+ CREATE_NAMED_ENUM(CREATURE_FLAG_EXTRA_NO_PARRY_HASTEN),
+ CREATE_NAMED_ENUM(CREATURE_FLAG_EXTRA_NO_BLOCK),
+ CREATE_NAMED_ENUM(CREATURE_FLAG_EXTRA_NO_CRUSH),
+ CREATE_NAMED_ENUM(CREATURE_FLAG_EXTRA_NO_XP_AT_KILL),
+ CREATE_NAMED_ENUM(CREATURE_FLAG_EXTRA_TRIGGER),
+ CREATE_NAMED_ENUM(CREATURE_FLAG_EXTRA_NO_TAUNT),
+ CREATE_NAMED_ENUM(CREATURE_FLAG_EXTRA_WORLDEVENT),
+ CREATE_NAMED_ENUM(CREATURE_FLAG_EXTRA_GUARD),
+ CREATE_NAMED_ENUM(CREATURE_FLAG_EXTRA_NO_CRIT),
+ CREATE_NAMED_ENUM(CREATURE_FLAG_EXTRA_NO_SKILLGAIN),
+ CREATE_NAMED_ENUM(CREATURE_FLAG_EXTRA_TAUNT_DIMINISH),
+ CREATE_NAMED_ENUM(CREATURE_FLAG_EXTRA_ALL_DIMINISH),
+ CREATE_NAMED_ENUM(CREATURE_FLAG_EXTRA_DUNGEON_BOSS)
+};
+
class npc_commandscript : public CommandScript
{
public:
@@ -730,6 +751,10 @@ public:
handler->PSendSysMessage(LANG_NPCINFO_ARMOR, target->GetArmor());
handler->PSendSysMessage(LANG_NPCINFO_POSITION, target->GetPositionX(), target->GetPositionY(), target->GetPositionZ());
handler->PSendSysMessage(LANG_NPCINFO_AIINFO, target->GetAIName().c_str(), target->GetScriptName().c_str());
+ handler->PSendSysMessage(LANG_NPCINFO_FLAGS_EXTRA, cInfo->flags_extra);
+ for (uint8 i = 0; i < FLAGS_EXTRA_COUNT; ++i)
+ if (cInfo->flags_extra & flagsExtra[i].Value)
+ handler->PSendSysMessage("%s (0x%X)", flagsExtra[i].Name, flagsExtra[i].Value);
for (uint8 i = 0; i < NPCFLAG_COUNT; i++)
if (npcflags & npcFlagTexts[i].Value)