diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/server/game/Entities/Creature/CreatureData.h | 4 | ||||
-rw-r--r-- | src/server/game/Entities/Creature/enuminfo_CreatureData.cpp | 6 | ||||
-rw-r--r-- | src/server/game/Globals/ObjectMgr.cpp | 4 |
3 files changed, 7 insertions, 7 deletions
diff --git a/src/server/game/Entities/Creature/CreatureData.h b/src/server/game/Entities/Creature/CreatureData.h index 1d14b6fe59..7d454e8e68 100644 --- a/src/server/game/Entities/Creature/CreatureData.h +++ b/src/server/game/Entities/Creature/CreatureData.h @@ -70,7 +70,7 @@ enum CreatureFlagsExtra : uint32 CREATURE_FLAG_EXTRA_NO_PLAYER_DAMAGE_REQ = 0x00200000, // creature does not need to take player damage for kill credit CREATURE_FLAG_EXTRA_AVOID_AOE = 0x00400000, // pussywizard: ignored by aoe attacks (for icc blood prince council npc - Dark Nucleus) CREATURE_FLAG_EXTRA_NO_DODGE = 0x00800000, // xinef: target cannot dodge - CREATURE_FLAG_EXTRA_UNUSED_25 = 0x01000000, + CREATURE_FLAG_EXTRA_MODULE = 0x01000000, CREATURE_FLAG_EXTRA_UNUSED_26 = 0x02000000, CREATURE_FLAG_EXTRA_UNUSED_27 = 0x04000000, CREATURE_FLAG_EXTRA_UNUSED_28 = 0x08000000, @@ -80,7 +80,7 @@ enum CreatureFlagsExtra : uint32 CREATURE_FLAG_EXTRA_HARD_RESET = 0x80000000, // Masks - CREATURE_FLAG_EXTRA_UNUSED = (CREATURE_FLAG_EXTRA_UNUSED_12 | CREATURE_FLAG_EXTRA_UNUSED_25 | CREATURE_FLAG_EXTRA_UNUSED_26 | + CREATURE_FLAG_EXTRA_UNUSED = (CREATURE_FLAG_EXTRA_UNUSED_12 | CREATURE_FLAG_EXTRA_UNUSED_26 | CREATURE_FLAG_EXTRA_UNUSED_27 | CREATURE_FLAG_EXTRA_UNUSED_28), // SKIP CREATURE_FLAG_EXTRA_DB_ALLOWED = (0xFFFFFFFF & ~(CREATURE_FLAG_EXTRA_UNUSED | CREATURE_FLAG_EXTRA_DUNGEON_BOSS)) // SKIP diff --git a/src/server/game/Entities/Creature/enuminfo_CreatureData.cpp b/src/server/game/Entities/Creature/enuminfo_CreatureData.cpp index f070a68277..41f805c3a1 100644 --- a/src/server/game/Entities/Creature/enuminfo_CreatureData.cpp +++ b/src/server/game/Entities/Creature/enuminfo_CreatureData.cpp @@ -55,7 +55,7 @@ AC_API_EXPORT EnumText EnumUtils<CreatureFlagsExtra>::ToString(CreatureFlagsExtr case CREATURE_FLAG_EXTRA_NO_PLAYER_DAMAGE_REQ: return { "CREATURE_FLAG_EXTRA_NO_PLAYER_DAMAGE_REQ", "CREATURE_FLAG_EXTRA_NO_PLAYER_DAMAGE_REQ", "creature does not need to take player damage for kill credit" }; case CREATURE_FLAG_EXTRA_AVOID_AOE: return { "CREATURE_FLAG_EXTRA_AVOID_AOE", "CREATURE_FLAG_EXTRA_AVOID_AOE", "pussywizard: ignored by aoe attacks (for icc blood prince council npc - Dark Nucleus)" }; case CREATURE_FLAG_EXTRA_NO_DODGE: return { "CREATURE_FLAG_EXTRA_NO_DODGE", "CREATURE_FLAG_EXTRA_NO_DODGE", "xinef: target cannot dodge" }; - case CREATURE_FLAG_EXTRA_UNUSED_25: return { "CREATURE_FLAG_EXTRA_UNUSED_25", "CREATURE_FLAG_EXTRA_UNUSED_25", "" }; + case CREATURE_FLAG_EXTRA_MODULE: return { "CREATURE_FLAG_EXTRA_MODULE", "CREATURE_FLAG_EXTRA_MODULE", "Used by module creatures to avoid blizzlike checks." }; case CREATURE_FLAG_EXTRA_UNUSED_26: return { "CREATURE_FLAG_EXTRA_UNUSED_26", "CREATURE_FLAG_EXTRA_UNUSED_26", "" }; case CREATURE_FLAG_EXTRA_UNUSED_27: return { "CREATURE_FLAG_EXTRA_UNUSED_27", "CREATURE_FLAG_EXTRA_UNUSED_27", "" }; case CREATURE_FLAG_EXTRA_UNUSED_28: return { "CREATURE_FLAG_EXTRA_UNUSED_28", "CREATURE_FLAG_EXTRA_UNUSED_28", "" }; @@ -99,7 +99,7 @@ AC_API_EXPORT CreatureFlagsExtra EnumUtils<CreatureFlagsExtra>::FromIndex(size_t case 21: return CREATURE_FLAG_EXTRA_NO_PLAYER_DAMAGE_REQ; case 22: return CREATURE_FLAG_EXTRA_AVOID_AOE; case 23: return CREATURE_FLAG_EXTRA_NO_DODGE; - case 24: return CREATURE_FLAG_EXTRA_UNUSED_25; + case 24: return CREATURE_FLAG_EXTRA_MODULE; case 25: return CREATURE_FLAG_EXTRA_UNUSED_26; case 26: return CREATURE_FLAG_EXTRA_UNUSED_27; case 27: return CREATURE_FLAG_EXTRA_UNUSED_28; @@ -140,7 +140,7 @@ AC_API_EXPORT size_t EnumUtils<CreatureFlagsExtra>::ToIndex(CreatureFlagsExtra v case CREATURE_FLAG_EXTRA_NO_PLAYER_DAMAGE_REQ: return 21; case CREATURE_FLAG_EXTRA_AVOID_AOE: return 22; case CREATURE_FLAG_EXTRA_NO_DODGE: return 23; - case CREATURE_FLAG_EXTRA_UNUSED_25: return 24; + case CREATURE_FLAG_EXTRA_MODULE: return 24; case CREATURE_FLAG_EXTRA_UNUSED_26: return 25; case CREATURE_FLAG_EXTRA_UNUSED_27: return 26; case CREATURE_FLAG_EXTRA_UNUSED_28: return 27; diff --git a/src/server/game/Globals/ObjectMgr.cpp b/src/server/game/Globals/ObjectMgr.cpp index c8fac0b318..161f1d638a 100644 --- a/src/server/game/Globals/ObjectMgr.cpp +++ b/src/server/game/Globals/ObjectMgr.cpp @@ -1189,11 +1189,11 @@ void ObjectMgr::CheckCreatureTemplate(CreatureTemplate const* cInfo) return; } - if (cInfo->GossipMenuId && !(cInfo->npcflag & UNIT_NPC_FLAG_GOSSIP)) + if ((cInfo->GossipMenuId && !(cInfo->npcflag & UNIT_NPC_FLAG_GOSSIP)) && !(cInfo->flags_extra & CREATURE_FLAG_EXTRA_MODULE)) { LOG_ERROR("sql.sql", "Creature (Entry: {}) has assigned gossip menu {}, but npcflag does not include UNIT_NPC_FLAG_GOSSIP (1).", cInfo->Entry, cInfo->GossipMenuId); } - else if (!cInfo->GossipMenuId && (cInfo->npcflag & UNIT_NPC_FLAG_GOSSIP)) + else if ((!cInfo->GossipMenuId && (cInfo->npcflag & UNIT_NPC_FLAG_GOSSIP)) && !(cInfo->flags_extra & CREATURE_FLAG_EXTRA_MODULE)) { LOG_ERROR("sql.sql", "Creature (Entry: {}) has npcflag UNIT_NPC_FLAG_GOSSIP (1), but gossip menu is unassigned.", cInfo->Entry); } |