[Core] Fix channeling spells for unit (will not cast channeling spells when walking, attacking etc.) (c2632)
This commit is contained in:
parent
606bcfc495
commit
f119a6119b
@ -2966,10 +2966,10 @@ void Spell::update(uint32 difftime)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// check if the player caster has moved before the spell finished
|
// check if the player or unit caster has moved before the spell finished (exclude casting on vehicles)
|
||||||
if ((m_caster->GetTypeId() == TYPEID_PLAYER && m_timer != 0) &&
|
if (((m_caster->GetTypeId() == TYPEID_PLAYER || m_caster->GetTypeId() == TYPEID_UNIT) && m_timer != 0) &&
|
||||||
(m_castPositionX != m_caster->GetPositionX() || m_castPositionY != m_caster->GetPositionY() || m_castPositionZ != m_caster->GetPositionZ()) &&
|
(m_castPositionX != m_caster->GetPositionX() || m_castPositionY != m_caster->GetPositionY() || m_castPositionZ != m_caster->GetPositionZ()) &&
|
||||||
(m_spellInfo->Effect[EFFECT_INDEX_0] != SPELL_EFFECT_STUCK || !((Player*)m_caster)->m_movementInfo.HasMovementFlag(MOVEFLAG_FALLINGFAR)))
|
(m_spellInfo->Effect[EFFECT_INDEX_0] != SPELL_EFFECT_STUCK || !m_caster->m_movementInfo.HasMovementFlag(MOVEFLAG_FALLINGFAR)))
|
||||||
{
|
{
|
||||||
// always cancel for channeled spells
|
// always cancel for channeled spells
|
||||||
if (m_spellState == SPELL_STATE_CASTING)
|
if (m_spellState == SPELL_STATE_CASTING)
|
||||||
@ -2998,10 +2998,10 @@ void Spell::update(uint32 difftime)
|
|||||||
{
|
{
|
||||||
if (m_timer > 0)
|
if (m_timer > 0)
|
||||||
{
|
{
|
||||||
if (m_caster->GetTypeId() == TYPEID_PLAYER)
|
if (m_caster->GetTypeId() == TYPEID_PLAYER || m_caster->GetTypeId() == TYPEID_UNIT)
|
||||||
{
|
{
|
||||||
// check if player has jumped before the channeling finished
|
// check if player has jumped before the channeling finished
|
||||||
if (((Player*)m_caster)->m_movementInfo.HasMovementFlag(MOVEFLAG_FALLING))
|
if (m_caster->m_movementInfo.HasMovementFlag(MOVEFLAG_FALLING))
|
||||||
{ cancel(); }
|
{ cancel(); }
|
||||||
|
|
||||||
// check for incapacitating player states
|
// check for incapacitating player states
|
||||||
|
Loading…
x
Reference in New Issue
Block a user