diff options
| author | Pesthuf <Paladion@web.de> | 2012-07-28 17:07:05 +0200 |
|---|---|---|
| committer | Pesthuf <Paladion@web.de> | 2012-07-28 17:09:38 +0200 |
| commit | 5acae3253053ea91bb0327adf6eddd864669f80d (patch) | |
| tree | 5fcea3d79172f48e58c89ebaf84e1f9f16f7f316 /src | |
| parent | 2f6583094d6df569176c676bd631cb5e6231e966 (diff) | |
Core/Movement:
When an NPC is knocked back, the splineflag OrientationFixed should be used, so the NPC keeps his facing and doesn't play the jump start animation. Also corrects the NPCs serverside orientation.
Diffstat (limited to 'src')
| -rwxr-xr-x | src/server/game/Movement/MotionMaster.cpp | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/src/server/game/Movement/MotionMaster.cpp b/src/server/game/Movement/MotionMaster.cpp index bc0570bb73b..cde176443f0 100755 --- a/src/server/game/Movement/MotionMaster.cpp +++ b/src/server/game/Movement/MotionMaster.cpp @@ -335,9 +335,17 @@ void MotionMaster::MoveKnockbackFrom(float srcX, float srcY, float speedXY, floa float x, y, z; float moveTimeHalf = speedZ / Movement::gravity; float dist = 2 * moveTimeHalf * speedXY; + float max_height = -Movement::computeFallElevation(moveTimeHalf,false,-speedZ); _owner->GetNearPoint(_owner, x, y, z, _owner->GetObjectSize(), dist, _owner->GetAngle(srcX, srcY) + M_PI); - MoveJump(x, y, z, speedXY, speedZ); + + Movement::MoveSplineInit init(*_owner); + init.MoveTo(x,y,z); + init.SetParabolic(max_height,0); + init.SetOrientationFixed(true); + init.SetVelocity(speedXY); + init.Launch(); + Mutate(new EffectMovementGenerator(0), MOTION_SLOT_CONTROLLED); } void MotionMaster::MoveJumpTo(float angle, float speedXY, float speedZ) |
