bool CActorInstance::InputComboAttackCommand(float fDirRot) { m_fAtkDirRot=fDirRot; if (m_isPreInput) return false; ///////////////////////////////////////////////////////////////////////////////// // Process Input if (0 == m_dwcurComboIndex) { __RunNextCombo(); return true; } else if (m_pkCurRaceMotionData->IsComboInputTimeData()) { // 동작 경과 시간 float fElapsedTime = GetAttackingElapsedTime(); // 이미 입력 한계 시간이 지났다면.. if (fElapsedTime > m_pkCurRaceMotionData->GetComboInputEndTime()) { //Tracen("입력 한계 시간 지남"); if (IsBowMode()) m_isNextPreInput = TRUE; return false; } if (fElapsedTime > m_pkCurRaceMotionData->GetNextComboTime()) // 콤보 발동 시간 이 후라면 { //Tracen("다음 콤보 동작"); // args : BlendingTime __RunNextCombo(); return true; } else if (fElapsedTime > m_pkCurRaceMotionData->GetComboInputStartTime()) // 선 입력 시간 범위 라면.. { //Tracen("선 입력 설정"); m_isPreInput = TRUE; return false; } } else { float fElapsedTime = GetAttackingElapsedTime(); if (fElapsedTime > m_pkCurRaceMotionData->GetMotionDuration()*0.9f) // 콤보 발동 시간 이 후라면 { //Tracen("다음 콤보 동작"); // args : BlendingTime __RunNextCombo(); return true; } } // Process Input return false; }
BOOL CInstanceBase::NEW_IsClickableDistanceDestInstance(CInstanceBase& rkInstDst) { float fDistance = 150.0f; if (IsBowMode()) fDistance = __GetBowRange(); if (rkInstDst.IsNPC()) fDistance = 500.0f; if (rkInstDst.IsResource()) fDistance = 100.0f; return m_GraphicThingInstance.IsClickableDistanceDestInstance(rkInstDst.m_GraphicThingInstance, fDistance); }