⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 arenamanager.cpp

📁 网络游戏龙族 完整的登陆器 C++ 源代码
💻 CPP
📖 第 1 页 / 共 2 页
字号:

	const int nTeam = pPacket->nTeam;

	if (nTeam < 0 || nTeam > 1)
	{
		return;
	}

	if (m_vtTeam[nTeam]->IsExistGambler(idGambler))
	{
		return;
	}

	m_vtTeam[nTeam]->AddGambler(idGambler);
}

void CArenaManager::RecvDeleteGambling(t_arena_delete_gambling* pPacket)
{
	if (!IsSelectGame())
	{
		OUTPUT(MK_INFORMATION, lan->OutputMessage(1, 114));
		return;
	}

	const WORD idGambler = pPacket->idGambler;
	LPCHARACTER pGambler = ::ReturnCharacterPoint(idGambler);
	
	if (pGambler == NULL)
	{
		return;
	}

	const int nTeam = pPacket->nTeam;

	if (nTeam < 0 || nTeam > 1)
	{
		return;
	}

	if (!m_vtTeam[nTeam]->IsExistGambler(idGambler))
	{
		return;
	}

	m_vtTeam[nTeam]->DelGambler(idGambler);
}

void CArenaManager::RecvAddObserve(t_arena_add_observe* pPacket)
{
	if (!IsSelectGame())
	{
		OUTPUT(MK_INFORMATION, lan->OutputMessage(1, 114));
		return;
	}

	const WORD idObserve = pPacket->idObserve;
	LPCHARACTER pObserve = ::ReturnCharacterPoint(pPacket->idObserve);
	
	if (pObserve == NULL)
	{
		return;
	}

	const int nTeam = pPacket->nTeam;

	if (nTeam < 0 || nTeam > 1)
	{
		return;
	}

	if (m_vtTeam[nTeam]->IsExistObserve(idObserve))
	{
		return;
	}

	m_vtTeam[nTeam]->AddObserve(idObserve);
}
	
void CArenaManager::RecvDeleteObserve(t_arena_delete_observe* pPacket)
{
	if (!IsSelectGame())
	{
		OUTPUT(MK_INFORMATION, lan->OutputMessage(1, 114));
		return;
	}

	const WORD idObserve = pPacket->idObserve;
	LPCHARACTER pObserve = ::ReturnCharacterPoint(pPacket->idObserve);
	
	if (pObserve == NULL)
	{
		return;
	}

	const int nTeam = pPacket->nTeam;

	if (nTeam < 0 || nTeam > 1)
	{
		return;
	}

	if (!m_vtTeam[nTeam]->IsExistObserve(idObserve))
	{	//< CSD-030522
		return;
	}	//> CSD-030522

	m_vtTeam[nTeam]->DelObserve(idObserve);
}

void CArenaManager::RecvLeaderInfo(t_arena_leader_info* pPacket)
{	

	if (!IsSelectGame())
	{
		OUTPUT(MK_INFORMATION, lan->OutputMessage(1, 114));
		return;
	}

	const WORD idLeader = pPacket->idLeader;
	LPCHARACTER pLeader = ::ReturnCharacterPoint(idLeader);
	
	if (pLeader == NULL)
	{
		return;
	}
	// 府歹 汲沥
	m_idLeader = idLeader;
}

void CArenaManager::RecvProbabilityInfo(t_arena_probability_info* pPacket)
{
	if (!IsSelectGame())
	{
		OUTPUT(MK_INFORMATION, lan->OutputMessage(1, 114));
		return;
	}

	const int nTeam = pPacket->nArenaTeam;
	
	if (nTeam < 0 || nTeam > 1)
	{
		return;
	}

	m_vtTeam[nTeam]->SetTeamProbability(pPacket->fProbability);
}

void CArenaManager::RecvGamblingInfo(t_arena_gambling_info* pPacket)
{
	if (!IsSelectGame())
	{
		OUTPUT(MK_INFORMATION, lan->OutputMessage(1, 114));
		return;
	}

	const int nTeam = pPacket->nArenaTeam;
	
	if (nTeam < 0 || nTeam > 1)
	{
		return;
	}

	m_vtTeam[nTeam]->SetBattingMoney(pPacket->dwBattingMoney);
}

