ActorInstance.h arat :
void __SetFallingDirection(float fx, float fy);
altına ekle :
float CalculateInvisibleTime(const UINT uiSkill, const NRaceData::TAttackData& c_rAttackData);
ActorInstanceBattle arat :
if (IS_PARTY_HUNTING_RACE(rVictim.GetRace()))
{
if (uiSkill)
rVictim.m_fInvisibleTime = CTimer::Instance().GetCurrentSecond() + c_rAttackData.fInvisibleTime;
if (m_isMain) ¡ ÀÇÇѰ͸¸ üũÇÑ´Ù
rVictim.m_fInvisibleTime = CTimer::Instance().GetCurrentSecond() + c_rAttackData.fInvisibleTime;
}
else
{
rVictim.m_fInvisibleTime = CTimer::Instance().GetCurrentSecond() + c_rAttackData.fInvisibleTime;
}
değiştir :
if (IS_PARTY_HUNTING_RACE(rVictim.GetRace())){
if (uiSkill){ rVictim.m_fInvisibleTime = CTimer::Instance().GetCurrentSecond() + (c_rAttackData.fInvisibleTime - CalculateInvisibleTime(uiSkill, c_rAttackData)); }
if (m_isMain){ rVictim.m_fInvisibleTime = CTimer::Instance().GetCurrentSecond() + (c_rAttackData.fInvisibleTime - CalculateInvisibleTime(uiSkill, c_rAttackData)); }
}
else {
rVictim.m_fInvisibleTime = CTimer::Instance().GetCurrentSecond() + (c_rAttackData.fInvisibleTime - CalculateInvisibleTime(uiSkill, c_rAttackData));
}
void CActorInstance::__SetFallingDirection arat ve kod bloğunun altına ekle :
enum{
RACE_WARRIOR_M,
RACE_ASSASSIN_W,
RACE_SURA_M,
RACE_SHAMAN_W,
RACE_WARRIOR_W,
RACE_ASSASSIN_M,
RACE_SURA_W,
RACE_SHAMAN_M,
RACE_WOLFMAN_M,
RACE_MAX_NUM,
};
float CActorInstance::CalculateInvisibleTime(const UINT uiSkill, const NRaceData::TAttackData& c_rAttackData) {
const float currentTime = CTimer::Instance().GetCurrentSecond();
const float invisibleTime = c_rAttackData.fInvisibleTime;
if ((GetRace() != RACE_WOLFMAN_M && GetRace() != RACE_SHAMAN_M && GetRace() != RACE_SHAMAN_W) || m_fAtkSpd < 1.3 || uiSkill != 0) { return 0.0f; }
const double timeScale = (m_fAtkSpd - 1.3) / 1.3;
const auto invTime = c_rAttackData.fInvisibleTime * 0.5;
return invTime * timeScale;
}