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
Including the weird quirks.
Changes:
* Deposit caculated according to same rule as client. (detailed below). Should always match client deposit now
* Deposit for multiple auctions now only collected once. Deferred calculation of deposit until all auctions listed.
Deposit calculation is as follows:
Base deposit calculation = MSV x 15/75% (depending on AH). However this is not rounded. Case to int is used (so always round down)
The remainder is held in a float.
The base is then multiplied by number of items, and the time multiplier (x2 for 24 hour, x4 for 48 hour)
The nearest (no of items or lower) no of items when multiplied by the remainder that creates a whole number is then multiplied by the time multiplier (x1/x2/x4) and then added to deposit.
Example:
Item sell price 1s25. Deposit 18.75c (15% of 1s25). So base deposit = 18, remainder 0.75. Time 24h (x2) Item count 1 = 36c. Remainder = 0.75 (n) Min = 1s. Deposit 1s
Item sell price 1s25. Deposit 18.75c (15% of 1s25). So base deposit = 18, remainder 0.75. Time 24h (x2) Item count 2 = 72c. Remainder = 1.50 (n) Min = 1s. Deposit 1s
Item sell price 1s25. Deposit 18.75c (15% of 1s25). So base deposit = 18, remainder 0.75. Time 24h (x2) Item count 3 = 108c. Remainder = 2.25 (n) Min = 1s. Deposit 1s08c
Item sell price 1s25. Deposit 18.75c (15% of 1s25). So base deposit = 18, remainder 0.75. Time 24h (x2) Item count 4 = 144c. Remainder = 3.00 (n) Min = 1s. Deposit 1s50c (144c + (3c * 2))
Horrible kludge, to re-create a very weird deposit method.
Closes#15674 (PR)
Closes#15643 (Issue)
(cherry picked from commit 0ac442f19f)
Conflicts:
src/server/game/AuctionHouse/AuctionHouseMgr.h
- Stop storing guid for auctioneer.
- Store instead house ID
- No separate ID for various houses. Only Horde, Alliance and Neutral.
- Removed non-needed faction checks.
- Use enum for auction house IDs
NOTE: This will expire all current auctions and return item to player (or
award to high bidder) in order to prepare database for the changes.
(cherry-picked from commit 01ae5c4bf6)
Conflicts:
sql/base/characters_database.sql
src/server/game/AuctionHouseBot/AuctionHouseBotSeller.cpp
src/server/game/Handlers/AuctionHouseHandler.cpp
Fix confusing NULL checks in Raise Ally check cast.
Fix a crash in Raise Ally triggered by executing ".cast back 61999" command targeting a pet in raid while being dead.
thx @Nayd for sniffs :)
thx @Shauren for helping to find all spell involved
* There is no implementation for stats update on Puppet class (only on Guardian) so same SummonProperty as Raise Dead Ghoul (non pet) is used.
(Default SummonProperties set category to SUMMON_CATEGORY_PUPPET)
* Override the Summon Effect to enable charm and stats scaling.
* PlayerAI is used to handle unaura on ghoul despawn or dead.
It's necessary due to the fact that all script hooks on ScriptedCreature are called on an unactive CreatureAI, resulting in creature being unable to handle unaura calls.
* Create UpdateAI call for Player class
* Stats scaling is based on forum and wowhead comments, they recall this ghoul as a copy of the other one (same stats).
* Spellscript for Ghoul spell Thrash
Closes#82Closes#14830