[SOLVED] AutoSkill causes client to close

🚫
Exiled
Joined
Mar 21, 2013
Messages
224
Reaction score
19
When the Auto skill is turned on, game client will close after 15 - 30 mins when idle.

1693279993504 - [SOLVED] AutoSkill causes client to close - RaGEZONE Forums
 
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;
}
 
Upvote 0
C++:
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;
}

this is mine..I think I don't have that afk detector based on the code you posted above.


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;
}
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.

SOLUTION: comment this code in GLCharacter.cpp
C++:
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();
        }
 
Last edited:
Upvote 0
Back