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:
@@ -223,7 +223,7 @@ public:
|
||||
me->setFaction(FACTION_DEFAULT);
|
||||
|
||||
FlyTimer = 10000;
|
||||
me->SetLevitate(false);
|
||||
me->SetDisableGravity(false);
|
||||
me->SetVisible(true);
|
||||
}
|
||||
|
||||
@@ -270,7 +270,7 @@ public:
|
||||
PlayerGUID = 0;
|
||||
}
|
||||
me->SetVisible(false);
|
||||
me->SetLevitate(false);
|
||||
me->SetDisableGravity(false);
|
||||
me->DealDamage(me, me->GetHealth(), NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL, false);
|
||||
me->RemoveCorpse();
|
||||
}
|
||||
@@ -308,7 +308,7 @@ public:
|
||||
pos.m_positionZ += 25;
|
||||
}
|
||||
|
||||
me->SetLevitate(true);
|
||||
me->SetDisableGravity(true);
|
||||
me->GetMotionMaster()->MovePoint(1, pos);
|
||||
}
|
||||
}
|
||||
@@ -808,7 +808,7 @@ public:
|
||||
case 19: DoScriptText(LORD_ILLIDAN_SAY_7, Illi); return 5000; break;
|
||||
case 20:
|
||||
Illi->HandleEmoteCommand(EMOTE_ONESHOT_LIFTOFF);
|
||||
Illi->SetLevitate(true);
|
||||
Illi->SetDisableGravity(true);
|
||||
return 500; break;
|
||||
case 21: DoScriptText(OVERLORD_SAY_5, me); return 500; break;
|
||||
case 22:
|
||||
|
||||
Reference in New Issue
Block a user