void GameServer::OnAcquireTableAccess(AcquireTableAccessPacket* p, void* pParam){ if( p->m_nSessionId != 0 || p->m_nSessionIdAcquire == 0 || p->m_nTableId <= 0 || p->m_nTournamentId < 0 ) return; ClientConnection* pConn = (ClientConnection*)pParam; Session* pSess = Session::GetSessionById(p->m_nSessionIdAcquire, true); bool bSuccess = false; if( pConn->IsTableConnection() ) return; if( pSess && pSess->IsActive() ){ int nUserId = pSess->GetUserId(); pSess->SetTableConnection(p->m_nTableId, p->m_nTournamentId, pConn, true); pConn->SetTableConnection(p->m_nTableId, p->m_nTournamentId); if( nUserId > 0 ) pConn->SetAuthorized(true); p->m_bAvatarIsBlocked = pSess->IsAvatarBlocked(); p->m_bChatIsBlocked = pSess->IsChatBlocked(); p->m_nUserId = nUserId; bSuccess = true; SafePointer::Release(pSess); } // Send reply. if( bSuccess ){ //pConn->SetAuthorized( pConn->SetSession(pSess); p->m_nErrorCode = ES_ERROR_SUCCESS; } else{ p->m_nUserId = 0; p->m_nErrorCode = ES_ERROR_UNKNOWN; } SendPacket(pConn, p, true); }