Scripts/Misc: Fix some MovementInform handler filters after recent motionmaster changes

Also correct year of SQL in dbbac0bdaa
This commit is contained in:
Machiavelli
2012-01-15 15:27:43 +01:00
parent f203da224e
commit b02666213c
5 changed files with 16 additions and 10 deletions
+2 -2
View File
@@ -368,7 +368,7 @@ void MotionMaster::MoveJump(float x, float y, float z, float speedXY, float spee
Mutate(new EffectMovementGenerator(id), MOTION_SLOT_CONTROLLED); Mutate(new EffectMovementGenerator(id), MOTION_SLOT_CONTROLLED);
} }
void MotionMaster::MoveFall() void MotionMaster::MoveFall(uint32 id/*=0*/)
{ {
// use larger distance for vmap height search than in most other cases // use larger distance for vmap height search than in most other cases
float tz = i_owner->GetMap()->GetHeight(i_owner->GetPositionX(), i_owner->GetPositionY(), i_owner->GetPositionZ(), true, MAX_FALL_DISTANCE); float tz = i_owner->GetMap()->GetHeight(i_owner->GetPositionX(), i_owner->GetPositionY(), i_owner->GetPositionZ(), true, MAX_FALL_DISTANCE);
@@ -387,7 +387,7 @@ void MotionMaster::MoveFall()
init.MoveTo(i_owner->GetPositionX(),i_owner->GetPositionY(),tz); init.MoveTo(i_owner->GetPositionX(),i_owner->GetPositionY(),tz);
init.SetFall(); init.SetFall();
init.Launch(); init.Launch();
Mutate(new EffectMovementGenerator(0), MOTION_SLOT_CONTROLLED); Mutate(new EffectMovementGenerator(id), MOTION_SLOT_CONTROLLED);
} }
void MotionMaster::MoveCharge(float x, float y, float z, float speed, uint32 id) void MotionMaster::MoveCharge(float x, float y, float z, float speed, uint32 id)
+1 -1
View File
@@ -163,7 +163,7 @@ class MotionMaster //: private std::stack<MovementGenerator *>
void MoveKnockbackFrom(float srcX, float srcY, float speedXY, float speedZ); void MoveKnockbackFrom(float srcX, float srcY, float speedXY, float speedZ);
void MoveJumpTo(float angle, float speedXY, float speedZ); void MoveJumpTo(float angle, float speedXY, float speedZ);
void MoveJump(float x, float y, float z, float speedXY, float speedZ, uint32 id = 0); void MoveJump(float x, float y, float z, float speedXY, float speedZ, uint32 id = 0);
void MoveFall(); void MoveFall(uint32 id = 0);
void MoveSeekAssistance(float x, float y, float z); void MoveSeekAssistance(float x, float y, float z);
void MoveSeekAssistanceDistract(uint32 timer); void MoveSeekAssistanceDistract(uint32 timer);
@@ -268,7 +268,7 @@ class boss_sindragosa : public CreatureScript
void MovementInform(uint32 type, uint32 point) void MovementInform(uint32 type, uint32 point)
{ {
if (type != POINT_MOTION_TYPE) if (type != POINT_MOTION_TYPE && type != EFFECT_MOTION_TYPE)
return; return;
switch (point) switch (point)
@@ -94,6 +94,11 @@ enum SvalaPhase
SVALADEAD SVALADEAD
}; };
enum SvalaPoint
{
POINT_FALL_GROUND = 1,
};
#define DATA_INCREDIBLE_HULK 2043 #define DATA_INCREDIBLE_HULK 2043
static const float spectatorWP[2][3] = static const float spectatorWP[2][3] =
@@ -258,16 +263,16 @@ public:
SetCombatMovement(false); SetCombatMovement(false);
me->HandleEmoteCommand(EMOTE_ONESHOT_FLYDEATH); me->HandleEmoteCommand(EMOTE_ONESHOT_FLYDEATH);
me->GetMotionMaster()->MoveFall(); me->GetMotionMaster()->MoveFall(POINT_FALL_GROUND);
} }
} }
void MovementInform(uint32 motionType, uint32 pointId) void MovementInform(uint32 motionType, uint32 pointId)
{ {
if (motionType != POINT_MOTION_TYPE) if (motionType != EFFECT_MOTION_TYPE)
return; return;
if (pointId == 1) if (pointId == POINT_FALL_GROUND)
me->DealDamage(me, me->GetHealth(), NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL, false); me->DealDamage(me, me->GetHealth(), NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL, false);
} }
@@ -288,7 +293,7 @@ public:
Phase = NORMAL; Phase = NORMAL;
SetCombatMovement(true); SetCombatMovement(true);
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 300, true)) if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 300.0f, true))
me->GetMotionMaster()->MoveChase(target); me->GetMotionMaster()->MoveChase(target);
} }
} }
@@ -397,7 +402,8 @@ public:
Phase = NORMAL; Phase = NORMAL;
break; break;
} }
} else introTimer -= diff; }
else introTimer -= diff;
return; return;
} }