fix(Scripts/Instances): fix some bosses flying animations (#7851)

- Closes #4900
This commit is contained in:
UltraNix
2021-10-10 00:58:19 +02:00
committed by GitHub
parent 0eec867c3b
commit 80570efc29
4 changed files with 19 additions and 35 deletions

View File

@@ -0,0 +1,4 @@
INSERT INTO `version_db_world` (`sql_rev`) VALUES ('1631550138111515600');
UPDATE `creature_template` SET `InhabitType`=3 WHERE `entry` IN (28859,31734,33186,33724,36853,38265,38266,38267,37534,38219,37533,38220);
UPDATE `creature_template_addon` SET `bytes1`=0 WHERE `entry` IN (28859,31734,33186,33724,36853,38265,38266,38267,37534,38219,37533,38220);

View File

@@ -294,7 +294,6 @@ public:
if (!_summoned) if (!_summoned)
{ {
me->SetCanFly(true);
me->SetDisableGravity(true); me->SetDisableGravity(true);
} }
} }
@@ -366,7 +365,6 @@ public:
instance->SetBossState(DATA_SINDRAGOSA, FAIL); instance->SetBossState(DATA_SINDRAGOSA, FAIL);
if (_summoned) if (_summoned)
{ {
me->SetCanFly(false);
me->SetDisableGravity(false); me->SetDisableGravity(false);
} }
} }
@@ -407,7 +405,6 @@ public:
return; return;
me->setActive(true); me->setActive(true);
me->SetCanFly(true);
me->SetDisableGravity(true); me->SetDisableGravity(true);
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
me->SetSpeed(MOVE_RUN, 4.28571f); me->SetSpeed(MOVE_RUN, 4.28571f);
@@ -434,7 +431,6 @@ public:
{ {
case POINT_FROSTWYRM_LAND: case POINT_FROSTWYRM_LAND:
me->setActive(false); me->setActive(false);
me->SetCanFly(false);
me->SetDisableGravity(false); me->SetDisableGravity(false);
me->SetSpeed(MOVE_RUN, me->GetCreatureTemplate()->speed_run); me->SetSpeed(MOVE_RUN, me->GetCreatureTemplate()->speed_run);
me->SetHomePosition(SindragosaLandPos); me->SetHomePosition(SindragosaLandPos);
@@ -462,7 +458,6 @@ public:
case POINT_LAND_GROUND: case POINT_LAND_GROUND:
{ {
_isInAirPhase = false; _isInAirPhase = false;
me->SetCanFly(false);
me->SetDisableGravity(false); me->SetDisableGravity(false);
me->SetSpeed(MOVE_RUN, me->GetCreatureTemplate()->speed_run); me->SetSpeed(MOVE_RUN, me->GetCreatureTemplate()->speed_run);
me->SetReactState(REACT_AGGRESSIVE); me->SetReactState(REACT_AGGRESSIVE);
@@ -612,9 +607,7 @@ public:
me->AttackStop(); me->AttackStop();
me->GetMotionMaster()->MoveIdle(); me->GetMotionMaster()->MoveIdle();
me->StopMoving(); me->StopMoving();
me->SetCanFly(true);
me->SetDisableGravity(true); me->SetDisableGravity(true);
me->SendMovementFlagUpdate();
me->GetMotionMaster()->MoveTakeoff(POINT_TAKEOFF, me->GetPositionX(), me->GetPositionY(), me->GetPositionZ() + 20.0f, 10.0f); me->GetMotionMaster()->MoveTakeoff(POINT_TAKEOFF, me->GetPositionX(), me->GetPositionY(), me->GetPositionZ() + 20.0f, 10.0f);
events.CancelEventGroup(EVENT_GROUP_LAND_PHASE); events.CancelEventGroup(EVENT_GROUP_LAND_PHASE);
events.ScheduleEvent(EVENT_AIR_PHASE, 110000); events.ScheduleEvent(EVENT_AIR_PHASE, 110000);
@@ -1402,7 +1395,6 @@ public:
if (!_summoned) if (!_summoned)
{ {
me->SetCanFly(true);
me->SetDisableGravity(true); me->SetDisableGravity(true);
} }
} }
@@ -1412,7 +1404,6 @@ public:
ScriptedAI::JustReachedHome(); ScriptedAI::JustReachedHome();
if (_summoned) if (_summoned)
{ {
me->SetCanFly(false);
me->SetDisableGravity(false); me->SetDisableGravity(false);
} }
} }
@@ -1456,7 +1447,6 @@ public:
return; return;
me->setActive(false); me->setActive(false);
me->SetCanFly(false);
me->SetDisableGravity(false); me->SetDisableGravity(false);
me->SetHomePosition(SpinestalkerLandPos); me->SetHomePosition(SpinestalkerLandPos);
me->SetFacingTo(SpinestalkerLandPos.GetOrientation()); me->SetFacingTo(SpinestalkerLandPos.GetOrientation());
@@ -1536,7 +1526,6 @@ public:
if (!_summoned) if (!_summoned)
{ {
me->SetCanFly(true);
me->SetDisableGravity(true); me->SetDisableGravity(true);
} }
} }
@@ -1546,7 +1535,6 @@ public:
ScriptedAI::JustReachedHome(); ScriptedAI::JustReachedHome();
if (_summoned) if (_summoned)
{ {
me->SetCanFly(false);
me->SetDisableGravity(false); me->SetDisableGravity(false);
} }
} }
@@ -1592,7 +1580,6 @@ public:
if (point == POINT_FROSTWYRM_LAND) if (point == POINT_FROSTWYRM_LAND)
{ {
me->setActive(false); me->setActive(false);
me->SetCanFly(false);
me->SetDisableGravity(false); me->SetDisableGravity(false);
me->SetHomePosition(RimefangLandPos); me->SetHomePosition(RimefangLandPos);
me->SetFacingTo(RimefangLandPos.GetOrientation()); me->SetFacingTo(RimefangLandPos.GetOrientation());
@@ -1600,7 +1587,6 @@ public:
} }
else if (point == POINT_LAND_GROUND) else if (point == POINT_LAND_GROUND)
{ {
me->SetCanFly(false);
me->SetDisableGravity(false); me->SetDisableGravity(false);
me->SetReactState(REACT_DEFENSIVE); me->SetReactState(REACT_DEFENSIVE);
if (Unit* victim = me->SelectVictim()) if (Unit* victim = me->SelectVictim())
@@ -1644,9 +1630,7 @@ public:
me->SendMeleeAttackStop(me->GetVictim()); me->SendMeleeAttackStop(me->GetVictim());
me->AttackStop(); me->AttackStop();
me->SetCanFly(true);
me->SetDisableGravity(true); me->SetDisableGravity(true);
me->SendMovementFlagUpdate();
float floorZ = me->GetMapHeight(me->GetPositionX(), me->GetPositionY(), me->GetPositionZ()); float floorZ = me->GetMapHeight(me->GetPositionX(), me->GetPositionY(), me->GetPositionZ());
float destZ; float destZ;
if (floorZ > 190.0f) destZ = floorZ + 25.0f; if (floorZ > 190.0f) destZ = floorZ + 25.0f;

View File

@@ -219,6 +219,12 @@ public:
uint8 IntroCounter; uint8 IntroCounter;
bool bLockHealthCheck; bool bLockHealthCheck;
void InitializeAI() override
{
me->SetDisableGravity(true);
Reset();
}
void Reset() override void Reset() override
{ {
events.Reset(); events.Reset();
@@ -233,9 +239,6 @@ public:
me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_NONE); me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_NONE);
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_PACIFIED); me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_PACIFIED);
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISABLE_MOVE); me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISABLE_MOVE);
me->SetCanFly(true);
me->SetDisableGravity(true);
me->SendMovementFlagUpdate();
if (pInstance) if (pInstance)
{ {
@@ -287,7 +290,6 @@ public:
switch (id) switch (id)
{ {
case MI_POINT_INTRO_LAND: case MI_POINT_INTRO_LAND:
me->SetCanFly(false);
me->SetDisableGravity(false); me->SetDisableGravity(false);
events.RescheduleEvent(EVENT_START_FIGHT, 0, 1); events.RescheduleEvent(EVENT_START_FIGHT, 0, 1);
break; break;
@@ -295,7 +297,6 @@ public:
events.RescheduleEvent(EVENT_VORTEX_FLY_TO_CENTER, 0, 1); events.RescheduleEvent(EVENT_VORTEX_FLY_TO_CENTER, 0, 1);
break; break;
case MI_POINT_VORTEX_LAND: case MI_POINT_VORTEX_LAND:
me->SetCanFly(false);
me->SetDisableGravity(false); me->SetDisableGravity(false);
events.RescheduleEvent(EVENT_VORTEX_LAND_1, 0, 1); events.RescheduleEvent(EVENT_VORTEX_LAND_1, 0, 1);
break; break;
@@ -466,9 +467,7 @@ public:
me->GetMotionMaster()->MoveIdle(); me->GetMotionMaster()->MoveIdle();
me->StopMoving(); me->StopMoving();
me->SetCanFly(true);
me->SetDisableGravity(true); me->SetDisableGravity(true);
me->SendMovementFlagUpdate();
me->GetMotionMaster()->MoveTakeoff(MI_POINT_VORTEX_TAKEOFF, me->GetPositionX(), me->GetPositionY(), CenterPos.GetPositionZ() + 20.0f, 7.0f); me->GetMotionMaster()->MoveTakeoff(MI_POINT_VORTEX_TAKEOFF, me->GetPositionX(), me->GetPositionY(), CenterPos.GetPositionZ() + 20.0f, 7.0f);
events.DelayEvents(25000, 1); // don't delay berserk (group 0) events.DelayEvents(25000, 1); // don't delay berserk (group 0)
@@ -492,7 +491,6 @@ public:
if (Creature* vp = me->SummonCreature(NPC_WORLD_TRIGGER_LAOI, pos, TEMPSUMMON_TIMED_DESPAWN, 14000)) if (Creature* vp = me->SummonCreature(NPC_WORLD_TRIGGER_LAOI, pos, TEMPSUMMON_TIMED_DESPAWN, 14000))
{ {
vp->SetCanFly(true);
vp->SetDisableGravity(true); vp->SetDisableGravity(true);
Map::PlayerList const& PlayerList = me->GetMap()->GetPlayers(); Map::PlayerList const& PlayerList = me->GetMap()->GetPlayers();
@@ -583,10 +581,7 @@ public:
me->SendMeleeAttackStop(me->GetVictim()); me->SendMeleeAttackStop(me->GetVictim());
me->GetMotionMaster()->MoveIdle(); me->GetMotionMaster()->MoveIdle();
me->DisableSpline(); me->DisableSpline();
me->SetCanFly(true);
me->SetDisableGravity(true); me->SetDisableGravity(true);
//me->SetHover(true);
me->SendMovementFlagUpdate();
me->GetMotionMaster()->MoveTakeoff(MI_POINT_CENTER_AIR_PH_2, me->GetPositionX(), me->GetPositionY(), me->GetPositionZ() + 32.0f, 7.0f); me->GetMotionMaster()->MoveTakeoff(MI_POINT_CENTER_AIR_PH_2, me->GetPositionX(), me->GetPositionY(), me->GetPositionZ() + 32.0f, 7.0f);
events.RescheduleEvent(EVENT_START_PHASE_2_MOVE_TO_SIDE, 22500, 1); events.RescheduleEvent(EVENT_START_PHASE_2_MOVE_TO_SIDE, 22500, 1);
break; break;
@@ -821,6 +816,7 @@ public:
void EnterEvadeMode() override void EnterEvadeMode() override
{ {
me->SetDisableGravity(true);
me->GetMap()->SetZoneOverrideLight(AREA_EYE_OF_ETERNITY, LIGHT_GET_DEFAULT_FOR_MAP, 1s); me->GetMap()->SetZoneOverrideLight(AREA_EYE_OF_ETERNITY, LIGHT_GET_DEFAULT_FOR_MAP, 1s);
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISABLE_MOVE); me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISABLE_MOVE);
ScriptedAI::EnterEvadeMode(); ScriptedAI::EnterEvadeMode();

View File

@@ -146,6 +146,13 @@ public:
bool startPath; bool startPath;
uint8 flyTimes; uint8 flyTimes;
void InitializeAI() override
{
me->SetDisableGravity(true);
me->setActive(true);
Reset();
}
void Reset() override void Reset() override
{ {
events.Reset(); events.Reset();
@@ -158,11 +165,6 @@ public:
bGroundPhase = false; bGroundPhase = false;
flyTimes = 0; flyTimes = 0;
me->SetCanFly(true);
me->SetDisableGravity(true);
me->SendMovementFlagUpdate();
me->setActive(true);
if( pInstance ) if( pInstance )
pInstance->SetData(TYPE_RAZORSCALE, NOT_STARTED); pInstance->SetData(TYPE_RAZORSCALE, NOT_STARTED);
} }
@@ -302,7 +304,6 @@ public:
me->DisableRotate(true); me->DisableRotate(true);
me->SetOrientation((float)(M_PI + 0.01) / 2); me->SetOrientation((float)(M_PI + 0.01) / 2);
me->SetFacingTo(M_PI / 2); me->SetFacingTo(M_PI / 2);
me->SetCanFly(false);
me->SetDisableGravity(false); me->SetDisableGravity(false);
me->CastSpell(me, 62794, true); me->CastSpell(me, 62794, true);
events.ScheduleEvent(EVENT_WARN_DEEP_BREATH, 30000); events.ScheduleEvent(EVENT_WARN_DEEP_BREATH, 30000);
@@ -515,9 +516,7 @@ public:
me->SendMeleeAttackStop(me->GetVictim()); me->SendMeleeAttackStop(me->GetVictim());
me->GetMotionMaster()->MoveIdle(); me->GetMotionMaster()->MoveIdle();
me->StopMoving(); me->StopMoving();
me->SetCanFly(true);
me->SetDisableGravity(true); me->SetDisableGravity(true);
me->SendMovementFlagUpdate();
me->GetMotionMaster()->MoveTakeoff(1, CORDS_AIR, 25.0f); me->GetMotionMaster()->MoveTakeoff(1, CORDS_AIR, 25.0f);
events.ScheduleEvent(EVENT_RESUME_FIXING, 22000); events.ScheduleEvent(EVENT_RESUME_FIXING, 22000);
} }
@@ -591,6 +590,7 @@ public:
void EnterEvadeMode() override void EnterEvadeMode() override
{ {
me->SetDisableGravity(true);
me->SetControlled(false, UNIT_STATE_ROOT); me->SetControlled(false, UNIT_STATE_ROOT);
me->DisableRotate(false); me->DisableRotate(false);
ScriptedAI::EnterEvadeMode(); ScriptedAI::EnterEvadeMode();