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

📄 rolefight.cpp

📁 网络游戏魔域的服务端与客户端完整源代码 包括详细的说明文档与开发日志
💻 CPP
字号:
// RoleFight.cpp: implementation of the CRoleFight class.
//
//////////////////////////////////////////////////////////////////////

#include "common.h"
#include "define.h"
#include "RoleFight.h"
#include "Agent.h"
#include "AllMsg.h"

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

CRoleFight::CRoleFight()
{

}

CRoleFight::~CRoleFight()
{

}

bool CRoleFight::Create(CAgent *pOwner)
{
	m_pOwner	= pOwner;
	m_tAttackDelay.SetInterval(ATTACK_DELAY_MS);

	return true;
}

void CRoleFight::OnTimer()
{
	if(m_pTarget && QueryTime()->IsTimeOut())
	{
		if(m_pOwner->GetDistance(m_pTarget->GetPosX(), m_pTarget->GetPosY()) <= m_pOwner->GetAttackRange(m_pTarget->GetSizeAdd()))
		{
			if(m_tAttackDelay.ToNextTime())
			{
				CMsgInteract	msg;
				IF_OK(msg.Create(INTERACT_ATTACK, m_pOwner->GetID(), m_pTarget->GetID(), m_pOwner->GetPosX(), m_pOwner->GetPosY()))
					m_pOwner->SendMsg(&msg);
			}
		}
		else
		{
			m_pTarget.Clear();
		}
	}
}

bool CRoleFight::Attack(IRole *pRole)
{
	CHECKF(pRole);
	CHECKF(m_pOwner->GetDistance(pRole->GetPosX(), pRole->GetPosY()) <= m_pOwner->GetAttackRange(pRole->GetSizeAdd()));

	m_pTarget	= pRole;

	// msg
	CMsgInteract	msg;
	IF_OK(msg.Create(INTERACT_ATTACK, m_pOwner->GetID(), m_pTarget->GetID(), m_pOwner->GetPosX(), m_pOwner->GetPosY()))
		m_pOwner->SendMsg(&msg);

	m_tAttackDelay.Update();
	return true;
}

⌨️ 快捷键说明

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