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

📄 heroweaponskill.cpp

📁 网络游戏魔域源代码 测试可以完整变异
💻 CPP
字号:
//------------------------------------------------------------------------
// HeroWeaponSkill.cpp
//------------------------------------------------------------------------
#include "Hero.h"

//-----------------------------------------------------------------
void CHero::DestroyWeaponSkill()	
{
	int nAmount, i;

	nAmount  = m_setSingleHandWeaponSkill.size();
	for(i = 0; i < nAmount; i ++)
	{
		CWeaponSkill* pSkill = m_setSingleHandWeaponSkill[i];
		SAFE_DELETE(pSkill);
	}
	m_setSingleHandWeaponSkill.clear();

	nAmount  = m_setDoubleHandWeaponSkill.size();
	for(i = 0; i < nAmount; i ++)
	{
		CWeaponSkill* pSkill = m_setDoubleHandWeaponSkill[i];
		SAFE_DELETE(pSkill);
	}
	m_setDoubleHandWeaponSkill.clear();

	nAmount  = m_setOtherWeaponSkill.size();
	for(i = 0; i < nAmount; i ++)
	{
		CWeaponSkill* pSkill = m_setOtherWeaponSkill[i];
		SAFE_DELETE(pSkill);
	}
	m_setOtherWeaponSkill.clear();
}
//-----------------------------------------------------------------
CWeaponSkill* CHero::GetWeaponSkill(int nWeaponSkillType, int nIndex)
{
	switch(nWeaponSkillType)
	{
	case SINGLEHAND_WEAPON_SKILL:
		return this->GetWeaponSkill(m_setSingleHandWeaponSkill, nIndex);
	case DOUBLEHAND_WEAPON_SKILL:
		return this->GetWeaponSkill(m_setDoubleHandWeaponSkill, nIndex);
	case OTHER_WEAPON_SKILL:
		return this->GetWeaponSkill(m_setOtherWeaponSkill, nIndex);
	default:
		break;
	}
	return NULL;
}
//-----------------------------------------------------------------
int CHero::GetWeaponSkillAmount(int nWeaponSkillType)
{
	switch(nWeaponSkillType)
	{
	case SINGLEHAND_WEAPON_SKILL:
		return m_setSingleHandWeaponSkill.size();
	case DOUBLEHAND_WEAPON_SKILL:
		return m_setDoubleHandWeaponSkill.size();
	case OTHER_WEAPON_SKILL:
		return m_setOtherWeaponSkill.size();
	default:
		break;
	}
	return 0;
}
//-----------------------------------------------------------------
CWeaponSkill* CHero::GetWeaponSkill(DEQUE_WEAPONSKILL& setSkill, int nIndex)
{
	int nAmount = setSkill.size();
	if((nIndex >= nAmount) || (nIndex < 0))
	{
		return NULL;
	}
	return setSkill[nIndex];
}
//-----------------------------------------------------------------
CWeaponSkill* CHero::GetWeaponSkillByType(DEQUE_WEAPONSKILL& setSkill, int nType)
{
	int nAmount = setSkill.size();
	for(int i = 0; i < nAmount; i ++)
	{
		CWeaponSkill* pSkill = setSkill[i];
		if(pSkill && nType == pSkill->GetType())
		{
			return pSkill;
		}
	}
	return NULL;
}
//-----------------------------------------------------------------
void CHero::AddNewWeaponSkill(int nSkillType, DWORD dwLevel, DWORD dwExp)
{
	if(nSkillType/100 == 4)
	{
		this->AddNewWeaponSkill(m_setSingleHandWeaponSkill, nSkillType, dwLevel, dwExp);
	}
	else if(nSkillType/100 == 5)
	{
		this->AddNewWeaponSkill(m_setDoubleHandWeaponSkill, nSkillType, dwLevel, dwExp);
	}
	else
	{
		this->AddNewWeaponSkill(m_setOtherWeaponSkill, nSkillType, dwLevel, dwExp);
	}
}
//-----------------------------------------------------------------
void CHero::AddNewWeaponSkill(DEQUE_WEAPONSKILL& setSkill, int nSkillType, DWORD dwLevel, DWORD dwExp)
{
	int nAmount = setSkill.size();
	for(int i = 0; i < nAmount; i ++)
	{
		CWeaponSkill* pSkill = setSkill[i];
		if(pSkill && (pSkill->GetType() == nSkillType))
		{
			pSkill->SetLevel(dwLevel);
			pSkill->SetExp(dwExp);
			return;
		}
	}

	CWeaponSkill* pSkill = new CWeaponSkill;
	MYASSERT(pSkill);

	pSkill->SetType(nSkillType);
	pSkill->SetLevel(dwLevel);
	pSkill->SetExp(dwExp);

	setSkill.push_back(pSkill);
}
//-----------------------------------------------------------------
CWeaponSkill*	CHero::GetWeaponSkill(int nWeaponSkillType)
{
	CWeaponSkill* pSkill = NULL;

	pSkill = this->GetWeaponSkillByType(m_setSingleHandWeaponSkill, nWeaponSkillType);
	if(pSkill)
		return pSkill;

	pSkill = this->GetWeaponSkillByType(m_setDoubleHandWeaponSkill, nWeaponSkillType);
	if(pSkill)
		return pSkill;

	pSkill = this->GetWeaponSkillByType(m_setOtherWeaponSkill, nWeaponSkillType);
	if(pSkill)
		return pSkill;
	return NULL;
}

⌨️ 快捷键说明

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