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

📄 stonearena.cpp

📁 国内著名网络游戏dragon的服务端完整源码 内附完整数据库结构
💻 CPP
字号:
// StoneArena.cpp: implementation of the CStoneArena class.
//
//////////////////////////////////////////////////////////////////////

#include "..\stdafx.h"
#include "StoneArena.h"
#include "TeamBattle.h"

///////////////////////////////////////////////////////////////////////////////
// Construction/Destruction
///////////////////////////////////////////////////////////////////////////////

CStoneArena::CStoneArena(int nIndex, int nType)
{
	m_nIndex = nIndex;
	m_nArenaType = nType;
}

CStoneArena::~CStoneArena()
{

}

///////////////////////////////////////////////////////////////////////////////
// Public Method
///////////////////////////////////////////////////////////////////////////////

void CStoneArena::StartGame(DWORD dwTime)
{
	CBaseArena::StartGame(dwTime);

	g_ColossusStone.SetStoneFirst();
	// 泅犁 倒狼 荐甫 墨款飘 秦辑 焊郴霖促.
	g_ColossusStone.GetTeamCount(m_aStone);

	for (int i = 0; i < 2; ++i)
	{
		SendOccupyStone(i, m_aStone[i]);
	}
}

void CStoneArena::EndGame(CArenaInfo* pArena)
{
	CBaseArena::EndGame(pArena);
}
	
bool CStoneArena::PlayGame(DWORD dwTime)
{
	DWORD dwRemainTime = m_pState->GetRemainTime(dwTime);
	
	g_ColossusStone.GetTeamCount(m_aStone);

	for (int i = 0; i < 2; ++i)
	{
		SendOccupyStone(i, m_aStone[i]);
	}
	
	if (dwRemainTime <= 0 || g_ColossusStone.IsEnd())
	{
		int bottom_level = 1000000;		// 啊厘 撤篮 饭骇
		int top = -1, nIndex = 0;
		int the_end = 0;

		for (ITOR_TEAM i = m_ltTeam.begin(); i != m_ltTeam.end(); ++i)
		{
			const int nTotal = (*i)->GetTeamLevel();

			if (top < m_aStone[nIndex])
			{
				top = m_aStone[nIndex];
				the_end = 1;
			}
			else if (top == m_aStone[nIndex])		// 悼痢	 // 评捞 2俺 老锭父 利侩
			{
				if (bottom_level > nTotal) 
				{
					bottom_level = nTotal;
				}
			}

			++nIndex;
		}
		
		nIndex = 0;

		for (ITOR_TEAM j = m_ltTeam.begin(); j != m_ltTeam.end(); ++j)
		{
			const int nTotal = (*j)->GetTeamLevel();

			if (top < m_aStone[nIndex])
			{
				top = m_aStone[nIndex];
				the_end = 1;
			}
			else if (top == m_aStone[nIndex])	// 悼痢	 // 评捞 2俺 老锭父 利侩
			{
				if (bottom_level > nTotal) 
				{
					bottom_level = nTotal;
				}
			}

			++nIndex;
		}

		if (the_end)		// 铰菩啊 哎啡促.
		{
			nIndex = 0;

			for (ITOR_TEAM k = m_ltTeam.begin(); k != m_ltTeam.end(); ++k)
			{
				CArenaTeam* pTeam = *k;

				if (top == m_aStone[nIndex++]) // 捞变评
				{
					pTeam->SetGameResult(FST_WIN);
				}
				else
				{
					pTeam->SetGameResult(FST_DEFEAT);
				}

				DoResult(pTeam);
			}
		}

		return false;
	}

	return CBaseArena::PlayGame(dwTime);
}

///////////////////////////////////////////////////////////////////////////////
// Protected Method
///////////////////////////////////////////////////////////////////////////////

void CStoneArena::DoResult(CArenaTeam* pTeam)
{
	CBaseArena::DoResult(pTeam);
}

void CStoneArena::DoVictory(CArenaTeam* pTeam)
{
	CBaseArena::DoVictory(pTeam);
}

void CStoneArena::DoDefeat(CArenaTeam* pTeam)
{
	CBaseArena::DoDefeat(pTeam);
}

⌨️ 快捷键说明

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