- Migrate boundary logic to Maps/AreaBoundary instead of having it sit in InstanceScript (to possibly allow use for other purposes).
- Implement the first five boundary types in Maps/AreaBoundary.cpp.
- Add boundary checks to Creature's update logic
- Add boundary data for all Northrend raids
- Add boundary initialization structures and methods to InstanceScript
- Modify EnterEvadeMode signature. It now passes a value from the EvadeReason enum as parameter to allow special casing depending on evade reason
- Remove previous (weird) boundary code that had them linked to GO spawns
Removing hardcoded text from the core script and into the DB:
"I am ready for the illusion, Myranda."
This quest is 3.3.5 *only*. Removed in patch 4.0.3a.
Addendum: enum ILLUSION_GOSSIP = 4773 , instead of "magic number".
Another attempt to shorten the list of hardcoded gossip menu options.
This is the gossip menu option of the NPC ID 28406, Death Knight Initiate
in Death's Breach in the Scarlet Enclave, the death knight starting area.
This gossip is tied to the quest "Death's Challenge".
Removing this text in the core script: "I challenge you, death knight!"
(#define GOSSIP_ACCEPT_DUEL) and using `ADD_GOSSIP_ITEM_DB()`
to pull the gossip_menu_option 9765 from the database instead.
Getting rid of one more incorrect and hardcoded text
which now will be read correct and from the DB instead.
Wrong text: "Thanks, I'll follow you to the door." (core)
Correct text: "Please unlock the courtyard door." (DB)
Thanks to @Aokromes, @r00ty, @velinath, @Nayd, @Treeston, @Zedron
and lots of other regular TrinityCore developers and members for the
inspiration and motivation, as well as helpfulness along the way.
* was caused through invoking "FindMySQL" after using ${MYSQL_EXECUTABLE}.
* better re-run CMake if you are affected by the mysql exe wasn't found issue.
(cherry picked from commit 45a60c2d22)
Conflicts:
CMakeLists.txt
Core/Spells: Cooldown updates
Core/Player: implement ResetCoolDownAfterDuel configurable feature
Core/Player rewritten duel CD reset system
Core/Spells: fixed some rare stealth/prowl visual bugs after duel cd reset
Core/Spells: Improved spell category cooldown handling
* Category cooldown is stored with the spell that started the cooldown (and only resetting cooldown on that spell will clear cooldowns on entire category - this fully mirrors client behavior)
* This significantly reduces the amount of data saved to database for cooldowns
* Spell casts from items that have a different category specified than on spell will now check for cooldown during the cast
Core/Misc: Warning fix
Scripts/DuelReset:
- impemented health and mana reset
- do not reset anything when duel is interrupted
Scripts/DuelReset:
- fixed druid mana restoration
- fixed bug when a player accepts duel with a spel on onHold true (like when stealth of rogue/druid is active)
Core/Spells: Fixed Raise Dead cooldown
Core/Spells: Fixed typo in ecbbcc8972
Core/Spell: fixed possible exploit in Duel Reset script
- thanks @Runico for reporting it
Scripts/DuelReset:
- do not reset when duel is fled
- minor improvement to SpellHistory::RestoreCooldonStateAfter duel method
Fix crash happening when a player would kill a Melee npc on the disks during Malygos fight and mount it before it ended the waypoint path.
Close#15900
(cherry picked from commit 6e296ddaa2)
* Fixes name displaying as "Unknown"
(cherry picked from commit 45994a177c)
(cherry picked from commit c7bad70e55)
Conflicts:
src/server/game/Entities/Player/Player.cpp
src/server/game/Entities/Player/Player.h
Always allow accounts with RBAC_PERM_COMMAND_GM to enter instances on login even if player had .gm off .
Send an ingame message to notify the user about the avoided kick.
(cherry picked from commit 5f917e2286)
Conflicts:
src/server/game/Entities/Player/Player.cpp
- Fix a bug where a player could maintain a conflicting non-perm solo bind if they were in the instance when invited to group. Closes#16150.
- If a group is created while the leader is in an instance that nobody is bound to, the group will take over the instance and bind to it. This stops the homebind timer when reforming group after disconnects and the like.
(cherry picked from commit 0f0a51b87a)
- Rename Map::CanEnter to Map::CannotEnter. Return value changed from boolean (true means player can enter) to enum Map::EnterState (CAN_ENTER=0 means player can enter, any other value is a reason for deny).
- Move hack-y player error messages from within Map::CanEnter to the function calling CanEnter as appropriate (primarily WorldSession::HandleAreaTriggerOpcode).
- Modify WorldSession::HandleAreaTriggerOpcode to properly revive the player upon touching the portal leading to the instance they died in even if they are currently unable to zone in. Fixes and closes#15758.
- Modify Player::LoadFromDB to properly spawn players in the instance they logged off in if possible. Fixes and closes#15561.
- Modify permanent save behavior to be blizzlike: Players can always enter an instance they are saved to (assuming there are no map constraints against it), but get a homebind timer if the instance is already in use.
(cherry picked from commit 43fa7d48a5)
Conflicts:
src/server/game/Entities/Player/Player.cpp
src/server/game/Entities/Player/Player.h
src/server/game/Maps/Map.cpp
src/server/game/Maps/MapInstanced.cpp
src/server/game/Miscellaneous/Language.h