338 lines
No EOL
11 KiB
C++
338 lines
No EOL
11 KiB
C++
#include "StdAfx.h"
|
||
#include "DnFrostbiteBlow.h"
|
||
#include "DnFrameBlow.h"
|
||
#include "DnBasicBlow.h"
|
||
#include "DnTableDB.h"
|
||
#include "DnMonsterActor.h"
|
||
#include "DnWorld.h"
|
||
#ifdef _GAMESERVER
|
||
#include "DnGameRoom.h"
|
||
#include "DnGameDataManager.h"
|
||
#include "DnUserSession.h"
|
||
#endif
|
||
|
||
|
||
#if !defined( USE_BOOST_MEMPOOL )
|
||
#ifdef _DEBUG
|
||
#define new new(_NORMAL_BLOCK,__FILE__,__LINE__)
|
||
#endif
|
||
#endif // #if !defined( USE_BOOST_MEMPOOL )
|
||
|
||
|
||
CDnFrostbiteBlow::CDnFrostbiteBlow( DnActorHandle hActor, const char* szValue ) : CDnBlow( hActor ),
|
||
m_fFrameBlowArg( 0.0f ),
|
||
m_pMoveSpeedBlow( NULL ),
|
||
m_pIceDefenseBlow( NULL ),
|
||
m_bNestMap( false )
|
||
|
||
{
|
||
m_StateBlow.emBlowIndex = STATE_BLOW::BLOW_144;
|
||
|
||
SetValue( szValue );
|
||
m_fValue = 0.0f;
|
||
|
||
#ifdef _GAMESERVER
|
||
CDNGameRoom* pGameRoom = static_cast<CDNGameRoom*>(m_hActor->GetRoom());
|
||
if( false == pGameRoom->bIsPvPRoom() )
|
||
{
|
||
UINT uiSessionID = 0;
|
||
pGameRoom->GetLeaderSessionID( uiSessionID );
|
||
CDNUserSession *pUserSession = pGameRoom ? pGameRoom->GetUserSession(uiSessionID) : NULL;
|
||
if( pUserSession )
|
||
{
|
||
const TMapInfo* pMapData = g_pDataManager->GetMapInfo( pUserSession->GetMapIndex() );
|
||
if( pMapData )
|
||
#if defined(PRE_ADD_DRAGON_FELLOWSHIP)
|
||
m_bNestMap = CDnBlow::CheckEffectIgnoreMapType(pMapData->MapType, pMapData->MapSubType);
|
||
#else // #if defined(PRE_ADD_DRAGON_FELLOWSHIP)
|
||
m_bNestMap = (GlobalEnum::MAP_DUNGEON == pMapData->MapType) &&
|
||
((GlobalEnum::MAPSUB_NEST == pMapData->MapSubType) ||(GlobalEnum::MAPSUB_NESTNORMAL == pMapData->MapSubType));
|
||
#endif // #if defined(PRE_ADD_DRAGON_FELLOWSHIP)
|
||
}
|
||
}
|
||
#else
|
||
#if defined(PRE_ADD_DRAGON_FELLOWSHIP)
|
||
m_bNestMap = CDnBlow::CheckEffectIgnoreMapType();
|
||
#else // #if defined(PRE_ADD_DRAGON_FELLOWSHIP)
|
||
CDnWorld* pWorld = CDnWorld::GetInstancePtr();
|
||
m_bNestMap = (CDnWorld::MapTypeEnum::MapTypeDungeon == pWorld->GetMapType()) &&
|
||
((CDnWorld::MapSubTypeEnum::MapSubTypeNest == pWorld->GetMapSubType() || CDnWorld::MapSubTypeEnum::MapSubTypeNestNormal == pWorld->GetMapSubType()));
|
||
#endif // #if defined(PRE_ADD_DRAGON_FELLOWSHIP)
|
||
#endif
|
||
|
||
string strValue( szValue );
|
||
std::vector<string> vlTokens;
|
||
TokenizeA( strValue, vlTokens, ";" );
|
||
|
||
// <20><><EFBFBD>ڴ<EFBFBD> 3<><33><EFBFBD><EFBFBD> <20>´<DEB4>. <20>̵<EFBFBD> <20>ӵ<EFBFBD> / <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> / <20>ñ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> % <20><>. <20><><EFBFBD><EFBFBD> (1.0f -> 100%)
|
||
bool bValidArgument = (3 == (int)vlTokens.size());
|
||
_ASSERT( bValidArgument && "<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ȿ<EFBFBD><C8BF> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>߸<EFBFBD><DFB8>Ǿ<EFBFBD><C7BE><EFBFBD><EFBFBD>ϴ<EFBFBD>." );
|
||
|
||
if( bValidArgument )
|
||
{
|
||
string strMoveSpeedArg = vlTokens.at( 0 );
|
||
string strFrameBlowArg = vlTokens.at( 1 );
|
||
string strIceDefenseArg = vlTokens.at( 2 );
|
||
|
||
m_pIceDefenseBlow = new CDnBasicBlow( hActor, strIceDefenseArg.c_str() );
|
||
m_pIceDefenseBlow->SetBlow( STATE_BLOW::BLOW_037 );
|
||
|
||
//bool bIgnoreActionEffect = false;
|
||
if( m_bNestMap )
|
||
{
|
||
// #27679 <20><><EFBFBD>ӵ<EFBFBD>, <20><><EFBFBD><EFBFBD>, 8<><38> <20><EFBFBD>Ʈ<EFBFBD><C6AE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD> ȿ<><C8BF><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>dz<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ΰ<EFBFBD>ȿ<EFBFBD><C8BF><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ʴ´<CAB4>.
|
||
bool bBossMonster = true;
|
||
if( m_hActor->IsMonsterActor() )
|
||
{
|
||
CDnMonsterActor* pMonsterActor = static_cast<CDnMonsterActor*>(m_hActor.GetPointer());
|
||
if( (CDnMonsterState::Boss == pMonsterActor->GetGrade() ||
|
||
CDnMonsterState::BossHP4 == pMonsterActor->GetGrade() ||
|
||
CDnMonsterState::NestBoss == pMonsterActor->GetGrade() ||
|
||
CDnMonsterState::NestBoss8 == pMonsterActor->GetGrade()) )
|
||
{
|
||
m_pMoveSpeedBlow = NULL;
|
||
bBossMonster = true;
|
||
m_bIgnoreEffectAction = true;
|
||
|
||
// <20>ñ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>Ҵ<EFBFBD> <20><><EFBFBD>ӵ<EFBFBD><D3B5><EFBFBD> <20>̻<EFBFBD><CCBB><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ե<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŵ..
|
||
}
|
||
}
|
||
}
|
||
|
||
// #51048 <20><><EFBFBD><EFBFBD>ȿ<EFBFBD><C8BF><EFBFBD><EFBFBD> <20>ִ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><EFBFBD>Ʈ <20><><EFBFBD>ӵ<EFBFBD><D3B5><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>͵<EFBFBD><CDB5><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>´<DEB4>.
|
||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ȿ<EFBFBD><C8BF><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>̹Ƿ<CCB9> <20>ʰ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>.
|
||
if( m_hActor->IsAppliedThisStateBlow(STATE_BLOW::BLOW_235) )
|
||
{
|
||
m_bIgnoreEffectAction = true;
|
||
}
|
||
|
||
if( false == m_bIgnoreEffectAction )
|
||
{
|
||
// <20>Ϲ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> ȿ<><C8BF><EFBFBD><EFBFBD> <20><> <20><><EFBFBD>.
|
||
m_pMoveSpeedBlow = new CDnBasicBlow( hActor, strMoveSpeedArg.c_str() );
|
||
m_pMoveSpeedBlow->SetBlow( STATE_BLOW::BLOW_076 ); // <20>̵<EFBFBD><CCB5>ӵ<EFBFBD> <20><>ȭ <20><><EFBFBD><EFBFBD>.
|
||
m_fFrameBlowArg = (float)atof( strFrameBlowArg.c_str() );
|
||
}
|
||
}
|
||
}
|
||
|
||
CDnFrostbiteBlow::~CDnFrostbiteBlow( void )
|
||
{
|
||
SAFE_DELETE( m_pMoveSpeedBlow );
|
||
SAFE_DELETE( m_pIceDefenseBlow );
|
||
}
|
||
|
||
void CDnFrostbiteBlow::OnBegin( LOCAL_TIME LocalTime, float fDelta )
|
||
{
|
||
// <20><><EFBFBD><EFBFBD> <20><><EFBFBD>ӽð<D3BD> = <ȿ<><C8BF><EFBFBD><EFBFBD><EFBFBD>ӽð<D3BD>> * ( 1 - <20><><EFBFBD>Ӽ<EFBFBD><D3BC><EFBFBD><EFBFBD><EFBFBD> * <20><><EFBFBD>º<EFBFBD><C2BA><EFBFBD> weight <20><> )
|
||
float fGlobalStateEffectWeight = CGlobalWeightTable::GetInstance().GetValue( CGlobalWeightTable::StateRevision );
|
||
float fIceResistance = m_hActor->GetElementDefense(CDnState::Ice);
|
||
|
||
// <20><><EFBFBD>ӽð<D3BD><C3B0><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>ٿ<EFBFBD><D9BF>ش<EFBFBD>.
|
||
m_StateBlow.fDurationTime = m_StateBlow.fDurationTime * (1.0f - fIceResistance*fGlobalStateEffectWeight);
|
||
|
||
if( m_pMoveSpeedBlow )
|
||
{
|
||
m_pMoveSpeedBlow->SetParentSkillInfo(&m_ParentSkillInfo);
|
||
// <20><><EFBFBD><EFBFBD> <20><><EFBFBD>ԵǾ<D4B5> <20>ִ<EFBFBD> <20><><EFBFBD><EFBFBD>ȿ<EFBFBD><C8BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><>ü<EFBFBD><C3BC> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>ϱ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>ӽð<D3BD><C3B0><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
// <20><>Ȯ<EFBFBD>ϰ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>ӽð<D3BD><C3B0><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ش<EFBFBD>.
|
||
m_hActor->UpdateFPS();
|
||
m_pMoveSpeedBlow->SetDurationTime( m_StateBlow.fDurationTime );
|
||
m_pMoveSpeedBlow->OnBegin( LocalTime, fDelta );
|
||
}
|
||
|
||
if( m_pIceDefenseBlow )
|
||
{
|
||
m_pIceDefenseBlow->SetParentSkillInfo(&m_ParentSkillInfo);
|
||
m_pIceDefenseBlow->SetDurationTime( m_StateBlow.fDurationTime );
|
||
m_pIceDefenseBlow->OnBegin( LocalTime, fDelta );
|
||
}
|
||
|
||
#ifdef _GAMESERVER
|
||
#ifdef PRE_MOD_FROSTBITE_EXCEPTION
|
||
// <20><><EFBFBD>̽<EFBFBD><CCBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǿ<EFBFBD><C7BF><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 25, 76<37><36> <20><><EFBFBD><EFBFBD>ȿ<EFBFBD><C8BF><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
// <20><><EFBFBD>߿<EFBFBD> <20><><EFBFBD>̽<EFBFBD><CCBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ؼ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>!
|
||
DNVector( DnBlowHandle ) vlFrameSpeedBlow;
|
||
m_hActor->GatherAppliedStateBlowByBlowIndex( STATE_BLOW::BLOW_025, vlFrameSpeedBlow );
|
||
for( DWORD n=0; n<vlFrameSpeedBlow.size(); n++ )
|
||
{
|
||
if ( vlFrameSpeedBlow[n]->GetParentSkillInfo()->iSkillID == 2212 )
|
||
m_hActor->CmdRemoveStateEffectFromID( vlFrameSpeedBlow[n]->GetBlowID() );
|
||
}
|
||
|
||
DNVector( DnBlowHandle ) vlMoveSpeedBlow;
|
||
m_hActor->GatherAppliedStateBlowByBlowIndex( STATE_BLOW::BLOW_076, vlMoveSpeedBlow );
|
||
for( DWORD n=0; n<vlMoveSpeedBlow.size(); n++ )
|
||
{
|
||
if ( vlMoveSpeedBlow[n]->GetParentSkillInfo()->iSkillID == 2212 )
|
||
m_hActor->CmdRemoveStateEffectFromID( vlMoveSpeedBlow[n]->GetBlowID() );
|
||
}
|
||
#endif // PRE_MOD_FROSTBITE_EXCEPTION
|
||
// Ŭ<><C5AC><EFBFBD>̾<EFBFBD>Ʈ<EFBFBD><C6AE><EFBFBD>Ե<EFBFBD> <20><> <20><><EFBFBD><EFBFBD>ȿ<EFBFBD><C8BF><EFBFBD><EFBFBD> <20><><EFBFBD>ӽð<D3BD><C3B0><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ٲ<EFBFBD><D9B2>ش<EFBFBD>.
|
||
// PVP <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̺<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> , <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ŭ<><C5AC><EFBFBD>̾<EFBFBD>Ʈ<EFBFBD><C6AE> <20><><EFBFBD>Ⱑ Ʋ<><C6B2><EFBFBD><EFBFBD><EFBFBD>°<EFBFBD><C2B0>찡 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||
m_hActor->CmdModifyStateEffect( GetBlowID(), m_StateBlow );
|
||
#endif
|
||
|
||
OutputDebug( "CDnFrostbiteBlow::OnBegin Value:%2.2f\n", m_fValue );
|
||
}
|
||
|
||
void CDnFrostbiteBlow::OnDuplicate( const STATE_BLOW& StateBlowInfo )
|
||
{
|
||
// MoveSpeedBlow <20><> NULL <20≯<EFBFBD> <20><><EFBFBD>ӵ<EFBFBD><D3B5><EFBFBD> <20>̻<EFBFBD> <20><><EFBFBD><EFBFBD>.
|
||
if( m_pMoveSpeedBlow )
|
||
{
|
||
m_hActor->UpdateFPS();
|
||
m_pMoveSpeedBlow->Duplicate( StateBlowInfo );
|
||
}
|
||
|
||
if( m_pIceDefenseBlow )
|
||
m_pIceDefenseBlow->Duplicate( StateBlowInfo );
|
||
}
|
||
|
||
void CDnFrostbiteBlow::Process( LOCAL_TIME LocalTime, float fDelta )
|
||
{
|
||
CDnBlow::Process( LocalTime, fDelta );
|
||
|
||
if( m_pMoveSpeedBlow )
|
||
m_pMoveSpeedBlow->Process( LocalTime, fDelta );
|
||
|
||
if( m_pIceDefenseBlow )
|
||
m_pIceDefenseBlow->Process( LocalTime, fDelta );
|
||
}
|
||
|
||
void CDnFrostbiteBlow::OnEnd( LOCAL_TIME LocalTime, float fDelta )
|
||
{
|
||
if( m_pMoveSpeedBlow )
|
||
{
|
||
// <20><><EFBFBD>ѽð<D1BD><C3B0><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> STATE_DURATION <20><><EFBFBD><EFBFBD> <20>Ǿ<EFBFBD><C7BE>ִ<EFBFBD> <20><><EFBFBD>찡 <20>־ UpdateFPS() <20><><EFBFBD><EFBFBD> <20><>ȿ<EFBFBD><C8BF> <20><><EFBFBD><EFBFBD>ȿ<EFBFBD><C8BF><EFBFBD><EFBFBD>
|
||
// <20>з<EFBFBD><D0B7>Ǿ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ӵ<EFBFBD><D3B5><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ǿ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>찡 <20><><EFBFBD><EFBFBD>.
|
||
SetState( STATE_BLOW::STATE_END );
|
||
m_hActor->UpdateFPS();
|
||
|
||
m_pMoveSpeedBlow->OnEnd( LocalTime, fDelta );
|
||
}
|
||
|
||
if( m_pIceDefenseBlow )
|
||
m_pIceDefenseBlow->OnEnd( LocalTime, fDelta );
|
||
|
||
OutputDebug( "CDnFrostbiteBlow::OnEnd Value:%2.2f\n", m_fValue );
|
||
}
|
||
|
||
#if defined(PRE_ADD_PREFIX_SYSTE_RENEW)
|
||
void CDnFrostbiteBlow::AddStateEffectValue(const char* szOrigValue, const char* szAddValue, std::string& szNewValue)
|
||
{
|
||
char szBuff[128] = {0, };
|
||
|
||
//<2F>Ľ̿<C4BD> <20>ʿ<EFBFBD><CABF><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||
std::vector<string> vlTokens[2];
|
||
string strArgument[2];
|
||
|
||
//<2F>ʿ<EFBFBD><CABF><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>
|
||
float fMoveSpeed[2] = {0.0f, };
|
||
float fFrame[2] = {0.0f, };
|
||
float fIceDefense[2] = {0.0f, };
|
||
|
||
//////////////////////////////////////////////////////////////////////////
|
||
//ù<><C3B9>° <20><><EFBFBD>ڿ<EFBFBD> <20>Ľ<EFBFBD>.
|
||
strArgument[0] = szOrigValue;
|
||
TokenizeA( strArgument[0], vlTokens[0], ";" );
|
||
|
||
if( vlTokens[0].size() == 3 )
|
||
{
|
||
fMoveSpeed[0] = (float)atof( vlTokens[0][0].c_str() );
|
||
fFrame[0] = (float)atof( vlTokens[0][1].c_str() );
|
||
fIceDefense[0] = (float)atof( vlTokens[0][2].c_str() );
|
||
}
|
||
//////////////////////////////////////////////////////////////////////////
|
||
|
||
|
||
//////////////////////////////////////////////////////////////////////////
|
||
//<2F>ι<EFBFBD>° <20><><EFBFBD>ڿ<EFBFBD> <20>Ľ<EFBFBD>
|
||
strArgument[1] = szAddValue;
|
||
TokenizeA( strArgument[1], vlTokens[1], ";" );
|
||
|
||
if( vlTokens[1].size() == 3 )
|
||
{
|
||
fMoveSpeed[1] = (float)atof( vlTokens[1][0].c_str() );
|
||
fFrame[1] = (float)atof( vlTokens[1][1].c_str() );
|
||
fIceDefense[1] = (float)atof( vlTokens[1][2].c_str() );
|
||
}
|
||
//////////////////////////////////////////////////////////////////////////
|
||
|
||
//<2F><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>Ѵ<EFBFBD>.
|
||
float fResultMoveSpeed = fMoveSpeed[0] + fMoveSpeed[1];
|
||
float fResultFrame = fFrame[0] + fFrame[1];
|
||
float fResultIceDefence = fIceDefense[0] + fIceDefense[1];
|
||
|
||
sprintf_s(szBuff, "%f;%f;%f", fResultMoveSpeed, fResultFrame, fResultIceDefence);
|
||
|
||
szNewValue = szBuff;
|
||
}
|
||
|
||
void CDnFrostbiteBlow::RemoveStateEffectValue(const char* szOrigValue, const char* szAddValue, std::string& szNewValue)
|
||
{
|
||
char szBuff[128] = {0, };
|
||
|
||
//<2F>Ľ̿<C4BD> <20>ʿ<EFBFBD><CABF><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||
std::vector<string> vlTokens[2];
|
||
string strArgument[2];
|
||
|
||
//<2F>ʿ<EFBFBD><CABF><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>
|
||
float fMoveSpeed[2] = {0.0f, };
|
||
float fFrame[2] = {0.0f, };
|
||
float fIceDefense[2] = {0.0f, };
|
||
|
||
//////////////////////////////////////////////////////////////////////////
|
||
//ù<><C3B9>° <20><><EFBFBD>ڿ<EFBFBD> <20>Ľ<EFBFBD>.
|
||
strArgument[0] = szOrigValue;
|
||
TokenizeA( strArgument[0], vlTokens[0], ";" );
|
||
|
||
if( vlTokens[0].size() == 3 )
|
||
{
|
||
fMoveSpeed[0] = (float)atof( vlTokens[0][0].c_str() );
|
||
fFrame[0] = (float)atof( vlTokens[0][1].c_str() );
|
||
fIceDefense[0] = (float)atof( vlTokens[0][2].c_str() );
|
||
}
|
||
//////////////////////////////////////////////////////////////////////////
|
||
|
||
|
||
//////////////////////////////////////////////////////////////////////////
|
||
//<2F>ι<EFBFBD>° <20><><EFBFBD>ڿ<EFBFBD> <20>Ľ<EFBFBD>
|
||
strArgument[1] = szAddValue;
|
||
TokenizeA( strArgument[1], vlTokens[1], ";" );
|
||
|
||
if( vlTokens[1].size() == 3 )
|
||
{
|
||
fMoveSpeed[1] = (float)atof( vlTokens[1][0].c_str() );
|
||
fFrame[1] = (float)atof( vlTokens[1][1].c_str() );
|
||
fIceDefense[1] = (float)atof( vlTokens[1][2].c_str() );
|
||
}
|
||
//////////////////////////////////////////////////////////////////////////
|
||
|
||
//<2F><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>Ѵ<EFBFBD>.
|
||
float fResultMoveSpeed = fMoveSpeed[0] - fMoveSpeed[1];
|
||
float fResultFrame = fFrame[0] - fFrame[1];
|
||
float fResultIceDefence = fIceDefense[0] - fIceDefense[1];
|
||
|
||
sprintf_s(szBuff, "%f;%f;%f", fResultMoveSpeed, fResultFrame, fResultIceDefence);
|
||
|
||
szNewValue = szBuff;
|
||
}
|
||
#endif // PRE_ADD_PREFIX_SYSTE_RENEW
|
||
|
||
#if defined(PRE_FIX_51048)
|
||
void CDnFrostbiteBlow::RemoveDebufAction(LOCAL_TIME LocalTime, float fDelta)
|
||
{
|
||
//<2F><> <20><><EFBFBD><EFBFBD>ȿ<EFBFBD><C8BF><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>Ǿ<EFBFBD> <20>ִ<EFBFBD> <20><><EFBFBD><EFBFBD> <20>Ʒ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> CDnActor::UpdateFPS<50>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD><EFBFBD> Frame<6D><65><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ų<EFBFBD><C5B2>.
|
||
//MoveSpeed<65><64><EFBFBD><EFBFBD>ȿ<EFBFBD><C8BF> <20><><EFBFBD><EFBFBD> <20>ɶ<EFBFBD> <20><> <20><><EFBFBD><EFBFBD> <20>ʱ<EFBFBD>ȭ<EFBFBD><C8AD> <20>ʿ<EFBFBD> <20>ϴ<EFBFBD>.
|
||
m_fFrameBlowArg = 0.0f;
|
||
|
||
if (m_pMoveSpeedBlow)
|
||
{
|
||
m_hActor->UpdateFPS();
|
||
m_pMoveSpeedBlow->OnEnd( LocalTime, fDelta );
|
||
}
|
||
|
||
SAFE_DELETE(m_pMoveSpeedBlow);
|
||
}
|
||
#endif // PRE_FIX_51048
|