BOOL CActorInstance::ComboAttack(DWORD dwMotionIndex, float fDirRot, float fBlendTime) { BlendRotation(fDirRot, fBlendTime); SetAdvancingRotation(fDirRot); InterceptOnceMotion(dwMotionIndex, fBlendTime, 0, __GetAttackSpeed()); __OnAttack(dwMotionIndex); NEW_SetAtkPixelPosition(NEW_GetCurPixelPositionRef()); return TRUE; }
BOOL CActorInstance::NormalAttack(float fDirRot, float fBlendTime) { WORD wMotionIndex; if (!m_pkCurRaceData->GetNormalAttackIndex(m_wcurMotionMode, &wMotionIndex)) return FALSE; BlendRotation(fDirRot, fBlendTime); SetAdvancingRotation(fDirRot); InterceptOnceMotion(wMotionIndex, 0.1f, 0, __GetAttackSpeed()); __OnAttack(wMotionIndex); NEW_SetAtkPixelPosition(NEW_GetCurPixelPositionRef()); return TRUE; }
bool CInstanceBase::NEW_UseSkill(UINT uSkill, UINT uMot, UINT uMotLoopCount, bool isMovingSkill) { if (IsDead()) return false; if (IsStun()) return false; if (IsKnockDown()) return false; if (isMovingSkill) { if (!IsWalking()) StartWalking(); m_isGoing = TRUE; } else { if (IsWalking()) EndWalking(); m_isGoing = FALSE; } float fCurRot=m_GraphicThingInstance.GetTargetRotation(); SetAdvancingRotation(fCurRot); m_GraphicThingInstance.InterceptOnceMotion(CRaceMotionData::NAME_SKILL + uMot, 0.1f, uSkill, 1.0f); m_GraphicThingInstance.__OnUseSkill(uMot, uMotLoopCount, isMovingSkill); if (uMotLoopCount > 0) m_GraphicThingInstance.SetMotionLoopCount(uMotLoopCount); return true; }