void CArenaManager::RecvDividendInfo(t_arena_dividend_info* pPacket)
{
	if (!IsSelectGame())
	{
		OUTPUT(MK_INFORMATION, lan->OutputMessage(1, 114));
		return;
	}

	m_dwBattingMoney = pPacket->dwBattingMoney;
	m_dwDividendMoney = pPacket->dwDividendMoney;
}

void CArenaManager::RecvReadyInfo(t_arena_ready_info* pPacket)
{
	if (!IsSelectGame())
	{
		OUTPUT(MK_INFORMATION, lan->OutputMessage(1, 114));
		return;
	}

	
	m_dwReadyTime = pPacket->dwReadyTime;
	
	if (IsReadyGame())
	{	//< CSD-031106
		MP3(SN_FIGHT_TIME);
	}	//> CSD-031106
}

void CArenaManager::RecvGameInfo(t_arena_game_info* pPacket)
{	//< CSD-TW-030701
	const char* pMapName = ::GetMapNameByPort(pPacket->wPort);
	
	if (pMapName == NULL)
	{
		return;
	}
	
	const int nCount = pPacket->wMemberCount;
	const char* pLeader = pPacket->szLeader;
	// [%s] : 醚[%d]疙	    规厘 : [%s]
	::Kein_PutMessage(KM_INFO, kein_GetMenuString(151), pMapName, nCount, pLeader);
}	//> CSD-TW-030701

void CArenaManager::RecvStartGame(t_arena_start_game* pPacket)
{	//< CSD-TW-030618
	if (!IsSelectGame())
	{
		OUTPUT(MK_INFORMATION, lan->OutputMessage(1, 114));
		return;
	}

	const WORD idLeader = pPacket->idLeader;
	LPCHARACTER pLeader = ::ReturnCharacterPoint(idLeader);
	
	if (pLeader == NULL)
	{
		return;
	}
	
	::CallServer(CMD_ARENA_START_GAME);
	// 府歹 檬扁拳
	m_idLeader = 0;
}	//> CSD-TW-030618

void CArenaManager::RecvGamblingResult(t_arena_gambling_result* pPacket)
{
	switch (pPacket->nPayment)
	{
    case 0:	
		{
			::AddCurrentStatusMessage(255, 180, 190, 
				                      lan->OutputMessage(1, 118), pPacket->dwMoney);
			break;
		}
	case 1:	
		{
			::AddCurrentStatusMessage(255, 180, 190, 
				                      lan->OutputMessage(1, 120), pPacket->dwMoney);
			break;
		}   
	}
}

void CArenaManager::RecvArenaGameMessage1(t_arena_game_message1* pPacket)
{	//< CSD-030523
	const int nTeamNumber = pPacket->nTeamNumber;
	const int nMsgType = pPacket->nMsgType;
	const int nGameData = pPacket->nGameData;

	switch (nMsgType)
	{
	case 1: 
		{
			AddCurrentStatusMessage(220, 220, 0, lan->OutputMessage(3,41), FightTeam[nTeamNumber], nGameData); //010215 lsw
			fight_map_live_man[nTeamNumber] = nGameData;
			::OpenFightMapSignMenuOpen(fight_map_live_man);
			break;
		}
	case 2:
		{
			AddCurrentStatusMessage(220, 220, 0, kein_GetMenuString(159), FightTeam[nTeamNumber], nGameData); //010215 lsw
			fight_map_live_man[nTeamNumber] = nGameData;
			::OpenFightMapSignMenuOpen(fight_map_live_man);
			break;
		}
	case 6:
		{
			fight_map_live_man[nTeamNumber] = nGameData;
			::OpenFightMapSignMenuOpen(fight_map_live_man);
			break;
		}
	}
}	//> CSD-030523

