* Mostly aimed at removing Log/DatabaseEnv includes from other headers
* Fix most packet headers including other packet headers - moved common structures such as ItemInstance to their own files
* Moved SAI function definitions to source files (massive or requiring many different dependencies)
This #define was originally supposed to be removed in my PR #17832,
but for some reason it remained undeleted. This commit corrects it.
Also aligned all the enum values to the same column for readability,
based on a common multiple of 4 spaces.
(cherry picked from commit 068656af06)
UNIT_FLAG_REMOVE_CLIENT_CONTROL (formerly UNIT_FLAG_DISABLE_MOVE) is a client-only feature that should not be used for NPC scripting. All applications of this flag in scripts/ have been replaced with applications/removals of the UNIT_STATE_ROOT state.
Closes#17311
(cherry picked from commit 061b62a97d)
This PR affects the following 2 quests:
Quest ID 4001 "What Is Going On?" - part 2 (Horde)
Quest ID 4342 "Kharan's Tale" (Alliance)
Target of this PR:
Move core script npc_kharan_mighthammer to DB/SAI
(thereby removing 10 lines of hardcoded text).
* DB/conditions: extra gossip conditions
- added conditions for gossip before quest taken and after quest completed.
- removed redundant core script SAY_GET_ME_OUT_OF_HERE comment
* DB/creature: add more text to Kharan
- add all missing creature_text lines to entry 9021 Kharan Mighthammer
- add SAI duration to wait before TEXT_OVER is triggered (3000 ms)
(cherry picked from commit 2125c12609)
- There's still an overload allowing for x, y, z, o to be passed directly
- Fixed default animstate for GameObject creation in many places, it should be 255, not 100 (checked in sniffs)
(cherry picked from commit 62bfee37cb)
# Conflicts:
# src/server/game/Battlefield/Battlefield.cpp
# src/server/game/Battlegrounds/Battleground.cpp
# src/server/game/Entities/GameObject/GameObject.cpp
# src/server/game/Entities/GameObject/GameObject.h
# src/server/game/Entities/Object/Object.cpp
# src/server/game/Entities/Object/Object.h
# src/server/game/Spells/SpellEffects.cpp
# src/server/scripts/Commands/cs_gobject.cpp
# src/server/scripts/EasternKingdoms/SunkenTemple/instance_sunken_temple.cpp
# src/server/scripts/EasternKingdoms/ZulAman/zulaman.cpp
# src/server/scripts/Kalimdor/zone_feralas.cpp
# src/server/scripts/Northrend/Nexus/EyeOfEternity/boss_malygos.cpp
# src/server/scripts/Northrend/Nexus/EyeOfEternity/instance_eye_of_eternity.cpp
# src/server/scripts/OutdoorPvP/OutdoorPvPSI.cpp
Change log:
- Timers are more accurate
- Corrected Charge ability ID based on 6.x researches
- Added Midnight's missing emotes
- Fixed issue with instance being stuck in combat in case of wipes
- Solved the rare scenario where Attumen would be summoned multiple times
- Visual spell on 3rd phase transition added
- Attumen and Midnight can now be damaged during 3rd phase transition
- Midnight calls for the aid of every horse still alive in the stables
- Use proper spells to summon Attumen and handle transitions
- Now despawns on evade
Video of encounter after changes: https://www.youtube.com/watch?v=KX0rqaBeSzw
(cherry picked from commit 4c4d92faa3)
Scripts/Karazhan: Fix a warning
(cherry picked from commit 0cc33b5a42)
Scripts/Karazhan: Register Midnight's summons
* Solves issue with bosses not despawning after encounter
(cherry picked from commit 2d0fa2d020)
- remove hardcoded (and wrong) text from the script
- copy valid text from broadcast_text to gossip_menu_option
- gossip_menu / npc_text is already correct in TDB 335.61
- sort + clean up core script enum list and add new entries
- keep gossip handling unchanged in the script (low prio)
(cherry picked from commit 582af02509)
Core/Scripts/DB: move npc_gregan_brewspewer to DB
- Remove npc_gregan_brewspewer, thereby removing hardcoded text
`#define GOSSIP_HELLO "Buy somethin', will ya?"`
- Move all gossip handling to DB (gossip texts already exist in TDB)
(cherry picked from commit 3acf6f36d1)
Core/Scripts: npc_grandmother gossip text moved to DB
Removing one more hardcoded text line from core scripts.
Also adding correct gossip to the npc_grandmother script.
Gossip changes in this script:
- remove hardcoded text from core script
- use existing npc_text IDs in gossip enum
- add missing text rows to gossip_menu_option
- use values from gossip_menu_option in enum
- replace spawn coordinates 0.0f with GetPosition()
(cherry picked from commit c214f987d7)
Core/Scripts: remove hardcoded text from npc_locksmith
- remove hardcoded text from script
- move the gossip handling to DB SQL
- move the script conditions to DB SQL
- use correct gossip from broadcast_text
- remove options not existing in broadcast_text
- add Key to Searing Gorge option (related spell)
- add The Eye of Haramad option (related spell)
(cherry picked from commit e6ee6e2ae8)
2 more text lines removed in the ongoing series:
"Remove hardcoded text from core scripts".
Core script for boss Majordomo Executus:
- add missing gossip_menu_option entries
- link the options via the table gossip_menu
- remove hardcoded text from the script
- minor enum line order sorting cleanup
- replace OnGossipSelect() with sGossipSelect()
The scripted events are unchanged.
If the script is inaccurate, make a new PR.
(cherry picked from commit b6d43623a2)