[0161] Merge mangos changes. Author: @kid10

Fix some corresponding opcodes

Signed-off-by: Yaki Khadafi <ElSolDolLo@gmail.com>
This commit is contained in:
Yaki Khadafi 2012-08-23 15:21:03 +03:00 committed by Antz
parent e90caf7349
commit 3f0db2fbda
6 changed files with 79 additions and 50 deletions

View file

@ -4447,28 +4447,17 @@ void Player::DeleteOldCharacters(uint32 keepDays)
}
}
void Player::SetMovement(PlayerMovementType pType)
void Player::SetRoot(bool enable)
{
WorldPacket data;
switch (pType)
{
case MOVE_ROOT:
case MOVE_UNROOT:
{
BuildForceMoveRootPacket(&data, pType == MOVE_ROOT, 0);
break;
}
case MOVE_WATER_WALK:
case MOVE_LAND_WALK:
{
BuildMoveWaterWalkPacket(&data, pType == MOVE_WATER_WALK, 0);
break;
}
default:
sLog.outError("Player::SetMovement: Unsupported move type (%d), data not sent to client.", pType);
return;
}
BuildForceMoveRootPacket(&data, enable, 0);
GetSession()->SendPacket(&data);
}
void Player::SetWaterWalk(bool enable)
{
WorldPacket data;
BuildMoveWaterWalkPacket(&data, enable, 0);
GetSession()->SendPacket(&data);
}
@ -4509,9 +4498,9 @@ void Player::BuildPlayerRepop()
// convert player body to ghost
SetHealth(1);
SetMovement(MOVE_WATER_WALK);
SetWaterWalk(true);
if (!GetSession()->isLogingOut())
SetMovement(MOVE_UNROOT);
SetRoot(false);
// BG - remove insignia related
RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_SKINNABLE);
@ -4547,8 +4536,8 @@ void Player::ResurrectPlayer(float restore_percent, bool applySickness)
RemoveAurasDueToSpell(20584); // speed bonuses
RemoveAurasDueToSpell(8326); // SPELL_AURA_GHOST
SetMovement(MOVE_LAND_WALK);
SetMovement(MOVE_UNROOT);
SetWaterWalk(false);
SetRoot(false);
m_deathTimer = 0;
@ -4601,7 +4590,7 @@ void Player::ResurrectPlayer(float restore_percent, bool applySickness)
void Player::KillPlayer()
{
SetMovement(MOVE_ROOT);
SetRoot(true);
StopMirrorTimers(); // disable timers(bars)
@ -20483,7 +20472,7 @@ void Player::SendInitialPacketsAfterAddToMap()
}
if (HasAuraType(SPELL_AURA_MOD_STUN))
SetMovement(MOVE_ROOT);
SetRoot(true);
// manual send package (have code in ApplyModifier(true,true); that don't must be re-applied.
if (HasAuraType(SPELL_AURA_MOD_ROOT))