aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjackpoz <giacomopoz@gmail.com>2014-04-20 14:58:24 +0200
committerjackpoz <giacomopoz@gmail.com>2014-04-20 15:02:19 +0200
commite830225b213b4a757e40df653d5f18dfc8fb9e21 (patch)
treef1d075e7cbdc7472a2b83dc86a25540282353816
parentfc538c5088e52f0932f74f190cd6499fd6da8a9c (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.cpp5
-rw-r--r--src/server/game/Handlers/CharacterHandler.cpp3
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();