Core/Units:
- Implement UNIT_FIELD_HOVERHEIGHT (requires DB data). This field, sent in update object packet, will determine the height at which a creature hovers if it has movementflag_hover applied. Note that hovering will now update the server-sided z-coordinate by the value of this field, and that all subsequent positional updates to the client will need to send z coordinate MINUS the hover height offset, or the hoverheight will be visually doubled client side. - Correct our usage of movementflag_flying, movementflag_can_fly, movementflag_hover and movementflag_disable_gravity (previously levitate), and how they relate to InhabitType in the database. This fixes "flying creatures on steroids" bug (wings flapping too fast), and potentially a lot of visual issues in AI scripts. Note that a lot of scripts still set wrong movementflags, these need to be fixed on a case by case basis. - Send correct packets for SPELL_AURA_FEATHER_FALL, SPELL_AURA_WATER_WALK and SPELL_AURA_HOVER apply/unapply. - Send correct packet contents for movement update in Unit::SetSpeed. - Misc. cleanup in affected scripts.
This commit is contained in:
+2
-2
@@ -145,7 +145,7 @@ class boss_nazan : public CreatureScript
|
||||
flight = false;
|
||||
BellowingRoar_Timer = 6000;
|
||||
ConeOfFire_Timer = 12000;
|
||||
me->SetLevitate(false);
|
||||
me->SetDisableGravity(false);
|
||||
me->SetWalk(true);
|
||||
me->GetMotionMaster()->Clear();
|
||||
if (Unit* victim = SelectTarget(SELECT_TARGET_NEAREST, 0))
|
||||
@@ -374,7 +374,7 @@ class boss_vazruden_the_herald : public CreatureScript
|
||||
if (summoned->GetEntry() == ENTRY_NAZAN)
|
||||
{
|
||||
CAST_AI(boss_nazan::boss_nazanAI, summoned->AI())->VazrudenGUID = VazrudenGUID;
|
||||
summoned->SetLevitate(true);
|
||||
summoned->SetDisableGravity(true);
|
||||
summoned->SetSpeed(MOVE_FLIGHT, 2.5f);
|
||||
if (victim)
|
||||
AttackStartNoMove(victim);
|
||||
|
||||
+1
-1
@@ -87,7 +87,7 @@ class boss_watchkeeper_gargolmar : public CreatureScript
|
||||
{
|
||||
if (!me->getVictim() && me->canCreatureAttack(who))
|
||||
{
|
||||
if (!me->canFly() && me->GetDistanceZ(who) > CREATURE_Z_ATTACK_RANGE)
|
||||
if (!me->CanFly() && me->GetDistanceZ(who) > CREATURE_Z_ATTACK_RANGE)
|
||||
return;
|
||||
|
||||
float attackRadius = me->GetAttackDistance(who);
|
||||
|
||||
Reference in New Issue
Block a user