rolefight.cpp
来自「网络游戏魔域的服务端与客户端完整源代码 包括详细的说明文档与开发日志」· C++ 代码 · 共 68 行
CPP
68 行
// 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 + =
减小字号Ctrl + -
显示快捷键?