aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sql/updates/world/master/2025_11_12_00_world.sql8
-rw-r--r--src/server/game/Globals/ObjectMgr.cpp3
2 files changed, 11 insertions, 0 deletions
diff --git a/sql/updates/world/master/2025_11_12_00_world.sql b/sql/updates/world/master/2025_11_12_00_world.sql
new file mode 100644
index 00000000000..8476583c765
--- /dev/null
+++ b/sql/updates/world/master/2025_11_12_00_world.sql
@@ -0,0 +1,8 @@
+-- CREATURE_STATIC_FLAG_4_PREVENT_SWIM
+UPDATE `creature_template_difficulty` ctd
+LEFT JOIN `creature_template` AS ct ON ct.`entry`=ctd.`Entry`
+SET ctd.`StaticFlags4`= ctd.`StaticFlags4` | 0x01000000
+WHERE (ct.`unit_flags2` & 0x01000000) != 0 AND ct.`entry` != 48182;
+
+UPDATE `creature_template` SET `unit_flags2`= `unit_flags2` &~ 0x01000000;
+UPDATE `creature_template_difficulty` SET `StaticFlags4`=`StaticFlags4` | 0x01000000 WHERE `Entry` IN (60292,55996,54470,54199,54192,53772,53740,50748,50741,50051,39943,42102,41610,41595,63172,63201,63356,64055,67057,73166);
diff --git a/src/server/game/Globals/ObjectMgr.cpp b/src/server/game/Globals/ObjectMgr.cpp
index 1b9857defad..59ffb63a4b0 100644
--- a/src/server/game/Globals/ObjectMgr.cpp
+++ b/src/server/game/Globals/ObjectMgr.cpp
@@ -1638,6 +1638,9 @@ void ObjectMgr::ChooseCreatureFlags(CreatureTemplate const* cInfo, uint64* npcFl
if (staticFlags.HasFlag(CREATURE_STATIC_FLAG_3_CANNOT_TURN))
*unitFlags2 |= UNIT_FLAG2_CANNOT_TURN;
+ if (staticFlags.HasFlag(CREATURE_STATIC_FLAG_4_PREVENT_SWIM))
+ *unitFlags2 |= UNIT_FLAG2_AI_WILL_ONLY_SWIM_IF_TARGET_SWIMS;
+
if (staticFlags.HasFlag(CREATURE_STATIC_FLAG_5_INTERACT_WHILE_HOSTILE))
*unitFlags2 |= UNIT_FLAG2_INTERACT_WHILE_HOSTILE;
}