mirror of
https://github.com/mangosfour/server.git
synced 2025-12-12 10:37:03 +00:00
Unify changing movement style for Units
This commit is contained in:
parent
b81725c43c
commit
56674de682
7 changed files with 698 additions and 785 deletions
|
|
@ -764,7 +764,7 @@ void WorldSession::HandlePlayerLogin(LoginQueryHolder *holder)
|
|||
pCurrChar->CastSpell(pCurrChar, 20584, true); // auras SPELL_AURA_INCREASE_SPEED(+speed in wisp form), SPELL_AURA_INCREASE_SWIM_SPEED(+swim speed in wisp form), SPELL_AURA_TRANSFORM (to wisp form)
|
||||
pCurrChar->CastSpell(pCurrChar, 8326, true); // auras SPELL_AURA_GHOST, SPELL_AURA_INCREASE_SPEED(why?), SPELL_AURA_INCREASE_SWIM_SPEED(why?)
|
||||
|
||||
pCurrChar->SetMovement(MOVE_WATER_WALK);
|
||||
pCurrChar->SetWaterWalk(true);
|
||||
}
|
||||
|
||||
pCurrChar->ContinueTaxiFlight();
|
||||
|
|
|
|||
|
|
@ -2554,7 +2554,32 @@ void Creature::SetLevitate(bool enable)
|
|||
m_movementInfo.AddMovementFlag(MOVEFLAG_LEVITATING);
|
||||
else
|
||||
m_movementInfo.RemoveMovementFlag(MOVEFLAG_LEVITATING);
|
||||
|
||||
WorldPacket data(enable ? SMSG_SPLINE_MOVE_GRAVITY_DISABLE : SMSG_SPLINE_MOVE_GRAVITY_ENABLE, 9);
|
||||
data << GetPackGUID();
|
||||
SendMessageToSet(&data, true);
|
||||
}
|
||||
|
||||
void Creature::SetRoot(bool enable)
|
||||
{
|
||||
if (enable)
|
||||
m_movementInfo.AddMovementFlag(MOVEFLAG_ROOT);
|
||||
else
|
||||
m_movementInfo.RemoveMovementFlag(MOVEFLAG_ROOT);
|
||||
|
||||
WorldPacket data(enable ? SMSG_SPLINE_MOVE_ROOT : SMSG_SPLINE_MOVE_UNROOT, 9);
|
||||
data << GetPackGUID();
|
||||
SendMessageToSet(&data, true);
|
||||
}
|
||||
|
||||
void Creature::SetWaterWalk(bool enable)
|
||||
{
|
||||
if (enable)
|
||||
m_movementInfo.AddMovementFlag(MOVEFLAG_WATERWALKING);
|
||||
else
|
||||
m_movementInfo.RemoveMovementFlag(MOVEFLAG_WATERWALKING);
|
||||
|
||||
WorldPacket data(enable ? SMSG_SPLINE_MOVE_WATER_WALK : SMSG_SPLINE_MOVE_LAND_WALK, 9);
|
||||
data << GetPackGUID();
|
||||
SendMessageToSet(&data, true);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -535,6 +535,8 @@ class MANGOS_DLL_SPEC Creature : public Unit
|
|||
|
||||
void SetWalk(bool enable);
|
||||
void SetLevitate(bool enable);
|
||||
void SetRoot(bool enable) override;
|
||||
void SetWaterWalk(bool enable) override;
|
||||
|
||||
uint32 GetShieldBlockValue() const override // dunno mob block value
|
||||
{
|
||||
|
|
|
|||
|
|
@ -4998,9 +4998,9 @@ bool ChatHandler::HandleWaterwalkCommand(char* args)
|
|||
return false;
|
||||
|
||||
if (value)
|
||||
player->SetMovement(MOVE_WATER_WALK); // ON
|
||||
player->SetWaterWalk(true); // ON
|
||||
else
|
||||
player->SetMovement(MOVE_LAND_WALK); // OFF
|
||||
player->SetWaterWalk(false); // OFF
|
||||
|
||||
PSendSysMessage(LANG_YOU_SET_WATERWALK, args, GetNameLink(player).c_str());
|
||||
if (needReportToTarget(player))
|
||||
|
|
|
|||
1345
src/game/Player.cpp
1345
src/game/Player.cpp
File diff suppressed because it is too large
Load diff
|
|
@ -401,14 +401,6 @@ enum RaidGroupError
|
|||
ERR_RAID_GROUP_REQUIREMENTS_UNMATCH = 4
|
||||
};
|
||||
|
||||
enum PlayerMovementType
|
||||
{
|
||||
MOVE_ROOT = 1,
|
||||
MOVE_UNROOT = 2,
|
||||
MOVE_WATER_WALK = 3,
|
||||
MOVE_LAND_WALK = 4
|
||||
};
|
||||
|
||||
enum DrunkenState
|
||||
{
|
||||
DRUNKEN_SOBER = 0,
|
||||
|
|
@ -1899,7 +1891,8 @@ class MANGOS_DLL_SPEC Player : public Unit
|
|||
StopMirrorTimer(FIRE_TIMER);
|
||||
}
|
||||
|
||||
void SetMovement(PlayerMovementType pType);
|
||||
void SetRoot(bool enable) override;
|
||||
void SetWaterWalk(bool enable) override;
|
||||
|
||||
void JoinedChannel(Channel* c);
|
||||
void LeftChannel(Channel* c);
|
||||
|
|
|
|||
|
|
@ -1459,8 +1459,12 @@ class MANGOS_DLL_SPEC Unit : public WorldObject
|
|||
// recommend use MonsterMove/MonsterMoveWithSpeed for most case that correctly work with movegens
|
||||
// if used additional args in ... part then floats must explicitly casted to double
|
||||
void SendHeartBeat();
|
||||
bool IsLevitating() const { return m_movementInfo.HasMovementFlag(MOVEFLAG_LEVITATING);}
|
||||
bool IsWalking() const { return m_movementInfo.HasMovementFlag(MOVEFLAG_WALK_MODE);}
|
||||
|
||||
bool IsLevitating() const { return m_movementInfo.HasMovementFlag(MOVEFLAG_LEVITATING); }
|
||||
bool IsWalking() const { return m_movementInfo.HasMovementFlag(MOVEFLAG_WALK_MODE); }
|
||||
bool IsRooted() const { return m_movementInfo.HasMovementFlag(MOVEFLAG_ROOT); }
|
||||
virtual void SetRoot(bool enabled) {}
|
||||
virtual void SetWaterWalk(bool enabled) {}
|
||||
|
||||
void SetInFront(Unit const* target);
|
||||
void SetFacingTo(float ori);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue