equipment.cpp

来自「国外网游源码....除工具源码缺少之外,其余程序都全...至于,什么游戏,因为国」· C++ 代码 · 共 169 行

CPP
169
字号
//--------------------------------------------------------------------------------------------------------
//	File. Equipment.cpp
//--------------------------------------------------------------------------------------------------------

#include "StdAfx.h"

CEquipment::CEquipment(EQUIP_POS EquipPos)
{
	m_EquipPos	 = EquipPos;
	m_dwUseSelect= 0;		// 2焊促 歹 奴 蔼阑 啊龙荐绰 绝促. 公扁狼 胶懦篮 醚3俺
	m_dwSlot	 = 0;
	m_pIcon		 = NULL;
}

CEquipment::~CEquipment()
{
	int i;
	for(i=0; i<m_cplistSkill.size(); i++)
	{	SAFE_DELETE( m_cplistSkill[i] );	}
	m_cplistSkill.clear();

	SAFE_DELETE(m_pIcon);
}

bool CEquipment::Fire(bool bMyShoot)
{
	return m_cplistSkill[m_dwUseSelect]->Fire(bMyShoot);		
}

DWORD CEquipment::AddSkill(CProperty *pSkill)
{
	if(pSkill == NULL)	{	return m_cplistSkill.size();	}	// NULL捞搁 Size甫 府畔

	if( m_cplistSkill.size() > 1)
	{
		CUtility::printf_Debug("\nAddSkill俊 胶懦捞 2俺 捞惑 甸绢吭澜!!!");
		return 0;
	}

	m_cplistSkill.push_back(pSkill);	// 府胶飘俊 淬绰促.
	return m_cplistSkill.size();	// Size甫 府畔
}

void CEquipment::NextSkill()
{
	/*EQUIPINFO *pEquipInfo = this->GetInfoEquip();

	++m_dwUseSelect;
	if( pEquipInfo->SkillNum <= m_dwUseSelect)
	{
		m_dwUseSelect = 0;
	}*/
}

bool CEquipment::UpdateAnimation(DWORD Elapsed, bool bRun)
{
	if( !bRun ) return false;
	
	CMCParts *pPart = m_cplistSkill[m_dwUseSelect]->GetPart();
	if(NULL != pPart) pPart->UpdateAnimation(Elapsed);

	return true;
}

