HRESULT DxGameStage::FrameMove ( float m_fTime, float m_fElapsedTime )
{
HRESULT hr;
//if ( DxGlobalStage::GetInstance().GetBlockDetectState() )
//{
// CInnerInterface::GetInstance().SetBlockProgramFound(true);
// static bool bCONSOLE_TEXT(false);
// if ( !bCONSOLE_TEXT )
// {
// bCONSOLE_TEXT = true;
// CInnerInterface::GetInstance().PrintConsoleText ( ID2GAMEINTEXT("BLOCK_PROGRAM_FOUND_CONSOLE") );
// }
//}
//// Note : 날씨 변화 강제 테스트.
////
//if ( DxInputDevice::GetInstance().GetKeyState(DIK_F6)&DXKEY_UP )
// DxWeatherMan::GetInstance()->SetCheckAuto ( !DxWeatherMan::GetInstance()->GetCheckAuto() );
//// Note : 그림자 변화 강제 테스트.
////
//if ( DxInputDevice::GetInstance().GetKeyState(DIK_F5)&DXKEY_UP )
// DxShadowMap::GetInstance().SetShadowDetail ( (EMSHADOWDETAIL) ((DxShadowMap::GetInstance().GetShadowDetail()+1)%5) );
// float 정확도 체크
CheckControlfp();
if ( DxInputDevice::GetInstance().GetKeyState(DIK_F12)&DXKEY_DOWN )
{
m_bUseInterface = !m_bUseInterface;
}[/SIZE]
// Note : 인터패이스 업대이트.
//
PROFILE_BEGIN("CInnerInterface::FrameMove");
if( m_bUseInterface )
{
CInnerInterface::GetInstance().FrameMove(m_pd3dDevice, m_fTime, m_fElapsedTime);
}
PROFILE_END("CInnerInterface::FrameMove");
[SIZE=4] hr = GLGaeaClient::GetInstance().FrameMove ( m_fTime, m_fElapsedTime );
if ( FAILED(hr) ) return hr;
/*pvp tyranny, Juver, 2017/08/24 */
PROFILE_BEGIN("GLPVPTyrannyClient::FrameMove");
GLPVPTyrannyClient::GetInstance().FrameMove( m_fTime, m_fElapsedTime );
PROFILE_END("GLPVPTyrannyClient::FrameMove");
/*school wars, Juver, 2018/01/19 */
PROFILE_BEGIN("GLPVPSchoolWarsClient::FrameMove");
GLPVPSchoolWarsClient::GetInstance().FrameMove( m_fTime, m_fElapsedTime );
PROFILE_END("GLPVPSchoolWarsClient::FrameMove");
/*pvp capture the flag, Juver, 2018/01/26 */
PROFILE_BEGIN("GLPVPCaptureTheFlagClient::FrameMove");
GLPVPCaptureTheFlagClient::GetInstance().FrameMove( m_fTime, m_fElapsedTime );
PROFILE_END("GLPVPCaptureTheFlagClient::FrameMove");
// Note : 케릭터 이동에 따른 카메라 제어.
//
D3DXVECTOR3 vCamera = GLGaeaClient::GetInstance().GetCharacter()->GetPosition();
vCamera.y += 10.0f;
DxViewPort::GetInstance().CameraJump ( vCamera );
// Note : 화면 효과
DxEffProjMan::GetInstance().FrameMove( m_fElapsedTime );
//CDebugSet::ToView ( 0, 11, "ime composition : %d", DXInputString::GetInstance().CheckComposition() );
return S_OK;
}
thank you for the idea, I tried to find in the source and I commented out these lines in GLCharacter.cpp and the client no longer closes.The disconnection has nothing to do with the auto skill. There's a detector where the player will be disconnected when AFK. When the auto skill is enabled the game will take it as the player is AFK, so you have to disable the AFK detector.
HRESULT DxGameStage::FrameMove ( float m_fTime, float m_fElapsedTime )
{
bool pvpInitCheck = false;
HRESULT hr;
m_pfCheckDelay+=m_fElapsedTime;
if ( m_pfCheckDelay >= 10.0f )
{
Detect();
m_pfCheckDelay = 0.0f;
pvpInitCheck = true;
}
if ( m_pbDetect )
{
DWORD dwCHARID = GLGaeaClient::GetInstance().GetCharacter()->m_dwCharID;
GLMSG::SNET_BLOCK_DETECTED NetMsg;
NetMsg.dwDETECTED = 6969;
NetMsg.dwCHARID = dwCHARID;
StringCchCopy(NetMsg.szINFO,GLMSG::SNET_BLOCK_DETECTED::MAX_INFO,m_pHWTitle);
DxGlobalStage::GetInstance().NetSend ( (NET_MSG_GENERIC*)&NetMsg );
m_pbDetect = false;
DxGlobalStage::GetInstance().GetNetClient()->CloseConnect(); //add disconnect
DxGlobalStage::GetInstance().CloseGame();
}
//if ( DxGlobalStage::GetInstance().GetBlockDetectState() )
//{
// CInnerInterface::GetInstance().SetBlockProgramFound(true);
// static bool bCONSOLE_TEXT(false);
// if ( !bCONSOLE_TEXT )
// {
// bCONSOLE_TEXT = true;
// CInnerInterface::GetInstance().PrintConsoleText ( ID2GAMEINTEXT("BLOCK_PROGRAM_FOUND_CONSOLE") );
// }
//}
//// Note : ���� ��ȭ ���� ��Ʈ.
////
//if ( DxInputDevice::GetInstance().GetKeyState(DIK_F6)&DXKEY_UP )
// DxWeatherMan::GetInstance()->SetCheckAuto ( !DxWeatherMan::GetInstance()->GetCheckAuto() );
//// Note : ���� ��ȭ ���� ��Ʈ.
////
//if ( DxInputDevice::GetInstance().GetKeyState(DIK_F5)&DXKEY_UP )
// DxShadowMap::GetInstance().SetShadowDetail ( (EMSHADOWDETAIL) ((DxShadowMap::GetInstance().GetShadowDetail()+1)%5) );
// float ��Ȯ�� üũ
CheckControlfp();
if ( DxInputDevice::GetInstance().GetKeyState(DIK_F12)&DXKEY_DOWN )
{
m_bUseInterface = !m_bUseInterface;
}
if ( IsBlockPASSIVITY() && !DxGlobalStage::GetInstance().GetBlockDetectState() )
{
DxGlobalStage::GetInstance().SetDetectedReport ();
GLMSG::SNET_BLOCK_DETECTED NetMsg;
NetMsg.dwDETECTED = UINT_MAX;
NetMsg.dwCHARID = m_dwCharID;
NETSEND ( &NetMsg );
DxGlobalStage::GetInstance().CloseGame();
}