void CCoupleHelper::OnDecoupleResult( CAr & ar ) { u_long idPlayer; int nResult; ar >> idPlayer >> nResult; election::OutputDebugString( "S: CCoupleHelper.OnDecoupleResult: %d, %d", idPlayer, nResult ); CUser* pUser = static_cast<CUser*>( prj.GetUserByID( idPlayer ) ); if( nResult == 0 ) { CCouple* pCouple = m_pMgr->GetCouple( idPlayer ); ASSERT( pCouple ); if( !pCouple ) return; CUser* pPartner = static_cast<CUser*>( prj.GetUserByID( pCouple->GetPartner( idPlayer ) ) ); m_pMgr->Decouple( idPlayer ); if( IsValidObj( pUser ) ) { pUser->AddDecoupleResult(); g_UserMng.SandCoupleInfo(pUser,0, NULL); #if __VER >= 13 // __HONORABLE_TITLE // 달인 int nIdx = CTitleManager::Instance()->GetIdx(HS_COUPLE_LV,HI_COUNT_CHECK); if( nIdx >= 0) { int nPrevLvl = pUser->GetHonorTitle(nIdx); pUser->SetHonorCount(nIdx,0); int nNeedCount = CTitleManager::Instance()->GetNeedCount(HS_COUPLE_LV,HI_COUNT_CHECK); if( nNeedCount >= nPrevLvl ) pUser->AddHonorListAck(); } #endif // __HONORABLE_TITLE // 달인 } if( IsValidObj( pPartner ) ) { pPartner->AddDecoupleResult(); g_UserMng.SandCoupleInfo(pPartner,0, NULL); #if __VER >= 13 // __HONORABLE_TITLE // 달인 int nIdx = CTitleManager::Instance()->GetIdx(HS_COUPLE_LV,HI_COUNT_CHECK); if( nIdx >= 0) { int nPrevLvl = pPartner->GetHonorTitle(nIdx); pPartner->SetHonorCount(nIdx,0); int nNeedCount = CTitleManager::Instance()->GetNeedCount(HS_COUPLE_LV,HI_COUNT_CHECK); if( nNeedCount >= nPrevLvl ) pPartner->AddHonorListAck(); } #endif // __HONORABLE_TITLE // 달인 } } else { if( IsValidObj( pUser ) ) pUser->AddDefinedText( nResult ); } }
void CCoupleHelper::OnCoupleResult( CAr & ar ) { u_long idProposer, idTarget; int nResult; ar >> idProposer >> idTarget >> nResult; election::OutputDebugString( "S: CCoupleHelper.OnCoupleResult: %d, %d, %d", idProposer, idTarget, nResult ); CUser* pProposer = static_cast<CUser*>( prj.GetUserByID( idProposer ) ); CUser* pTarget = static_cast<CUser*>( prj.GetUserByID( idTarget ) ); if( nResult == 0 ) { m_pMgr->Couple( idProposer, idTarget ); const char* pszProposer = CPlayerDataCenter::GetInstance()->GetPlayerString( idProposer ); const char* pszTarget = CPlayerDataCenter::GetInstance()->GetPlayerString( idTarget ); if( !pszProposer ) pszProposer = ""; if( !pszTarget ) pszTarget = ""; if( IsValidObj( pProposer ) ) { pProposer->AddCoupleResult( idTarget, pszTarget ); #if __VER >= 13 // __HONORABLE_TITLE // 달인 pProposer->SetHonorAdd( HS_COUPLE_COUNT,HI_COUNT_CHECK ); #endif // __HONORABLE_TITLE g_UserMng.SandCoupleInfo(pProposer,1, pszTarget); } if( IsValidObj( pTarget ) ) { pTarget->AddCoupleResult( idProposer, pszProposer ); #if __VER >= 13 // __HONORABLE_TITLE // 달인 pTarget->SetHonorAdd(HS_COUPLE_COUNT,HI_COUNT_CHECK ); #endif // __HONORABLE_TITLE // 달인 g_UserMng.SandCoupleInfo(pTarget,1, pszProposer); } CString szString; szString.Format("鯤소 %s 宅鯤소 %s 써槨죄헙쩟,댕소龍르儉쳬!",pProposer->GetName(),pTarget->GetName()); g_DPCoreClient.SendSystem( szString ); } else { if( IsValidObj( pTarget ) ) pTarget->AddDefinedText( nResult ); } }