*Prevent MoveFollow and MoveChase while UNIT_FLAG_DISABLE_MOVE is present, by Liberate. Closes #168.
*Some cleanup, and fix typo from cf0046bc32c6. --HG-- branch : trunk
This commit is contained in:
@@ -138,7 +138,8 @@ MotionMaster::DelayedClean()
|
|||||||
{
|
{
|
||||||
MovementGenerator *curr = top();
|
MovementGenerator *curr = top();
|
||||||
pop();
|
pop();
|
||||||
if(curr) DelayedDelete(curr);
|
if (curr)
|
||||||
|
DelayedDelete(curr);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -234,7 +235,7 @@ void
|
|||||||
MotionMaster::MoveChase(Unit* target, float dist, float angle)
|
MotionMaster::MoveChase(Unit* target, float dist, float angle)
|
||||||
{
|
{
|
||||||
// ignore movement request if target not exist
|
// ignore movement request if target not exist
|
||||||
if(!target || target == i_owner)
|
if (!target || target == i_owner || i_owner->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISABLE_MOVE))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
i_owner->clearUnitState(UNIT_STAT_FOLLOW);
|
i_owner->clearUnitState(UNIT_STAT_FOLLOW);
|
||||||
@@ -260,7 +261,7 @@ void
|
|||||||
MotionMaster::MoveFollow(Unit* target, float dist, float angle, MovementSlot slot)
|
MotionMaster::MoveFollow(Unit* target, float dist, float angle, MovementSlot slot)
|
||||||
{
|
{
|
||||||
// ignore movement request if target not exist
|
// ignore movement request if target not exist
|
||||||
if(!target || target == i_owner)
|
if (!target || target == i_owner || i_owner->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISABLE_MOVE))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
i_owner->addUnitState(UNIT_STAT_FOLLOW);
|
i_owner->addUnitState(UNIT_STAT_FOLLOW);
|
||||||
|
|||||||
@@ -5255,7 +5255,7 @@ void Spell::EffectScriptEffect(uint32 effIndex)
|
|||||||
case 45151:
|
case 45151:
|
||||||
{
|
{
|
||||||
//Workaround for Range ... should be global for every ScriptEffect
|
//Workaround for Range ... should be global for every ScriptEffect
|
||||||
float radius = GetSpellRadius(sSpellRadiusStore.LookupEntry(m_spellInfo->EffectRadiusIndex[effIndex]));
|
float radius = GetSpellRadiusForHostile(sSpellRadiusStore.LookupEntry(m_spellInfo->EffectRadiusIndex[effIndex]));
|
||||||
if (unitTarget && unitTarget->GetTypeId() == TYPEID_PLAYER && unitTarget->GetDistance(m_caster) >= radius && !unitTarget->HasAura(46394) && unitTarget != m_caster)
|
if (unitTarget && unitTarget->GetTypeId() == TYPEID_PLAYER && unitTarget->GetDistance(m_caster) >= radius && !unitTarget->HasAura(46394) && unitTarget != m_caster)
|
||||||
unitTarget->CastSpell(unitTarget, 46394, true);
|
unitTarget->CastSpell(unitTarget, 46394, true);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user