HRESULT CEquipment::CreateEquip(CModelManager *pModel, CItemManager *pManager, CEquipment **ppEquip,
							DWORD dwIndex, WORD wSelectSkin, PLAYER Player)
{
	if( pModel==NULL || pManager == NULL || ppEquip == NULL )
	{ return E_FAIL; }

	_WEAPON_DATA *pItem = (_WEAPON_DATA *)pManager->FindItem(dwIndex);	// 秦寸 牢郸胶狼 酒捞袍 沥焊甫 掘绢 柯促.
	if( pItem == NULL ){ return E_FAIL;	}

	//----------------------------------------------
	// Animation 茫扁
	char strAni[128] = {NULL,};
	char strMCA[128] = {NULL,};

	strcpy(&strAni[0], &pItem->sItemData.strModelPath[Player][0]);
	strcpy(&strMCA[0], &pItem->sItemData.strModelPath[Player][0]);

	DWORD Len = strlen(&strAni[0]);	

	if(Len == 0)
		return E_FAIL;
	
	strcpy(&strAni[Len-3],"cfg");
	strcpy(&strMCA[Len-3],"mca");

	//-------------------------------------------------------------------------//
	// 葛胆 积己
	//-------------------------------------------------------------------------//
	pModel->AddModelEx( dwIndex,
						&pItem->sItemData.strModelPath[Player][0],
						&strMCA[0],
						&pItem->sItemData.strSkinPath[Player][wSelectSkin][0],
						&strAni[0],Player);	// Slot阑 霖促

	//-------------------------------------------------------------------------//
	//	厘厚 积己
	//-------------------------------------------------------------------------//
	// 泅犁 捞 牢郸胶狼 酒捞袍捞 绢叼 困摹狼 厘厚牢啊? (个,促府,哭颊,坷弗颊,焊炼)
	
	// 积己窍妨绰 酒捞袍捞 绢恫 厘厚 器瘤记阑 啊瘤绰瘤甫 魄喊茄促.
	EQUIP_POS Equip_Pos;
	if( (PRO_RIFLE <= pItem->sItemData.nSpecies) && (PRO_CANON >= pItem->sItemData.nSpecies) )	// 扼捞敲1 ~ 某稠 : 扼捞敲
	{
		Equip_Pos = EQUIP_RIFLE;
	}
	else if( PRO_SUBWEAPON == pItem->sItemData.nSpecies )	// 辑宏 傀迄 : 辑宏
	{
		Equip_Pos = EQUIP_SUB;
	}
	else if( PRO_PISTOL == pItem->sItemData.nSpecies)	// 乔胶喷 : 乔胶喷
	{
		Equip_Pos = EQUIP_PISTOL;
	}

	*ppEquip = new CEquipment( Equip_Pos ); // 0~
	
	// Iocn Loading
	(*ppEquip)->m_pIcon = new SPRITE_TEXTURE;
	if( FAILED( g_pDrawEx->LoadImageFile(&pItem->sItemData.strIconPath[0],(*ppEquip)->m_pIcon) ))
	{	SAFE_DELETE( (*ppEquip)->m_pIcon );	}

	CProperty	*pPrope = NULL;		// 关俊辑 傍烹利栏肺 静烙
	
	if( pItem->nBulletStyle )	 // 醚舅阑 静绰 赤籍捞搁
	{
		pModel->AddModelEx(-1,"data\\Game\\Character\\FirstMachine\\Bullet_default.MC4",NULL,NULL,NULL); //<- 醚舅烙矫
	}
				
	// 胶鸥老 积己~
	/*enum ATTACK_STYLE		//酒捞袍砒惑狼 傍拜盒幅
	{
		ATTACK_MELEE,		//辟芭府 鸥拜(归捍)
		ATTACK_SHORTRANGE,	//辟芭府 荤拜(鸡扒)
		ATTACK_MIDDLERANGE,	//吝芭府 荤拜(家醚, 磊悼家醚, 扁包醚)
		ATTACK_LONGRANGE,	//盔芭府 荤拜(历拜醚)
		ATTACK_LAUNCH,		//遏柯 饶 惯荤(固荤老, 蜡档藕)
		ATTACK_THROW,		//捧么(荐幅藕, 楷阜藕)
	};*/
	switch( pItem->nStyle )
	{
	
	case ATTACK_MELEE:	// 辟立傈
		pPrope = new CAttack_Melee( pItem , pModel->FindModel(dwIndex,Player));
		break;
	case ATTACK_SHORTRANGE:	// 鸡扒
		pPrope = new CAttack_Longrange(pItem, pModel->FindModel(dwIndex,Player));
		break;
	case ATTACK_MIDDLERANGE:	// 吝芭府 荤拜
		pPrope = new CAttack_Longrange(pItem, pModel->FindModel(dwIndex,Player));
		break;
	case ATTACK_LONGRANGE:	// 盔芭府
		pPrope = new CAttack_Longrange(pItem, pModel->FindModel(dwIndex,Player));
		break;
	case ATTACK_LAUNCH:	// 遏公扁.
		pPrope = new CAttack_Missile(pItem , pModel->FindModel(dwIndex,Player), pModel->FindModel(-1));
		break;
	case ATTACK_THROW:	// 咯扁 荐幅藕 客具窃 -_-
		pPrope = new CAttack_Melee( pItem , pModel->FindModel(dwIndex,Player));
		break;
	}

	(*ppEquip)->AddSkill(pPrope);	
	return S_OK;
}

⌨️ 快捷键说明

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