diff options
author | jackpoz <giacomopoz@gmail.com> | 2014-04-20 14:58:24 +0200 |
---|---|---|
committer | jackpoz <giacomopoz@gmail.com> | 2014-04-20 15:02:19 +0200 |
commit | e830225b213b4a757e40df653d5f18dfc8fb9e21 (patch) | |
tree | f1d075e7cbdc7472a2b83dc86a25540282353816 | |
parent | fc538c5088e52f0932f74f190cd6499fd6da8a9c (diff) |
Core/Misc: Fix change faction on dead Night Elves keeping the speed buff
Fix change faction on dead Night Elves causing the new player keeping the 175% wisp speed buff.
Players will be resurrected automatically on change faction.
Closes #255
-rw-r--r-- | src/server/game/Entities/Player/Player.cpp | 5 | ||||
-rw-r--r-- | src/server/game/Handlers/CharacterHandler.cpp | 3 |
2 files changed, 6 insertions, 2 deletions
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index 13635424cf0..8dc12c2ddb3 100644 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -5149,8 +5149,9 @@ void Player::ResurrectPlayer(float restore_percent, bool applySickness) // remove death flag + set aura SetByteValue(UNIT_FIELD_BYTES_1, 3, 0x00); - if (getRace() == RACE_NIGHTELF) - RemoveAurasDueToSpell(20584); // speed bonuses + + // This must be called always even on Players with race != RACE_NIGHTELF in case of faction change + RemoveAurasDueToSpell(20584); // RACE_NIGHTELF speed bonuses RemoveAurasDueToSpell(8326); // SPELL_AURA_GHOST if (GetSession()->IsARecruiter() || (GetSession()->GetRecruiterId() != 0)) diff --git a/src/server/game/Handlers/CharacterHandler.cpp b/src/server/game/Handlers/CharacterHandler.cpp index f9a5ec2d53b..f4ea4971190 100644 --- a/src/server/game/Handlers/CharacterHandler.cpp +++ b/src/server/game/Handlers/CharacterHandler.cpp @@ -1768,6 +1768,9 @@ void WorldSession::HandleCharFactionOrRaceChange(WorldPacket& recvData) } } + // resurrect the character in case he's dead + sObjectAccessor->ConvertCorpseForPlayer(guid); + CharacterDatabase.EscapeString(newname); Player::Customize(guid, gender, skin, face, hairStyle, hairColor, facialHair); SQLTransaction trans = CharacterDatabase.BeginTransaction(); |