bool CManageClient::IsAccepted(in_addr_t ip) const { if(m_AllowOrDeny){ //true is black,false is white if(IsInBlackList(ip)) return false; else return true; } else{ return IsInWhiteList(ip); } }
BATTLE_FIELD_RESULT_CODE KBattleFieldManager::CanJoinQueue(DWORD dwRoleID, KQUEUE* pQueue, DWORD dwGroupID) { BATTLE_FIELD_RESULT_CODE nResult = bfrcFailed; BOOL bRetCode = false; KRole* pRole = NULL; DWORD dwForceMask = 0; int nJoinedQueue = 0; pRole = g_pSO3GameCenter->m_RoleManager.GetRole(dwRoleID); KGLOG_PROCESS_ERROR(pRole); bRetCode = CheckJoinTime(pQueue->dwMapID); KG_PROCESS_ERROR_RET_CODE(bRetCode, bfrcTimeError); bRetCode = IsInBlackList(dwRoleID); KG_PROCESS_ERROR_RET_CODE(!bRetCode, bfrcInBlackList); KG_PROCESS_ERROR_RET_CODE( pRole->m_byLevel >= pQueue->nMinJoinLevel && pRole->m_byLevel <= pQueue->nMaxJoinLevel, bfrcLevelError ); KGLOG_PROCESS_ERROR(pRole->m_dwForceID < sizeof(DWORD) * CHAR_BIT); KGLOG_PROCESS_ERROR(dwGroupID < MAX_BATTLE_SIDE); dwForceMask = (1 << pRole->m_dwForceID); KG_PROCESS_ERROR_RET_CODE(pQueue->dwForcMask[dwGroupID] & dwForceMask, bfrcForceError); if (pRole->m_eCamp != cNeutral) { KG_PROCESS_ERROR_RET_CODE(pQueue->eCampRequire[dwGroupID] == pRole->m_eCamp, bfrcCampError); } KG_PROCESS_ERROR_RET_CODE(pRole->m_dwMapID != pQueue->dwMapID, bfrcNotInSameMap); nJoinedQueue = CountRoleJoinedQueue(dwRoleID); KG_PROCESS_ERROR_RET_CODE(nJoinedQueue < MAX_QUEUE_PER_PLAYER, bfrcTooManyJoin); nResult = bfrcSuccess; Exit0: return nResult; }