#include "StdAfx.h" #include "DnBasicBlow.h" #include "DnActor.h" #include "DnSkillTask.h" #include "DnMonsterActor.h" #include "DnPlayerActor.h" #ifdef _GAMESERVER #include "DNUserSession.h" #else #include "DnInterface.h" #endif #include "DnStateBlow.h" #ifdef _DEBUG #define new new(_NORMAL_BLOCK,__FILE__,__LINE__) #endif CDnBasicBlow::CDnBasicBlow(DnActorHandle hActor, const char *szValue) : CDnBlow(hActor), m_bNeedRefreshState( true ), m_bRefreshAll( false ), m_eRefreshState( CDnActorState::ST_All ), m_eAddBlowStateType( CDnActorState::Equip_Buff_Level ) { SetValue(szValue); m_fValue = (float)atof(szValue); } CDnBasicBlow::~CDnBasicBlow(void) { } void CDnBasicBlow::SetBlowState() { switch( m_StateBlow.emBlowIndex ) { case STATE_BLOW::BLOW_001: m_eRefreshState = SetBlowState_001(); break; case STATE_BLOW::BLOW_002: m_eRefreshState = SetBlowState_002(); break; case STATE_BLOW::BLOW_003: m_eRefreshState = SetBlowState_003(); break; case STATE_BLOW::BLOW_004: m_eRefreshState = SetBlowState_004(); break; case STATE_BLOW::BLOW_005: m_eRefreshState = SetBlowState_005(); break; case STATE_BLOW::BLOW_006: m_eRefreshState = SetBlowState_006(); break; case STATE_BLOW::BLOW_007: m_eRefreshState = SetBlowState_007(); break; case STATE_BLOW::BLOW_008: m_eRefreshState = SetBlowState_008(); break; case STATE_BLOW::BLOW_009: m_eRefreshState = SetBlowState_009(); break; case STATE_BLOW::BLOW_010: m_eRefreshState = SetBlowState_010(); break; case STATE_BLOW::BLOW_015: m_eRefreshState = SetBlowState_015(); break; case STATE_BLOW::BLOW_017: m_eRefreshState = SetBlowState_017(); break; case STATE_BLOW::BLOW_019: m_eRefreshState = SetBlowState_019(); break; case STATE_BLOW::BLOW_020: m_eRefreshState = SetBlowState_020(); break; case STATE_BLOW::BLOW_021: m_eRefreshState = SetBlowState_021(); break; case STATE_BLOW::BLOW_022: m_eRefreshState = SetBlowState_022(); break; case STATE_BLOW::BLOW_023: m_eRefreshState = SetBlowState_023(); break; case STATE_BLOW::BLOW_024: m_eRefreshState = SetBlowState_024(); break; case STATE_BLOW::BLOW_026: m_eRefreshState = SetBlowState_026(); break; case STATE_BLOW::BLOW_028: m_eRefreshState = SetBlowState_028(); break; // Ư¼ö °ø°Ý·Â Àý´ë case STATE_BLOW::BLOW_029: m_eRefreshState = SetBlowState_029(); break; // Ư¼ö °ø°Ý·Â ºñÀ² case STATE_BLOW::BLOW_032: m_eRefreshState = SetBlowState_032(); break; case STATE_BLOW::BLOW_033: m_eRefreshState = SetBlowState_033(); break; case STATE_BLOW::BLOW_034: m_eRefreshState = SetBlowState_034(); break; case STATE_BLOW::BLOW_035: m_eRefreshState = SetBlowState_035(); break; case STATE_BLOW::BLOW_036: m_eRefreshState = SetBlowState_036(); break; case STATE_BLOW::BLOW_037: m_eRefreshState = SetBlowState_037(); break; case STATE_BLOW::BLOW_038: m_eRefreshState = SetBlowState_038(); break; case STATE_BLOW::BLOW_039: m_eRefreshState = SetBlowState_039(); break; case STATE_BLOW::BLOW_048: m_eRefreshState = SetBlowState_048(); break; case STATE_BLOW::BLOW_049: m_eRefreshState = SetBlowState_049(); break; case STATE_BLOW::BLOW_058: m_eRefreshState = SetBlowState_058(); break; case STATE_BLOW::BLOW_059: m_eRefreshState = SetBlowState_059(); break; case STATE_BLOW::BLOW_061: m_eRefreshState = SetBlowState_061(); break; case STATE_BLOW::BLOW_064: m_eRefreshState = SetBlowState_064(); break; case STATE_BLOW::BLOW_075: m_eRefreshState = SetBlowState_075(); break; case STATE_BLOW::BLOW_076: m_eRefreshState = SetBlowState_076(); break; case STATE_BLOW::BLOW_082: m_eRefreshState = SetBlowState_082(); break; case STATE_BLOW::BLOW_087: m_eRefreshState = SetBlowState_087(); break; case STATE_BLOW::BLOW_088: m_eRefreshState = SetBlowState_088(); break; case STATE_BLOW::BLOW_089: m_eRefreshState = SetBlowState_089(); break; case STATE_BLOW::BLOW_090: m_eRefreshState = SetBlowState_090(); break; case STATE_BLOW::BLOW_093: m_eRefreshState = SetBlowState_093(); break; case STATE_BLOW::BLOW_094: m_eRefreshState = SetBlowState_094(); break; case STATE_BLOW::BLOW_123: m_eRefreshState = SetBlowState_123(); break; case STATE_BLOW::BLOW_124: m_eRefreshState = SetBlowState_124(); break; case STATE_BLOW::BLOW_125: m_eRefreshState = SetBlowState_125(); break; case STATE_BLOW::BLOW_126: m_eRefreshState = SetBlowState_126(); break; case STATE_BLOW::BLOW_127: m_eRefreshState = SetBlowState_127(); break; case STATE_BLOW::BLOW_128: m_eRefreshState = SetBlowState_128(); break; case STATE_BLOW::BLOW_200: m_eRefreshState = SetBlowState_200(); break; case STATE_BLOW::BLOW_201: m_eRefreshState = SetBlowState_201(); break; case STATE_BLOW::BLOW_202: m_eRefreshState = SetBlowState_202(); break; case STATE_BLOW::BLOW_203: m_eRefreshState = SetBlowState_203(); break; case STATE_BLOW::BLOW_234: m_eRefreshState = SetBlowState_234(); break; default: _ASSERT( "BasicStateBlow enumeration case°¡ ¾ø½À´Ï´Ù." ); break; } m_State.CalcValueType(); } void CDnBasicBlow::AddBlowState() { m_eAddBlowStateType = GetAddBlowStateType(); #ifdef PRE_ADD_SKILLBUF_RENEW // 2012.05.03 ------------------------------------------------------------------------------------------------------------------------------------------// // ½ºÅ³ °³ÆíÀ¸·Î ÀÎÇØ ¹öÇÁ/µð¹öÇÁ »óÅÂÈ¿°ú°¡ Àåºñ¿Í µ¿ÀÏÇÑ À§Ä¡¿¡¼­ °è»êµÇ°í ±× ÀÌÈÄÀÇ ¾×Ƽºê ½ºÅ³ µî¿¡ ºÙÀº »óÅÂÈ¿°úµéÀÌ PostStateEffect ·Î Àû¿ëµÇ¹Ç·Î // ¹öÇÁ/µð¹öÇÁÀÇ È¿°ú°¡ ±Ø´ëÈ­µÇ´Â °á°ú°¡ µÈ´Ù. ÀÌ´Â Ç÷¹ÀÌ¾î »Ó¸¸ ¾Æ´Ï¶ó ¸ó½ºÅ͵µ ¸¶Âù°¡ÁöÀÌ¸ç µû¶ó¼­ ¹öÇÁ »óÅÂÈ¿°ú ±¸ºÐµÇ´Â °æ¿ì // Equip_Buff_Level À¸·Î AddBlowState() ¸¦ È£ÃâÇØÁִµ¥ m_eAddBlowStateType ´Â ±×·¸°Ô È£ÃâÇÏÁö¸¸ ¸ó½ºÅÍÀÎ °æ¿ì¿£ bIsBuff ´Â ²ô°í È£ÃâÇÑ´Ù. // ÀÌÀ¯´Â Ç÷¹À̾îÀÎ °æ¿ì ¹öÇÁ/µð¹öÇÁ BlowState ¸¦ ±¸ºÐÇØ¼­ pvp ¿¡¼­ Àû¿ëµÇ´Â º¸Á¤À» °ÅÄ£ ÈÄ¿¡ ¹öÇÁ/µð¹öÇÁ ´É·ÂÄ¡¸¦ Àû¿ëÇØÁÖ±â À§Çؼ­ // ³»ºÎÀûÀ¸·Î ³ª´²¼­ ¹öÇÁ/µð¹öÇÁ ¸®½ºÆ®¿¡ ³Ö¾îÁÖ°Ô µÇ´Âµ¥ ¸ó½ºÅÍ´Â ´É·ÂÄ¡ °»½Å¿¡¼­ pvp º¸Á¤µîÀÌ µé¾î°¡Áö ¾ÊÀ¸¹Ç·Î ¸®½ºÆ®¸¦ ³ª´­ Çʿ䰡 ¾ø±â ¶§¹®ÀÌ´Ù. // (¿ÀÈ÷·Á ³ª´²¹ö¸®¸é CDnMonsterState::CalcState() ÇÔ¼ö¿¡¼­´Â ÇØ´ç ¹öÇÁ/µð¹öÇÁ ¸®½ºÆ® ÀÚü¸¦ ÂüÁ¶ÇÏÁö ¾ÊÀ¸¹Ç·Î Àû¿ëÀÌ ¾ÈµÇ¾î ¹ö¸°´Ù.) // °á°úÀûÀ¸·Î °è»ê½ÄÀÌ Ç÷¹À̾îÂÊÀº º¸Á¤ °á°ú¿¡ ´Ù½Ã ¹öÇÁ/µð¹öÇÁ ¼öÄ¡ÀÇ ºñÀ²À» °öÇÏ°Ô µÇ´Â ²ÃÀ̹ǷΠÇ÷¹À̾îÂÊÀÌ Á¶±Ý ´õ º¯µ¿ÆøÀÌ Ä¿Áö´Â ÂÊÀ¸·Î // º¯°æµÇÁö¸¸ ÀÌ´Â ±âȹÆÀ°ú ÇÕÀÇµÈ ³»¿ëÀ̸ç ÃßÈÄ¿¡ º¸Á¤°ü·Ã ¼öÁ¤¿¡ ´ëÇÑ ³íÀǸ¦ °ÅÄ£ ÈÄ ÇÁ·Î±×·¥ÂÊ¿¡ Àû¿ëÇÒ ¿¹Á¤ÀÌ´Ù. // 2012.05.03 ------------------------------------------------------------------------------------------------------------------------------------------// // PlayerState Ç÷¹À̾ »ç¿ëÇÏ°ÔµÇ°í ¸ó½ºÅÍ´Â CalcEquipµîÀÇ º¹ÀâÇÑ ¿¬»ê°úÁ¤À» °ÅÄ¡Áö¾Ê±â¶§¹®¿¡ Ç÷¹À̾îÀÎ °æ¿ì¿¡¼­¸¸ Àû¿ëÀ» ÇØÁØ´Ù. bool bIsPlayerActor = m_hActor->IsPlayerActor(); bool bIsBuff = (m_eAddBlowStateType == CDnActorState::Equip_Buff_Level); m_hActor->AddBlowState( &m_State, m_eAddBlowStateType, (bIsPlayerActor && bIsBuff) ); #else m_hActor->AddBlowState( &m_State, m_eAddBlowStateType ); #endif } void CDnBasicBlow::RefreshActorState() { // ST_All À̸é SetBlowState() °¡ È£ÃâÀÌ ¾ÈµÈ°ÍÀ̹ǷΠ°»½Å ¾ÈÇÔ. if( m_bNeedRefreshState ) { if( m_bRefreshAll ) { m_hActor->RefreshState( CDnActorState::RefreshAll, m_eRefreshState ); } else { m_hActor->RefreshState( CDnActorState::RefreshSkill, m_eRefreshState ); } } } void CDnBasicBlow::OnBegin( LOCAL_TIME LocalTime, float fDelta ) { SetBlowState(); AddBlowState(); CalcRefreshTypes(); RefreshActorState(); #ifdef _GAMESERVER CheckHPMPFullWhenBegin(); #endif } #ifdef _GAMESERVER void CDnBasicBlow::CheckHPMPFullWhenBegin() { if( m_bHPMPFullWhenBegin ) { m_hActor->CmdRefreshHPSP( m_hActor->GetMaxHP(), m_hActor->GetMaxSP() ); m_bHPMPFullWhenBegin = false; } } #endif void CDnBasicBlow::SetModifyFloatValue(float fValue) { m_fValue = fValue; SetBlowState(); RefreshActorState(); } void CDnBasicBlow::OnEnd( LOCAL_TIME LocalTime, float fDelta ) { DelBlowState(); RefreshActorState(); } void CDnBasicBlow::CalcRefreshTypes( void ) { m_bNeedRefreshState = (CDnActorState::ST_All != m_eRefreshState); // ÀÓÀÇ·Î ¼³Á¤ÇÑ »óÅÂÈ¿°ú´Â ºÎ¸ð½ºÅ³ÀÌ ¾ø´Ù. post state º¯°æÀÌ ¾Æ´Ï¶ó ±âº» state º¯°æÀ̹ǷΠ°¨¾ÈÇØÁØ´Ù. // ºÎ¸ð ½ºÅ³ÀÌ ÀÖ´Â °æ¿ì¿£ ÆÐ½Ãºê ½ºÅ³ÀÎÁö ±¸ºÐÇØ¼­ ÆÐ½ÃºêÀÎ °æ¿ì¿£ basic ½ºÅȺ¯°æÀ¸·Î °¨¾ÈÇØ¼­ All Refresh ·Î ÇÏ°í ³ª¸ÓÁö´Â RefreshSkill ·Î ó¸®.. m_bRefreshAll = false; if( false == m_bNeedRefreshState ) return; #ifdef PRE_ADD_SKILLBUF_RENEW switch( m_eAddBlowStateType ) { // ±âº» ´É·ÂÄ¡¿¡ ¿µÇâÀ» ÁÖ´Â »óÅÂÈ¿°ú. case CDnActorState::Equip_Buff_Level: case CDnActorState::Equip_Skill_Level: m_bRefreshAll = true; break; // ±âº» ´É·ÂÄ¡ °è»ê °á°ú¸¦ ±â¹ÝÀ¸·Î Àû¿ëµÇ´Â »óÅÂÈ¿°ú. case CDnActorState::Skill_Level: m_bRefreshAll = false; break; } #else m_bRefreshAll = ( false == m_bHasParentSkill || (CDnSkill::Passive == m_ParentSkillInfo.eSkillType && CDnSkill::Buff == m_ParentSkillInfo.eDurationType) ); #endif // #ifdef PRE_ADD_SKILLBUF_RENEW // #32220 ¿ä¸®¿¡¼­ »ç¿ëµÇ´Â ƯÁ¤ »óÅÂÈ¿°úµéÀº °è»ê À§Ä¡°¡ µû·Î Á¤ÇØÁöµµ·Ï ¿©±â¼­ ºÐ·ùµÈ´Ù. if( STATE_BLOW::BLOW_200 == m_StateBlow.emBlowIndex || STATE_BLOW::BLOW_201 == m_StateBlow.emBlowIndex || STATE_BLOW::BLOW_202 == m_StateBlow.emBlowIndex || STATE_BLOW::BLOW_203 == m_StateBlow.emBlowIndex ) { m_bRefreshAll = true; } //Ãß°¡µÇ´Â Å©¸®Æ¼Äà Áõ°¡ »óÅÂÈ¿°úµµ À§ »óÅÂÈ¿°ú¿Í °°ÀÌ ½ºÅ³ »óÅÂÈ¿°ú °è»ê µÇ±âÀü¿¡ if (STATE_BLOW::BLOW_234 == m_StateBlow.emBlowIndex) m_bRefreshAll = true; #ifdef PRE_ADD_SKILLBUF_RENEW // ½ºÅ³ °³ÆíÀ¸·Î, ¼Òȯ ¸ó½ºÅÍÀÎ °æ¿ì¶óµµ ´É·ÂÄ¡ ÀüºÎ °»½ÅÇØÁÖ¾î¾ß ÇÑ´Ù. // CDnMonsterState::CalcaBaseState() ¿¡¼­ m_BaseState ¸¦ ¸ó½ºÅÍ Å×ÀÌºí¿¡¼­ // ¾ò¾î¿Í¼­ Ç÷¹À̾î·ÎºÎÅÍ º¹»çµÈ ´É·ÂÄ¡°¡ µ¤¾î¾º¿öÁö´Â °Í¿¡ ´ëÇØ¼± // °»½ÅÇÏÁö ¾Ê°í ±×´ë·Î µÎµµ·Ï ó¸®. #else if( m_hActor && m_hActor->IsMonsterActor() ) { // ¸ó½ºÅÍ ¾×ÅÍÀÌ°í ¼ÒȯÀÚÀÇ ´É·ÂÄ¡¸¦ º¹»çÇØ¼­ »ý¼ºµÈ ¼Òȯ ¸ó½ºÅÍÀÎ °æ¿ì ±âº» ´É·ÂÄ¡¸¦ ÀüºÎ °»½ÅÇØ¹ö¸®¸é // Å×À̺íÀÇ ´É·ÂÄ¡·Î ¹Ù²î¹Ç·Î ½ºÅ³ »óÅÂÈ¿°úÂʸ¸ °»½ÅÇϵµ·Ï ó¸®. CDnMonsterActor* pMonstreActor = static_cast(m_hActor.GetPointer()); if( pMonstreActor->GetSummonerPlayerActor() ) { // bNeedRefreshAll -> false ·Î ¸®ÅÏ. m_bRefreshAll = false; } } #endif // #ifdef PRE_ADD_SKILLBUF_RENEW } #if defined(PRE_ADD_PREFIX_SYSTE_RENEW) void CDnBasicBlow::AddStateEffectValue(const char* szOrigValue, const char* szAddValue, std::string& szNewValue) { char szBuff[128] = {0, }; float fOrigValue = (float)atof(szOrigValue); float fAddValue = (float)atof(szAddValue); float fResultValue = fOrigValue + fAddValue; sprintf_s(szBuff, "%f", fResultValue); szNewValue = szBuff; } void CDnBasicBlow::RemoveStateEffectValue(const char* szOrigValue, const char* szAddValue, std::string& szNewValue) { static char szBuff[128] = {0, }; float fOrigValue = (float)atof(szOrigValue); float fAddValue = (float)atof(szAddValue); float fResultValue = fOrigValue - fAddValue; sprintf_s(szBuff, "%f", fResultValue); szNewValue = szBuff; } #endif // PRE_ADD_PREFIX_SYSTE_RENEW CDnActorState::StateTypeEnum CDnBasicBlow::SetBlowState_001() { m_State.SetAttackPMin( (int)m_fValue ); m_State.SetAttackPMax( (int)m_fValue ); return CDnActorState::StateTypeEnum::ST_AttackP; } CDnActorState::StateTypeEnum CDnBasicBlow::SetBlowState_002() { m_State.SetAttackPMinRatio(m_fValue); m_State.SetAttackPMaxRatio(m_fValue); return CDnActorState::StateTypeEnum::ST_AttackP; } CDnActorState::StateTypeEnum CDnBasicBlow::SetBlowState_003() { m_State.SetDefenseP( (int)m_fValue ); return CDnActorState::StateTypeEnum::ST_DefenseP; } CDnActorState::StateTypeEnum CDnBasicBlow::SetBlowState_004() { m_State.SetDefensePRatio(m_fValue); return CDnActorState::StateTypeEnum::ST_DefenseP; } CDnActorState::StateTypeEnum CDnBasicBlow::SetBlowState_005() { m_State.SetStrength( (int)m_fValue ); return CDnActorState::StateTypeEnum::ST_Strength; } CDnActorState::StateTypeEnum CDnBasicBlow::SetBlowState_006() { m_State.SetAgility( (int)m_fValue ); return CDnActorState::StateTypeEnum::ST_Agility; } CDnActorState::StateTypeEnum CDnBasicBlow::SetBlowState_007() { m_State.SetIntelligence( (int)m_fValue ); return CDnActorState::StateTypeEnum::ST_Intelligence; } CDnActorState::StateTypeEnum CDnBasicBlow::SetBlowState_008() { m_State.SetStamina( (int)m_fValue ); return CDnActorState::StateTypeEnum::ST_Stamina; } CDnActorState::StateTypeEnum CDnBasicBlow::SetBlowState_009() { INT64 iAddToMaxHP = INT64(m_fValue); m_State.SetMaxHP( iAddToMaxHP ); return CDnActorState::StateTypeEnum::ST_HP; } CDnActorState::StateTypeEnum CDnBasicBlow::SetBlowState_010() { m_State.SetMaxSP((int)m_fValue); return CDnActorState::StateTypeEnum::ST_SP; } CDnActorState::StateTypeEnum CDnBasicBlow::SetBlowState_015() { #ifdef _GAMESERVER // °Á Çѹ濡 ´Ù ó¸® INT64 iHP = m_hActor->GetHP(); INT64 iMaxHP = m_hActor->GetMaxHP(); if( GetParentSkillInfo() && GetParentSkillInfo()->bIsItemSkill == true && m_hActor && m_hActor->GetStateBlow() ) { if( m_fValue > 0 ) { float fResultValue = 1.f; DNVector(DnBlowHandle) vBlows; m_hActor->GetStateBlow()->GetStateBlowFromBlowIndex( STATE_BLOW::BLOW_272, vBlows ); for( int i = 0; i < (int)vBlows.size(); ++i ) { fResultValue += vBlows[i]->GetFloatValue(); } m_fValue *= fResultValue; } } #if defined( _GAMESERVER ) CalcHealValueLimit( m_StateBlow.emBlowIndex, m_fValue ); #endif #if defined(PRE_ADD_DARKLAIR_HEAL_REGULATION) && defined(_GAMESERVER) m_fValue = CalcModifiedHealValue( m_fValue ); #endif INT64 iDelta = INT64(m_fValue); INT64 iResult = iHP + iDelta; if( iMaxHP < iResult ) { iResult = iMaxHP; iDelta = iMaxHP - iHP; } else if( iResult < 0 ) { iResult = 1; iDelta = 1 - iHP; } m_hActor->SetHP( iResult ); m_hActor->RequestHPMPDelta( CDnState::ElementEnum_Amount, iDelta, m_hActor->GetUniqueID() ); #endif return CDnActorState::StateTypeEnum::ST_HP; } CDnActorState::StateTypeEnum CDnBasicBlow::SetBlowState_017() { int nSP = m_hActor->GetSP(); int nPrevSP = nSP; nSP += (int)m_fValue; if( nSP > m_hActor->GetMaxSP() ) nSP = m_hActor->GetMaxSP(); m_hActor->SetSP( nSP ); #ifndef _GAMESERVER int nAddSP = nSP - nPrevSP; if( nAddSP > 0 ) { GetInterface().SetRecovery( m_hActor->GetHeadPosition(), 0, nAddSP, false, (m_hActor == CDnActor::s_hLocalActor) ); } #endif return CDnActorState::StateTypeEnum::ST_SP; } CDnActorState::StateTypeEnum CDnBasicBlow::SetBlowState_019() { m_State.SetStiff( (int)m_fValue ); return CDnActorState::StateTypeEnum::ST_Stiff; } CDnActorState::StateTypeEnum CDnBasicBlow::SetBlowState_020() { m_State.SetStiffResistance( (int)m_fValue ); return CDnActorState::StateTypeEnum::ST_StiffResistance; } CDnActorState::StateTypeEnum CDnBasicBlow::SetBlowState_021() { m_State.SetCritical( (int)m_fValue ); return CDnActorState::StateTypeEnum::ST_Critical; } CDnActorState::StateTypeEnum CDnBasicBlow::SetBlowState_022() { m_State.SetCriticalResistance( (int)m_fValue ); return CDnActorState::StateTypeEnum::ST_CriticalResistance; } CDnActorState::StateTypeEnum CDnBasicBlow::SetBlowState_023() { m_State.SetStun( (int)m_fValue ); return CDnActorState::StateTypeEnum::ST_Stun; } CDnActorState::StateTypeEnum CDnBasicBlow::SetBlowState_024() { m_State.SetStunResistance( (int)m_fValue ); return CDnActorState::StateTypeEnum::ST_StunResistance; } CDnActorState::StateTypeEnum CDnBasicBlow::SetBlowState_026() { m_State.SetDownDelayProb( m_fValue ); return CDnActorState::StateTypeEnum::ST_DownDelay; } CDnActorState::StateTypeEnum CDnBasicBlow::SetBlowState_028() { m_State.SetAttackMMin( (int)m_fValue ); m_State.SetAttackMMax( (int)m_fValue ); return CDnActorState::StateTypeEnum::ST_AttackM; } CDnActorState::StateTypeEnum CDnBasicBlow::SetBlowState_029() { m_State.SetAttackMMinRatio( m_fValue ); m_State.SetAttackMMaxRatio( m_fValue ); return CDnActorState::StateTypeEnum::ST_AttackM; } CDnActorState::StateTypeEnum CDnBasicBlow::SetBlowState_032() { m_State.SetElementAttack( CDnState::Fire, m_fValue ); return CDnActorState::StateTypeEnum::ST_ElementAttack; } CDnActorState::StateTypeEnum CDnBasicBlow::SetBlowState_033() { m_State.SetElementAttack( CDnState::Ice, m_fValue ); return CDnActorState::StateTypeEnum::ST_ElementAttack; } CDnActorState::StateTypeEnum CDnBasicBlow::SetBlowState_034() { m_State.SetElementAttack( CDnState::Light, m_fValue ); return CDnActorState::StateTypeEnum::ST_ElementAttack; } CDnActorState::StateTypeEnum CDnBasicBlow::SetBlowState_035() { m_State.SetElementAttack( CDnState::Dark, m_fValue ); return CDnActorState::StateTypeEnum::ST_ElementAttack; } CDnActorState::StateTypeEnum CDnBasicBlow::SetBlowState_036() { m_State.SetElementDefense( CDnState::Fire, m_fValue ); return CDnActorState::StateTypeEnum::ST_ElementDefense; } CDnActorState::StateTypeEnum CDnBasicBlow::SetBlowState_037() { m_State.SetElementDefense( CDnState::Ice, m_fValue ); return CDnActorState::StateTypeEnum::ST_ElementDefense; } CDnActorState::StateTypeEnum CDnBasicBlow::SetBlowState_038() { m_State.SetElementDefense( CDnState::Light, m_fValue ); return CDnActorState::StateTypeEnum::ST_ElementDefense; } CDnActorState::StateTypeEnum CDnBasicBlow::SetBlowState_039() { m_State.SetElementDefense( CDnState::Dark, m_fValue ); return CDnActorState::StateTypeEnum::ST_ElementDefense; } // ½ºÅ³ Æ÷ÀÎÆ® Áõ°¡(È¿°ú ¿µ±¸ Àû¿ë ¾ÆÀÌÅÛ¿¡¼­¸¸ »ç¿ëµÊ) CDnActorState::StateTypeEnum CDnBasicBlow::SetBlowState_048() { #ifndef _GAMESERVER GetSkillTask().SetSkillPoint( GetSkillTask().GetSkillPoint()+(int)m_fValue ); #else // Ç÷¹ÀÌ¾î ¾×Å͸¸ °¡´É. _ASSERT( m_hActor->GetActorType() <= CDnActor::ActorTypeEnum::Reserved6 ); if( !m_hActor || m_hActor->GetActorType() > CDnActor::ActorTypeEnum::Reserved6 ) return CDnActorState::StateTypeEnum(-1); static_cast( m_hActor.GetPointer() )->GetUserSession()->ChangeSkillPoint( (int)m_fValue, 0, false, 0 ); #endif return CDnActorState::StateTypeEnum(-1); } // °æÇèÄ¡ Áõ°¡(È¿°ú ¿µ±¸ Àû¿ë ¾ÆÀÌÅÛ¿¡¼­¸¸ »ç¿ëÇÔ) CDnActorState::StateTypeEnum CDnBasicBlow::SetBlowState_049() { // ·Î±× ÄÚµå ¹ºÁø ¸ð¸£°ÚÁö¸¸ ÀÏ´Ü -1·Î ¼ÂÆÃ if( m_hActor && m_hActor->IsPlayerActor() ) { ((CDnPlayerActor*)m_hActor.GetPointer())->AddExperience( (int)m_fValue, -1, (INT64)0 ); } return CDnActorState::StateTypeEnum(-1); } CDnActorState::StateTypeEnum CDnBasicBlow::SetBlowState_061() { m_State.SetSuperAmmor( (int)m_fValue ); return CDnActorState::StateTypeEnum::ST_SuperAmmor; } CDnActorState::StateTypeEnum CDnBasicBlow::SetBlowState_064() { m_State.SetSuperAmmorRatio( m_fValue ); return CDnActorState::StateTypeEnum::ST_SuperAmmor; } CDnActorState::StateTypeEnum CDnBasicBlow::SetBlowState_058() { m_State.SetMaxHPRatio( m_fValue ); return CDnActorState::StateTypeEnum::ST_HP; } CDnActorState::StateTypeEnum CDnBasicBlow::SetBlowState_059() { m_State.SetMaxSPRatio( m_fValue ); return CDnActorState::StateTypeEnum::ST_SP; } CDnActorState::StateTypeEnum CDnBasicBlow::SetBlowState_075() { m_State.SetMoveSpeed( (int)m_fValue ); return CDnActorState::StateTypeEnum::ST_MoveSpeed; } CDnActorState::StateTypeEnum CDnBasicBlow::SetBlowState_076() { m_State.SetMoveSpeedRatio( m_fValue ); return CDnActorState::StateTypeEnum::ST_MoveSpeed; } CDnActorState::StateTypeEnum CDnBasicBlow::SetBlowState_082() { m_State.SetFinalDamageRatio( m_fValue ); return CDnActorState::StateTypeEnum::ST_FinalDamage; } CDnActorState::StateTypeEnum CDnBasicBlow::SetBlowState_087() { m_State.SetStrengthRatio( m_fValue ); return CDnActorState::StateTypeEnum::ST_Strength; } CDnActorState::StateTypeEnum CDnBasicBlow::SetBlowState_088() { m_State.SetAgilityRatio( m_fValue ); return CDnActorState::StateTypeEnum::ST_Agility; } CDnActorState::StateTypeEnum CDnBasicBlow::SetBlowState_089() { m_State.SetIntelligenceRatio( m_fValue ); return CDnActorState::StateTypeEnum::ST_Intelligence; } CDnActorState::StateTypeEnum CDnBasicBlow::SetBlowState_090() { m_State.SetStaminaRatio( m_fValue ); return CDnActorState::StateTypeEnum::ST_Stamina; } CDnActorState::StateTypeEnum CDnBasicBlow::SetBlowState_093() { m_State.SetDefenseM( (int)m_fValue ); return CDnActorState::StateTypeEnum::ST_DefenseM; } CDnActorState::StateTypeEnum CDnBasicBlow::SetBlowState_094() { m_State.SetDefenseMRatio( m_fValue ); return CDnActorState::StateTypeEnum::ST_DefenseM; } CDnActorState::StateTypeEnum CDnBasicBlow::SetBlowState_123() { m_State.SetStiffRatio( m_fValue ); return CDnActorState::StateTypeEnum::ST_Stiff; } CDnActorState::StateTypeEnum CDnBasicBlow::SetBlowState_124() { m_State.SetStiffResistanceRatio( m_fValue ); return CDnActorState::StateTypeEnum::ST_StiffResistance; } CDnActorState::StateTypeEnum CDnBasicBlow::SetBlowState_125() { m_State.SetCriticalRatio( m_fValue ); return CDnActorState::StateTypeEnum::ST_Critical; } CDnActorState::StateTypeEnum CDnBasicBlow::SetBlowState_126() { m_State.SetCriticalResistanceRatio( m_fValue ); return CDnActorState::StateTypeEnum::ST_CriticalResistance; } CDnActorState::StateTypeEnum CDnBasicBlow::SetBlowState_127() { m_State.SetStunRatio( m_fValue ); return CDnActorState::StateTypeEnum::ST_Stun; } CDnActorState::StateTypeEnum CDnBasicBlow::SetBlowState_128() { m_State.SetStunResistanceRatio( m_fValue ); return CDnActorState::StateTypeEnum::ST_StunResistance; } CDnActorState::StateTypeEnum CDnBasicBlow::SetBlowState_200() { m_State.SetAttackPMin( (int)m_fValue ); m_State.SetAttackPMax( (int)m_fValue ); return CDnActorState::StateTypeEnum::ST_AttackP; } CDnActorState::StateTypeEnum CDnBasicBlow::SetBlowState_201() { m_State.SetAttackPMinRatio(m_fValue); m_State.SetAttackPMaxRatio(m_fValue); return CDnActorState::StateTypeEnum::ST_AttackP; } CDnActorState::StateTypeEnum CDnBasicBlow::SetBlowState_202() { m_State.SetAttackMMin( (int)m_fValue ); m_State.SetAttackMMax( (int)m_fValue ); return CDnActorState::StateTypeEnum::ST_AttackM; } CDnActorState::StateTypeEnum CDnBasicBlow::SetBlowState_203() { m_State.SetAttackMMinRatio( m_fValue ); m_State.SetAttackMMaxRatio( m_fValue ); return CDnActorState::StateTypeEnum::ST_AttackM; } void CDnBasicBlow::DelBlowState() { m_hActor->DelBlowState( &m_State ); } CDnActorState::StateTypeEnum CDnBasicBlow::SetBlowState_234() { m_State.SetCritical((int)m_fValue); return CDnActorState::StateTypeEnum::ST_Critical; }