Core/Auras: Implemented SPELL_AURA_PREVENT_RESSURECTION
This commit is contained in:
@@ -831,7 +831,7 @@ Player::Player (WorldSession *session): Unit(), m_achievementMgr(this), m_reputa
|
||||
|
||||
m_lastFallTime = 0;
|
||||
m_lastFallZ = 0;
|
||||
|
||||
|
||||
m_grantableLevels = 0;
|
||||
|
||||
m_ControlledByPlayer = true;
|
||||
@@ -1751,7 +1751,7 @@ void Player::Update(uint32 p_time)
|
||||
}
|
||||
|
||||
// not auto-free ghost from body in instances
|
||||
if (m_deathTimer > 0 && !GetBaseMap()->Instanceable())
|
||||
if (m_deathTimer > 0 && !GetBaseMap()->Instanceable() && !HasAuraType(SPELL_AURA_PREVENT_RESSURECTION))
|
||||
{
|
||||
if (p_time >= m_deathTimer)
|
||||
{
|
||||
@@ -5165,7 +5165,8 @@ bool Player::FallGround(uint8 FallMode)
|
||||
|
||||
void Player::KillPlayer()
|
||||
{
|
||||
if (IsFlying() && !GetTransport()) FallGround();
|
||||
if (IsFlying() && !GetTransport())
|
||||
FallGround();
|
||||
|
||||
SetMovement(MOVE_ROOT);
|
||||
|
||||
@@ -5175,10 +5176,10 @@ void Player::KillPlayer()
|
||||
//SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_IN_PVP);
|
||||
|
||||
SetUInt32Value(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_NONE);
|
||||
ApplyModFlag(PLAYER_FIELD_BYTES, PLAYER_FIELD_BYTE_RELEASE_TIMER, !sMapStore.LookupEntry(GetMapId())->Instanceable());
|
||||
ApplyModFlag(PLAYER_FIELD_BYTES, PLAYER_FIELD_BYTE_RELEASE_TIMER, !sMapStore.LookupEntry(GetMapId())->Instanceable() && !HasAuraType(SPELL_AURA_PREVENT_RESSURECTION));
|
||||
|
||||
// 6 minutes until repop at graveyard
|
||||
m_deathTimer = 6*MINUTE*IN_MILLISECONDS;
|
||||
m_deathTimer = 6 * MINUTE * IN_MILLISECONDS;
|
||||
|
||||
UpdateCorpseReclaimDelay(); // dependent at use SetDeathPvP() call before kill
|
||||
SendCorpseReclaimDelay();
|
||||
|
||||
Reference in New Issue
Block a user