void CArenaManager::RecvArenaGameMessage2(t_arena_game_message2* pPacket)
{
	const int nTeamNumber1 = pPacket->nTeamNumber1;
	const int nTeamNumber2 = pPacket->nTeamNumber2;
	
	char* pTeamMember1 = pPacket->szTeamMember1;
	char* pTeamMember2 = pPacket->szTeamMember2;
	// %s(%s)丛捞 %s(%s)丛俊霸 傍拜 寸秦 磷菌嚼聪促.
	MP3( SN_KILL_WHO );
	Kein_PutMessage(KM_FAIL, kein_GetMenuString(160),
				    pTeamMember2, FightTeam[nTeamNumber2], 
					pTeamMember1, FightTeam[nTeamNumber1]);
}

void CArenaManager::RecvArenaGameMessage3(t_arena_game_message3* pPacket)
{
	const int nTeamNumber = pPacket->nTeamNumber;
	const int nMsgType = pPacket->nMsgType;
	const int nStoneNumber = pPacket->nStoneNumber;
	char* pTeamMember = pPacket->szTeamMember;

	switch (nMsgType)
	{
	case 4:
		{
			int r, g, b;
			GetRGBByTeam(nTeamNumber, r, g, b);
			AddCurrentStatusMessage(r, g, b, 
				                    kein_GetMenuString(161), 
									pTeamMember, 
									FightTeam[nTeamNumber]);
			break;
		}
	case 5:
		{
			int r, g, b;
			GetRGBByTeam(nTeamNumber, r, g, b);
			AddCurrentStatusMessage(r, g, b, 
				                    kein_GetMenuString(162), 
									FightTeam[nTeamNumber], 
									pTeamMember, 
									nStoneNumber);
			break;
		}
	}
}

void CArenaManager::RecvArenaGameMessage4(t_arena_game_message4* pPacket)
{	//< CSD-TW-030627
	const DWORD dwMinute = pPacket->dwRemainMinute;
	OUTPUT(MK_INFORMATION, lan->OutputMessage(1, 121), dwMinute);
}	//> CSD-TW-030627

CArenaTeam* CArenaManager::GetArenaTeam(int nTeam)
{
	if (nTeam < 0 || nTeam > 1)
	{
		return NULL;
	}

	return m_vtTeam[nTeam];
}

CArenaTeam* CArenaManager::GetMemberTeam(WORD idMember)
{
	for (ITOR_TEAM i = m_vtTeam.begin(); i != m_vtTeam.end(); ++i)
	{
		CArenaTeam* pTeam = *i;

		if (pTeam->IsExistMember(idMember))
		{
			return pTeam;
		}
	}

	return NULL;
}

CArenaTeam* CArenaManager::GetObserveTeam(WORD idObserve)
{
	for (ITOR_TEAM i = m_vtTeam.begin(); i != m_vtTeam.end(); ++i)
	{
		CArenaTeam* pTeam = *i;

		if (pTeam->IsExistObserve(idObserve))
		{
			return pTeam;
		}
	}

	return NULL;
}

int CArenaManager::GetGamblingTeam(WORD idGambler)
{	//< CSD-030521
	for (ITOR_TEAM i = m_vtTeam.begin(); i != m_vtTeam.end(); ++i)
	{
		CArenaTeam* pTeam = *i;

		if (pTeam->IsExistMember(idGambler))
		{
			m_nGamblingTeam = pTeam->GetTeamNumber();
			return m_nGamblingTeam;
		}

		if (pTeam->IsExistObserve(idGambler))
		{
			m_nGamblingTeam = pTeam->GetTeamNumber();
			return m_nGamblingTeam;
		}
	}

	return m_nGamblingTeam;
}	//> CSD-030521

bool CArenaManager::IsEnableGambling(WORD idGambler)
{
	for (ITOR_TEAM i = m_vtTeam.begin(); i != m_vtTeam.end(); ++i)
	{
		if ((*i)->IsExistMember(idGambler))
		{
			return false;
		}
	}

	return true;
}

bool CArenaManager::IsEnableObserve(WORD idGambler)
{
	for (ITOR_TEAM i = m_vtTeam.begin(); i != m_vtTeam.end(); ++i)
	{
		if ((*i)->IsExistMember(idGambler))
		{
			return false;
		}
	}

	return true;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -