Пример #1
0
VOID KRankHandler::OnSwapRankRequest(BYTE* pbyData, size_t uDataLen, int nConnIndex)
{
	BOOL						bRetCode	= FALSE;
	BOOL						bSucceed	= FALSE;
	DWORD						dwId		= 0;
	S2R_SWAP_RANK_REQUEST*		pRequest	= (S2R_SWAP_RANK_REQUEST*)pbyData;
	KRankPool*					pRankPool	= NULL;
	KRole*						pRole		= NULL;

	pRankPool = g_pGameCenter->m_RankManager.GetRankPool(pRequest->byRankId);
	LOG_PROCESS_ERROR(pRankPool);

	bSucceed = pRankPool->SwapRank(pRequest->dwSrcId, pRequest->dwDstId);
	LOG_PROCESS_ERROR(bSucceed);

	
	// 交换双方都发下
	bRetCode = DoSwapRankRespond(nConnIndex, pRequest->byRankId, pRequest->dwSrcId, pRankPool->GetIdxById(pRequest->dwSrcId), pRequest->dwDstId, pRankPool->GetIdxById(pRequest->dwDstId), bSucceed);
	LOG_PROCESS_ERROR(bRetCode);

	pRole = g_pGameCenter->m_RoleManager.GetRole(pRequest->dwDstId);
	if (pRole != NULL && pRole->m_nConnIndex != nConnIndex) // 在目标玩家和源玩家不在同一个gs的情况下,给目标玩家也发一次,以便更新目标玩家的竞技场信息
	{
		bRetCode = DoSwapRankRespond(pRole->m_nConnIndex, pRequest->byRankId, pRequest->dwSrcId, pRankPool->GetIdxById(pRequest->dwSrcId), pRequest->dwDstId, pRankPool->GetIdxById(pRequest->dwDstId), bSucceed);
		LOG_PROCESS_ERROR(bRetCode);
	}	

EXIT0:
	return;
}
Пример #2
0
BOOL KRankHandler::DoGetRankIdxRespond(INT nConnIndex, INT nRankId, DWORD dwSrcId, DWORD dwId, INT nRankIdx)
{
	BOOL						bRetCode = FALSE;
	BOOL						bResult	 = FALSE;
	R2S_GET_RANK_IDX_RESPOND*	pRespond = NULL;
	IMemBlock*					piPackage = NULL;


	piPackage = QCreateMemBlock(sizeof(R2S_GET_RANK_IDX_RESPOND));
	pRespond = (R2S_GET_RANK_IDX_RESPOND*)piPackage->GetData();
	LOG_PROCESS_ERROR(pRespond);

	pRespond->wProtocolID = r2s_get_rank_idx_respond;
	pRespond->nRankId = nRankId;
	pRespond->nRankIdx = nRankIdx;
	pRespond->dwSrcId = dwSrcId;
	pRespond->dwId = dwId;

	bRetCode = Send(nConnIndex, piPackage);
	LOG_PROCESS_ERROR(bRetCode);

	bResult = TRUE;
EXIT0:
	SAFE_RELEASE(piPackage);
	return bResult;
}
Пример #3
0
BOOL KRankHandler::DoSwapRankRespond(INT nConnIndex, INT nRankId, DWORD dwSrcId, INT nSrcRank, DWORD dwDestId, INT nDestRank, BOOL bSucceed)
{
	BOOL						bRetCode = FALSE;
	BOOL						bResult	 = FALSE;
	R2S_SWAP_RANK_RESPOND*		pRespond = NULL;
	IMemBlock*					piPackage = NULL;

	KRole* pRole = g_pGameCenter->m_RoleManager.GetRole(dwSrcId);
	PROCESS_ERROR(pRole);

	piPackage = QCreateMemBlock(sizeof(R2S_SWAP_RANK_RESPOND));
	pRespond = (R2S_SWAP_RANK_RESPOND*)piPackage->GetData();
	LOG_PROCESS_ERROR(pRespond);

	pRespond->wProtocolID = r2s_swap_rank_respond;
	pRespond->nRankId = nRankId;
	strcpy(pRespond->szSrcPlayerName, pRole->getName());		;
	pRespond->nSrcRank = nSrcRank;
	pRespond->dwDestId = dwDestId;
	pRespond->nDestRank = nDestRank;
	pRespond->bSucceed = bSucceed;

	bRetCode = Send(nConnIndex, piPackage);
	LOG_PROCESS_ERROR(bRetCode);

	bResult = TRUE;
EXIT0:
	SAFE_RELEASE(piPackage);
	return bResult;
}
Пример #4
0
BOOL KSndaAgency::DoTokenVerifyRequest(KPlayerAgency* pPlayer)
{
	BOOL            bResult     = false;
#ifdef USE_SDOA
	int             nRetCode    = 0;
	const char*     pszIP       = NULL;
	struct in_addr  RemoteIP;
	u_short         uRemotePort;

	assert(pPlayer);
	LOG_PROCESS_ERROR(m_piUserInfoAuthen);
	LOG_PROCESS_ERROR(pPlayer->piSocket);

	nRetCode = pPlayer->piSocket->GetRemoteAddress(&RemoteIP, &uRemotePort);
	LOG_PROCESS_ERROR(nRetCode);

	pszIP = inet_ntoa(RemoteIP);
	LOG_PROCESS_ERROR(pszIP);

	nRetCode = m_piUserInfoAuthen->AsyncGetUserInfo(pPlayer->szSndaToken, pszIP, (unsigned long)pPlayer->nIndex);
	if (nRetCode != 0)
	{
		QLogPrintf(LOG_DEBUG, "[SDOA] AsyncGetUserInfo failed! RetCode = %d", nRetCode);
		goto EXIT0;
	}

	bResult = true;
EXIT0:
#endif // USE_SDOA
	return bResult;
}
Пример #5
0
BOOL KPurseModule::ProcessProtocol(INT nPlayerIndex, LPCBYTE pbData, UINT uDataLen)
{
	QCONFIRM_RET_FALSE(nPlayerIndex > 0);
	QCONFIRM_RET_FALSE(pbData != NULL && uDataLen > 0);

	KPlayer* pPlayer = g_cPlayerMgr.GetByIndex(nPlayerIndex);
	QCONFIRM_RET_FALSE(NULL != pPlayer);

	KPlayerPurse* pPlayerPurse = pPlayer->GetCtrl<KPlayerPurse>();
	QCONFIRM_RET_FALSE(NULL != pPlayerPurse);

	KPTC_HEADER_BASE *pData = (KPTC_HEADER_BASE*)pbData;

	switch (pData->byProtocol)
	{
	case emPURSE_PTC_C2S_SYNC_AL_CHEMY:
		KPlayer* pPlayer = g_cPlayerMgr.GetByIndex(nPlayerIndex);
		LOG_PROCESS_ERROR(pPlayer);
		KPlayerPurse* pPlayerPurse = pPlayer->GetCtrl<KPlayerPurse>();
		LOG_PROCESS_ERROR(pPlayerPurse);

		// ×ö³ö´ðÌâÑ¡Ôñ
		C2S_PURSE_SYNC_AL_CHEMY* ptcAward = (C2S_PURSE_SYNC_AL_CHEMY*)pData;
		pPlayerPurse->SyncBowlData(ptcAward->nRefresh);

		break;

	}
EXIT0:
	return TRUE;
}
Пример #6
0
BOOL KSndaAgency::LoadConfig()
{
	BOOL        bResult     = false;
	BOOL        bRetCode    = false;
	IIniFile*   piIniFile   = NULL;

	piIniFile = g_OpenIniFile(GATEWAY_CONFIG_FILE);
	LOG_PROCESS_ERROR(piIniFile);

	m_bOpen = true;
	bRetCode = piIniFile->IsSectionExist("SDOA");
	if (!bRetCode)
	{
		m_bOpen = false;
		goto EXIT1;
	}

	bRetCode = piIniFile->GetString("SDOA", "AdultIDCard", "not configed", m_szAdultIDCard, sizeof(m_szAdultIDCard)); 
	LOG_PROCESS_ERROR(bRetCode);

EXIT1:
	bResult = true;
EXIT0:
	SAFE_RELEASE(piIniFile);
	return bResult;
}
Пример #7
0
BOOL KQueueSlave::DoCreateOverallTeamRequest(INT nPlayerId, LPCTSTR szPlayerName, BYTE byPlayerLevel, BYTE byPlayerSex, INT nFightScore, INT nMapId, INT nRequireFightScore)
{
	BOOL								bResult     = false;
	BOOL								bRetCode    = false;
	IMemBlock*							piPackage   = NULL;
	R2M_OVERALL_CREATE_TEAM_REQUEST*    pRequest    = NULL;
	INT nConnIndex									= 0;

	piPackage = QCreateMemBlock(sizeof(R2M_OVERALL_CREATE_TEAM_REQUEST));
	LOG_PROCESS_ERROR(piPackage);

	pRequest = (R2M_OVERALL_CREATE_TEAM_REQUEST*)piPackage->GetData();
	LOG_PROCESS_ERROR(pRequest);

	pRequest->wProtocolID        = r2m_overall_create_team_request;
	pRequest->nCreaterId = nPlayerId;
	pRequest->nInstanceMapId = nMapId;
	pRequest->nServerId = 1;		// 先暂定为1,以后每个服一个编号
	pRequest->nRequireFightScore = nRequireFightScore;
	strncpy(pRequest->szPlayerName, szPlayerName, MAX_NAME_LEN);
	pRequest->byCreaterLevel = byPlayerLevel;
	pRequest->byCreaterSex = byPlayerSex;
	pRequest->nCreaterFightScore = nFightScore;

	bRetCode = Send(piPackage);
	LOG_PROCESS_ERROR(bRetCode);

	bResult = true;
EXIT0:
	SAFE_RELEASE(piPackage);
	return bResult;
}
Пример #8
0
void CMainFrame::OnCreateItemOnListView(wxCommandEvent& event)
{
	wxString btnString = event.GetString();

	/*if (btnString.Find(m_leftWindow->getSkillRootID().GetID()) == "")
	{
	}*/
	wxString selText = wxT("");
	LOG_PROCESS_ERROR (m_leftWindow && m_rightWindow);

	wxTreeItemId selItem = m_leftWindow->GetSelection();

	LOG_PROCESS_ERROR (selItem.IsOk());

	if (selItem == m_leftWindow->getSkillRootID())
	{
		m_rightWindow->showGridPage(ECreateItemType_Skill, true);
	}else if (selItem == m_leftWindow->getAuraRootID())
	{
		m_rightWindow->showGridPage(ECreateItemType_Aura);
	}else if (selItem == m_leftWindow->getEotRootID())
	{
		m_rightWindow->showGridPage(ECreateItemType_Eot);
	}

	selText = m_leftWindow->GetItemText(selItem);
	wxLogMessage(selText);
	return;
Exit0:
	return;
}
Пример #9
0
BOOL KQueueSlave::DoGetPlayerOverallTeamRequest(INT nPlayerId, DWORD dwLeaderCombinedIdx)
{
	BOOL								bResult     = false;
	BOOL								bRetCode    = false;
	IMemBlock*							piPackage   = NULL;
	R2M_GET_PLAYER_OVERALLTEAM_REQUEST*    pRequest    = NULL;

	piPackage = QCreateMemBlock(sizeof(R2M_GET_PLAYER_OVERALLTEAM_REQUEST));
	LOG_PROCESS_ERROR(piPackage);

	pRequest = (R2M_GET_PLAYER_OVERALLTEAM_REQUEST*)piPackage->GetData();
	LOG_PROCESS_ERROR(pRequest);

	pRequest->wProtocolID        = r2m_get_player_overallteam_request;
	pRequest->nPlayerId = nPlayerId;
	pRequest->dwLeaderCombinedIdx = dwLeaderCombinedIdx;

	bRetCode = Send(piPackage);
	LOG_PROCESS_ERROR(bRetCode);

	bResult = true;
EXIT0:
	SAFE_RELEASE(piPackage);
	return bResult;
}
Пример #10
0
BOOL KQueueSlave::DoKickOverallPlayerRequest(DWORD dwLeaderCombinedIdx, DWORD dwMemberCombinedIdx)
{
	BOOL								bResult     = false;
	BOOL								bRetCode    = false;
	IMemBlock*							piPackage   = NULL;
	R2M_KICK_OVERALL_PLAYER_REQUEST*    pRequest    = NULL;

	piPackage = QCreateMemBlock(sizeof(R2M_KICK_OVERALL_PLAYER_REQUEST));
	LOG_PROCESS_ERROR(piPackage);

	pRequest = (R2M_KICK_OVERALL_PLAYER_REQUEST*)piPackage->GetData();
	LOG_PROCESS_ERROR(pRequest);

	pRequest->wProtocolID        = r2m_kick_player_request;
	pRequest->dwLeaderCombinedIdx = dwLeaderCombinedIdx;
	pRequest->dwMemberCombinedIdx = dwMemberCombinedIdx;

	bRetCode = Send(piPackage);
	LOG_PROCESS_ERROR(bRetCode);

	bResult = true;
EXIT0:
	SAFE_RELEASE(piPackage);
	return bResult;
}
Пример #11
0
BOOL KQueueSlave::DoLeaveOverallTeamRequest(DWORD dwMemberCombinedIdx, DWORD dwLeaderCombinedIdx, BYTE byIsKick)
{
	BOOL								bResult     = false;
	BOOL								bRetCode    = false;
	IMemBlock*							piPackage   = NULL;
	R2M_OVERALL_LEAVE_TEAM_REQUEST*    pRequest    = NULL;

	piPackage = QCreateMemBlock(sizeof(R2M_OVERALL_LEAVE_TEAM_REQUEST));
	LOG_PROCESS_ERROR(piPackage);

	pRequest = (R2M_OVERALL_LEAVE_TEAM_REQUEST*)piPackage->GetData();
	LOG_PROCESS_ERROR(pRequest);

	pRequest->wProtocolID        = r2m_overall_leave_team_request;
	pRequest->dwMemberCombinedIdx = dwMemberCombinedIdx;
	pRequest->dwLeaderCombinedIdx = dwLeaderCombinedIdx;
	pRequest->byIsKick = byIsKick;

	bRetCode = Send(piPackage);
	LOG_PROCESS_ERROR(bRetCode);

	bResult = true;
EXIT0:
	SAFE_RELEASE(piPackage);
	return bResult;
}
Пример #12
0
BOOL KQueueSlave::DoMemberPrepareRequest(INT nMemberId, DWORD dwLeaderCombinedIdx, BYTE byPrepare)
{
	BOOL								bResult     = false;
	BOOL								bRetCode    = false;
	IMemBlock*							piPackage   = NULL;
	R2M_OVERALL_PREPARE_REQUEST*    pRequest    = NULL;

	piPackage = QCreateMemBlock(sizeof(R2M_OVERALL_PREPARE_REQUEST));
	LOG_PROCESS_ERROR(piPackage);

	pRequest = (R2M_OVERALL_PREPARE_REQUEST*)piPackage->GetData();
	LOG_PROCESS_ERROR(pRequest);

	pRequest->wProtocolID        = r2m_overall_team_prepare_request;
	pRequest->nMemberId = nMemberId;
	pRequest->dwLeaderCombinedIdx = dwLeaderCombinedIdx;
	pRequest->byPrepare = byPrepare;

	bRetCode = Send(piPackage);
	LOG_PROCESS_ERROR(bRetCode);

	bResult = true;
EXIT0:
	SAFE_RELEASE(piPackage);
	return bResult;
}
Пример #13
0
BOOL KQueueSlave::DoJoinOverallTeamRequest(INT nMemberId, LPCTSTR szMemberName, BYTE byMemberLevel, BYTE byMemberSex, INT nFightScore, INT nInstanceMapId, DWORD dwCombinedIdx)
{
	BOOL								bResult     = false;
	BOOL								bRetCode    = false;
	IMemBlock*							piPackage   = NULL;
	R2M_OVERALL_JOIN_TEAM_REQUEST*    pRequest    = NULL;

	piPackage = QCreateMemBlock(sizeof(R2M_OVERALL_JOIN_TEAM_REQUEST));
	LOG_PROCESS_ERROR(piPackage);

	pRequest = (R2M_OVERALL_JOIN_TEAM_REQUEST*)piPackage->GetData();
	LOG_PROCESS_ERROR(pRequest);

	pRequest->wProtocolID        = r2m_overall_join_team_request;
	pRequest->nMemberId = nMemberId;
	strncpy(pRequest->szMemberName, szMemberName, MAX_NAME_LEN);
	pRequest->byMemberLevel = byMemberLevel;
	pRequest->byMemberSex = byMemberSex;
	pRequest->nMemberFightScore = nFightScore;
	pRequest->nInstanceMapId = nInstanceMapId;
	pRequest->dwCombinedIdx = dwCombinedIdx;

	bRetCode = Send(piPackage);
	LOG_PROCESS_ERROR(bRetCode);

	bResult = true;
EXIT0:
	SAFE_RELEASE(piPackage);
	return bResult;
}
Пример #14
0
BOOL KRecordHandler::DoGetAllPurchaseRespond(INT nConnIndex, INT nShopId, INT nCategoryId, INT nGoodsId, INT nCount, INT nBuycount, DWORD dwRoleId)
{
	BOOL							bRetCode = FALSE;
	BOOL							bResult	 = FALSE;
	R2S_BUY_ALL_PURCHASE_REQUEST*		pRespond = NULL;
	IMemBlock*						piPackage = NULL;

	piPackage = QCreateMemBlock(sizeof(R2S_BUY_ALL_PURCHASE_REQUEST));
	pRespond = (R2S_BUY_ALL_PURCHASE_REQUEST*)piPackage->GetData();
	LOG_PROCESS_ERROR(pRespond);

	pRespond->wProtocolID = r2s_get_all_purchase_buy_respond;
	pRespond->nShopId = nShopId;
	pRespond->nCategoryId = nCategoryId;
	pRespond->nGoodsId = nGoodsId;
	pRespond->nCount = nCount;
	pRespond->dwRoleId = dwRoleId;
	pRespond->nBuyCount = nBuycount;
	bRetCode = Send(nConnIndex, piPackage);
	LOG_PROCESS_ERROR(bRetCode);

	bResult = TRUE;
EXIT0:
	SAFE_RELEASE(piPackage);
	return bResult;
}
Пример #15
0
INT KNetConnectPlayer::OnClientLogin2( DWORD dwRoleId, const GUID& rConnGuid, INT nConnectId, BOOL bHidden /*= FALSE*/,BOOL bTinyTerminal)
{
	INT nRetCode = FALSE;
	KPlayer* pPlayer = NULL;
	INT nPlayerIndex = 0;
	pPlayer = g_cPlayerMgr.GetById(dwRoleId);
	LOG_PROCESS_ERROR(pPlayer);
	LOG_PROCESS_ERROR(pPlayer->GetGameState() == gsWaitForConnect);
	LOG_PROCESS_ERROR(pPlayer->m_cPlayerServer.m_Guid == rConnGuid);
	pPlayer->SetTinyTerminal(bTinyTerminal);
	nPlayerIndex = pPlayer->GetPlayerIndex();
	
	m_pnConnId2PlayerIndex[nConnectId] = nPlayerIndex;
	m_pnPlayerIndex2ConnId[nPlayerIndex] = nConnectId;

	m_mpAccount2Player[pPlayer->m_cPlayerServer.m_strAccount] = nPlayerIndex;

	g_RelayClient.DoConfirmPlayerLoginRequest(dwRoleId);

	pPlayer->SetGameState(gsWaitForPermit);
	pPlayer->m_nTimer       = 0;
	
	nRetCode = TRUE;
EXIT0:
	if (!nRetCode)
	{
		QLogPrintf(LOG_INFO, "Invalid Client: %d\n", nConnectId);

		if (pPlayer)
			QLogPrintf(LOG_INFO, "Player %d state %d\n", dwRoleId, pPlayer->GetGameState());
	}
	return nRetCode;
}
Пример #16
0
void QMailModule::OnQueryMailContent(KPlayer* pPlayer, char* pData, size_t uDataLen)
{
	BOOL                    bRetCode    = false;
	KNpc*                   pNpc        = NULL;
	C2S_QUERY_MAIL_CONTENT* pPak        = (C2S_QUERY_MAIL_CONTENT*)pData;

	LOG_PROCESS_ERROR(pPlayer);
	LOG_PROCESS_ERROR(pData);
	LOG_PROCESS_ERROR(uDataLen == sizeof(C2S_QUERY_MAIL_CONTENT));
	LOG_PROCESS_ERROR(pPak->dwMailID);

// 	if (pPak->byMailType != eMailType_GmMessage && pPak->byMailType != eMailType_PlayerMessage)
// 	{
// 		pNpc = 0; //  TODO get by id(pPak->dwNpcID);
// 		LOG_PROCESS_ERROR(pNpc);
// 		//LOG_PROCESS_ERROR(pNpc is Mailbox);
// 
// 		bRetCode = g_InRange(pPlayer, pNpc, COMMON_PLAYER_OPERATION_DISTANCE);
// 		LOG_PROCESS_ERROR(bRetCode);
// 	}
//
//	PROCESS_ERROR(pPlayer->m_eMoveState  == cmsOnStand);

	bRetCode = MailRelayClient::DoQueryMailContent(pPlayer->m_dwId, pPak->dwMailID, pPak->byMailType);
	LOG_PROCESS_ERROR(bRetCode);

EXIT0:
	return;
}
Пример #17
0
BOOL QMailModule::DoGetMailListRespond( KPlayer* pPlayer, KMailListInfo* pMailListInfo, int nMailCount )
{
	BOOL							bRetCode			= FALSE;
	INT								nMailListDataLen	= 0;
	S2C_GET_MAIL_LIST_RESPOND*		pRespond			= (S2C_GET_MAIL_LIST_RESPOND*)m_byTempData;

	LOG_PROCESS_ERROR(pPlayer);
	LOG_PROCESS_ERROR(pMailListInfo);

	pRespond->byProtocol	= s2c_get_mail_list_respond;
	pRespond->byMailCount	= nMailCount;

	nMailListDataLen = sizeof(KMailListInfo) * nMailCount;

	if (nMailListDataLen > 0)
	{
		memcpy(pRespond->MailListInfo, pMailListInfo, nMailListDataLen);
	}

	bRetCode = SendLenData(pPlayer->GetPlayerIndex(), *pRespond, sizeof(S2C_GET_MAIL_LIST_RESPOND) + nMailListDataLen);
	LOG_PROCESS_ERROR(bRetCode);

	bRetCode = TRUE;
EXIT0:
	return bRetCode;
}
Пример #18
0
BOOL FactionManager::SetLevel( KCharacter& rcCharacter, WORD wOldValue, WORD wNewValue )
{
	//QLogPrintf(LOG_INFO,"..FactionManager::SetLevel..");
	BOOL bRetCode = FALSE;
	PlayerFaction* playerFaction = NULL;
	PROCESS_ERROR(rcCharacter.GetLevel() && wOldValue != wNewValue);

	playerFaction = rcCharacter.GetCtrl<PlayerFaction>();
	LOG_PROCESS_ERROR(playerFaction);
	playerFaction->OnFactionRouteChange(rcCharacter.GetLevel(), rcCharacter.GetPrimaryFaction(), rcCharacter.GetCurrentRoute());

	playerFaction->OnLevelChange(wOldValue, wNewValue);

	if (wOldValue != 0 && wOldValue != wNewValue && wNewValue == ARENA_OPEN_LEVEL)
	{
		// 按战斗力加入竞技场排行榜
		PlayerArena* pPlayerArena = rcCharacter.GetCtrl<PlayerArena>();
		LOG_PROCESS_ERROR(pPlayerArena);
		pPlayerArena->AddArenaRank();
	}

	g_cCharacterHelper.CalcFightScore(rcCharacter);		// 这句话和上面的AddArenaRank顺序不能变,涉及到排名顺序问题

	bRetCode = TRUE;
EXIT0:
	return bRetCode;
}
Пример #19
0
BOOL TargetModule::ProcessProtocol(INT nPlayerIndex, LPCBYTE pbData, UINT uDataLen)
{
	QCONFIRM_RET_FALSE(pbData);

	KPTC_HEADER_BASE *pData = (KPTC_HEADER_BASE*)pbData;
	PlayerTarget* pPlayerTarget = NULL;

	KPlayer* pPlayer = g_cPlayerMgr.GetByIndex(nPlayerIndex);
	LOG_PROCESS_ERROR(pPlayer);
	pPlayerTarget = pPlayer->GetCtrl<PlayerTarget>();
	LOG_PROCESS_ERROR(pPlayerTarget);
	switch (pData->byProtocol)
	{
	case emTARGET_PTC_C2S_SYNC:
		pPlayerTarget->SyncTarget();
		break;
	case emTARGET_PTC_C2S_GETAWARD:
		TARGET_C2S_GETAWARD* ptcAward = (TARGET_C2S_GETAWARD*)pData;
		pPlayerTarget->GetAward(ptcAward->nDay, ptcAward->nId);
		break;
	}
	return TRUE;

EXIT0:
	return FALSE;
}
Пример #20
0
INT KGC_CoordinatorClient::Send( IMemBlock* piBuffer )
{
	INT nRet = FALSE;
	LOG_PROCESS_ERROR(m_piSocket);

	nRet = m_piSocket->Send(piBuffer);
	LOG_PROCESS_ERROR(nRet);

EXIT0:
	return nRet;
}
Пример #21
0
BOOL KSndaAgency::Init()
{
	BOOL                            bResult                     = false;
	int                             nRetCode                    = false;
#ifdef USE_SDOA
	KSdoaCreateUserInfoAuthenFunc   SdoaCreateUserInfoAuthen    = NULL;

	nRetCode = LoadConfig();
	LOG_PROCESS_ERROR(nRetCode);

	PROCESS_SUCCESS(!m_bOpen);

	m_hSDOALibrary = KG_LoadLibrary(SDOA_DLL_FILE);
	LOG_PROCESS_ERROR(m_hSDOALibrary);

	SdoaCreateUserInfoAuthen = (KSdoaCreateUserInfoAuthenFunc)KG_GetProcessAddress(m_hSDOALibrary, "sdoaCreateUserInfoAuthen");
	LOG_PROCESS_ERROR(SdoaCreateUserInfoAuthen);

	m_piUserInfoAuthen = SdoaCreateUserInfoAuthen();
	LOG_PROCESS_ERROR(m_piUserInfoAuthen);

	nRetCode = m_piUserInfoAuthen->Initialize(SDOA_CONFIG_FILE, &SdoaUserInfoCallBackFunc);
	if (nRetCode != 0)
	{
		QLogPrintf(LOG_DEBUG, "[SDOA] Initialize failed! RetCode = %d", nRetCode);
		goto EXIT0;
	}

#endif // USE_SDOA
EXIT1:
	bResult = true;
EXIT0:
	if (!bResult)
	{
		QThread_Sleep(10000);
#ifdef USE_SDOA
		SAFE_RELEASE(m_piUserInfoAuthen);

		if (m_hSDOALibrary)
		{
			KG_FreeLibrary(m_hSDOALibrary);
			m_hSDOALibrary = NULL;
		}
#endif // USE_SDOA
	}
	if (m_bOpen)
	{
		QLogPrintf(LOG_INFO, "[SDOA] Initialize %s!", bResult ? "succeed" : "failed");
	}

	return bResult;
}
Пример #22
0
BOOL KStageCtrl::OnTakeAward()
{
	BOOL bResult = FALSE;
	LOG_PROCESS_ERROR(sMopInfo.nState == emMopStateDone);

	ResetMopInfo();

	LOG_PROCESS_ERROR(SyncStageInfo());

	bResult = TRUE;
EXIT0:
	return bResult;
}
Пример #23
0
VOID KRecordHandler::OnSetBuyAllPurcaseRequest(BYTE* pbyData, size_t uDataLen, int nConnIndex)
{
	S2R_BUY_ALL_PURCHASE_REQUEST*			pRequest	= (S2R_BUY_ALL_PURCHASE_REQUEST*)pbyData;
	BOOL bResult = FALSE;
	LOG_PROCESS_ERROR(pRequest);
	bResult = g_pGameCenter->m_RecordManager.SetBuyAllPurchaseRequest(*pRequest);
	LOG_PROCESS_ERROR(bResult);
	g_pGameCenter->m_RecordManager.OnAllPurchaseRespond(nConnIndex, pRequest->nShopId, pRequest->nCategoryId, pRequest->nGoodsId, pRequest->nCount, pRequest->dwRoleId);
	g_pGameCenter->m_RecordManager.OnBuyAllPurchaseRecordBroadcast();

EXIT0:
	return;
}
Пример #24
0
void KRoleServerEyes::SendCustomInfo()
{
	l2e_update_custom_info* pInfo               = NULL;
	size_t                  uStrLen             = 0;
	IMemBlock*             piBuffer            = NULL;
	int                     nTotalAccounts = 0;
	std::string strClusterStatics;
	std::string strNameDbStatics;
	time_t timeClock = m_nNextPingTime;
	struct tm tmClock = *localtime(&timeClock);

	nTotalAccounts = g_cAccountIndexing.TotalAccounts();

	piBuffer = QCreateMemBlock(MAX_CUSTOM_INFO_PAK);
	LOG_PROCESS_ERROR(piBuffer);
	
	pInfo = (l2e_update_custom_info*)piBuffer->GetData();
	LOG_PROCESS_ERROR(pInfo);

	pInfo->wProtocol	= l2e_header_def;
	pInfo->wServer		= 0;
	pInfo->wSubProtocol = l2e_update_custom_info_def;

	g_cDbClusterMgr.GetWorkStat(strClusterStatics);
	g_cNameServerMgr.GetWorkStat(strNameDbStatics);

	uStrLen = snprintf(
		(char*)pInfo->byData, MAX_CUSTOM_INFO_PAK - sizeof(l2e_update_custom_info),
		"-------------------------------------\n"
		"Total Accounts .... ... ... %d\n"
		"Last Ping .... ... ... .... %s"
		"-------------------------------------\n"
		"%s"
		"-------------------------------------\n"
		"%s",
		nTotalAccounts,
		asctime(&tmClock),
		strClusterStatics.c_str(),
		strNameDbStatics.c_str()
		);
	LOG_PROCESS_ERROR(uStrLen > 0);
	LOG_PROCESS_ERROR(uStrLen < MAX_CUSTOM_INFO_PAK - sizeof(l2e_update_custom_info));

	pInfo->uDataLen = uStrLen;

	m_Stream.PutPack(pInfo, sizeof(l2e_update_custom_info) + uStrLen);

EXIT0:
	SAFE_RELEASE(piBuffer);
	return;
}
Пример #25
0
BOOL KStageCtrl::OnSpeedUp()
{
	BOOL bResult = FALSE;
	LOG_PROCESS_ERROR(sMopInfo.nState == emMopStateDoing);

	sMopInfo.nLeftTime = sMopInfo.nLeftTime / 2;
	sMopInfo.bSpeedUp = TRUE;

	LOG_PROCESS_ERROR(SyncStageInfo());

	bResult = TRUE;
EXIT0:
	return bResult;
}
Пример #26
0
INT KAwardSetting::GetExpAwardPercent(INT nExpAwardId, INT nLevel)
{
	INT nPercent = 0;
	MAP_EXP_AWARD::iterator it_exp;

	std::map<INT, MAP_EXP_AWARD>::iterator it = m_mapExpAwards.find(nExpAwardId);
	LOG_PROCESS_ERROR(it != m_mapExpAwards.end());

	it_exp = (it->second).find(nLevel);
	LOG_PROCESS_ERROR(it_exp != (it->second).end());

	nPercent = it_exp->second.nPercent;
EXIT0:
	return nPercent;
}
Пример #27
0
BOOL KStageCtrl::StartMopStage(INT nMopTime)
{
	BOOL bResult = FALSE;

	LOG_PROCESS_ERROR(sMopInfo.nState == emMopStateNone);

	sMopInfo.nState = emMopStateDoing;
	sMopInfo.nLeftTime = nMopTime;

	LOG_PROCESS_ERROR(SyncStageInfo());

	bResult = TRUE;
EXIT0:
	return bResult;
}
Пример #28
0
void QMailModule::OnReturnMail(KPlayer* pPlayer, char* pData, size_t uDataLen)
{
	BOOL                bRetCode    = false;
	C2S_RETURN_MAIL*    pPak        = (C2S_RETURN_MAIL*)pData;

	LOG_PROCESS_ERROR(pPlayer);
	LOG_PROCESS_ERROR(pData);
	LOG_PROCESS_ERROR(uDataLen == sizeof(C2S_RETURN_MAIL));

	bRetCode = MailRelayClient::DoReturnMail(pPlayer->m_dwId, pPak->dwMailID);
	PROCESS_ERROR(bRetCode);

EXIT0:
	return;
}
Пример #29
0
void QMailModule::OnSetMailRead(KPlayer* pPlayer, char* pData, size_t uDataLen)
{
	BOOL                bRetCode    = false;
	C2S_SET_MAIL_READ*  pPak        = (C2S_SET_MAIL_READ*)pData;

	LOG_PROCESS_ERROR(pPlayer);
	LOG_PROCESS_ERROR(pData);
	LOG_PROCESS_ERROR(uDataLen == sizeof(C2S_SET_MAIL_READ));

	bRetCode = MailRelayClient::DoSetMailRead(pPlayer->m_dwId, pPak->dwMailID);
	LOG_PROCESS_ERROR(bRetCode);

EXIT0:
	return;
}
Пример #30
0
BOOL AwardLobbyModule::c2sOnSignedInRequest(KPlayer* pPlayer, LPCBYTE pProtocol, UINT uDataLen)
{
	BOOL						bResult						= FALSE;
	PlayerAwardLobby*		pAwardLobby = NULL;
	KC2S_SIGNED_IN_REQUEST*	pRequest			= (KC2S_SIGNED_IN_REQUEST*)pProtocol;

	pAwardLobby = pPlayer->GetCtrl<PlayerAwardLobby>();
	LOG_PROCESS_ERROR(pAwardLobby);

	LOG_PROCESS_ERROR(pAwardLobby->PlayerSignedIn(pRequest->nDay));

	bResult = TRUE;
EXIT0:
	return bResult;
}