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

📄 vampire_backup.cpp

📁 天之炼狱1服务器端源文件游戏服务端不完整
💻 CPP
📖 第 1 页 / 共 4 页
字号:
			// 浇饭捞绢侩 酒捞袍阑 涝绊 乐绰 捞惑茄 磊侥捞 乐栏搁 促 绢辑飘			//-------------------------------------------------------------			Assert(IClass != Item::ITEM_CLASS_AR);			Assert(IClass != Item::ITEM_CLASS_SR);			Assert(IClass != Item::ITEM_CLASS_SG);			Assert(IClass != Item::ITEM_CLASS_SMG);			Assert(IClass != Item::ITEM_CLASS_SWORD);			Assert(IClass != Item::ITEM_CLASS_BLADE);			Assert(IClass != Item::ITEM_CLASS_SHIELD);			Assert(IClass != Item::ITEM_CLASS_CROSS);			Assert(IClass != Item::ITEM_CLASS_MACE);			Assert(IClass != Item::ITEM_CLASS_HELM);			Assert(IClass != Item::ITEM_CLASS_GLOVE);			Assert(IClass != Item::ITEM_CLASS_TROUSER);			Assert(IClass != Item::ITEM_CLASS_COAT);			m_pWearItem[j] = NULL;			SAFE_DELETE(pItem);		}	}	__END_DEBUG	__END_CATCH}//----------------------------------------------------------------------//----------------------------------------------------------------------bool Vampire::isRealWearing(WearPart part) const	throw(){	__BEGIN_TRY	if (part >= VAMPIRE_WEAR_MAX) throw("Vampire::isRealWearing() : invalid wear point!");	if (m_pWearItem[part] == NULL) return false;	return isRealWearing(m_pWearItem[part]);	__END_CATCH}//----------------------------------------------------------------------//----------------------------------------------------------------------bool Vampire::isRealWearing(Item* pItem) const	throw(){	__BEGIN_TRY	if (pItem == NULL) return false;	Item::ItemClass IClass    = pItem->getItemClass();	ItemInfo*       pItemInfo = g_pItemInfoManager->getItemInfo(IClass, pItem->getItemType());	Level_t         ReqLevel  = pItemInfo->getReqLevel();	Attr_t          ReqGender = pItemInfo->getReqGender();	// 酒捞袍捞 可记阑 啊瘤绊 乐促搁,	// 可记狼 辆幅俊 蝶扼辑 瓷仿摹 力茄阑 棵妨霖促.	if (pItem->getOptionType() != 0)	{		OptionInfo* pOptionInfo = g_pOptionInfoManager->getOptionInfo(pItem->getOptionType());		ReqLevel += pOptionInfo->getReqLevel();	}		// 瓷仿摹 力茄捞 窍唱扼档 乐促搁,	// 弊 瓷仿阑 父练矫虐绰瘤 八荤秦具 茄促.	if (ReqLevel > 0 || ReqGender != GENDER_BOTH)	{		if (ReqLevel > 0 && m_Level < ReqLevel) return false;		if (m_Sex == MALE && ReqGender == GENDER_FEMALE) return false;		if (m_Sex == FEMALE && ReqGender == GENDER_MALE) return false;	}	return true;	__END_CATCH}//----------------------------------------------------------------------//----------------------------------------------------------------------bool Vampire::isRealWearingEx(WearPart part) const{	if (part >= VAMPIRE_WEAR_MAX) return false;	return m_pRealWearingCheck[part];}DWORD Vampire::sendRealWearingInfo(void) const	throw(){	__BEGIN_TRY	DWORD info = 0;	DWORD flag = 1;	for (int i=0; i<VAMPIRE_WEAR_MAX; i++)	{		if (isRealWearing((Vampire::WearPart)i)) info |= flag;		flag <<= 1;	}	GCRealWearingInfo pkt;	pkt.setInfo(info);	m_pPlayer->sendPacket(&pkt);	return info;	__END_CATCH}////////////////////////////////////////////////////////////////////////////////////// 牢器 包访 窃荐////////////////////////////////////////////////////////////////////////////////////PCVampireInfo2* Vampire::getVampireInfo2 ()	throw (){	__BEGIN_TRY	__BEGIN_DEBUG	PCVampireInfo2* pInfo = new PCVampireInfo2();	pInfo->setObjectID(m_ObjectID);	pInfo->setName(m_Name);	pInfo->setLevel(m_Level);	pInfo->setSex(m_Sex);	pInfo->setHairColor(m_HairColor);	pInfo->setSkinColor(m_SkinColor);    // 己氢	pInfo->setAlignment(m_Alignment);	// 瓷仿摹	pInfo->setSTR(m_STR[ATTR_CURRENT], ATTR_CURRENT);	pInfo->setSTR(m_STR[ATTR_MAX], ATTR_MAX);	pInfo->setSTR(m_STR[ATTR_BASIC], ATTR_BASIC);	pInfo->setDEX(m_DEX[ATTR_CURRENT], ATTR_CURRENT);	pInfo->setDEX(m_DEX[ATTR_MAX], ATTR_MAX);	pInfo->setDEX(m_DEX[ATTR_BASIC], ATTR_BASIC);	pInfo->setINT(m_INT[ATTR_CURRENT], ATTR_CURRENT);	pInfo->setINT(m_INT[ATTR_MAX], ATTR_MAX);	pInfo->setINT(m_INT[ATTR_BASIC], ATTR_BASIC);		pInfo->setHP(m_HP[ATTR_CURRENT] , m_HP[ATTR_MAX]);	pInfo->setFame(m_Fame);	pInfo->setExp(m_Exp);	pInfo->setGold(m_Gold);	pInfo->setSight(m_Sight);	pInfo->setBonus(m_Bonus);	pInfo->setSilverDamage(m_SilverDamage);	for (int i = 0; i < 8; i++) 	{		pInfo->setHotKey(i, m_HotKey[i]);	}	pInfo->setCompetence(m_CompetenceShape);	pInfo->setGuildID(m_GuildID);	pInfo->setGuildName( getGuildName() );	pInfo->setGuildMemberRank( getGuildMemberRank() );	return pInfo;	__END_DEBUG	__END_CATCH}//----------------------------------------------------------------------// Vampire Outlook Information//----------------------------------------------------------------------PCVampireInfo3 Vampire::getVampireInfo3 () const 	throw (){	__BEGIN_TRY	__BEGIN_DEBUG	m_VampireInfo.setX(m_X);	m_VampireInfo.setY(m_Y);	m_VampireInfo.setDir(m_Dir);	m_VampireInfo.setCurrentHP(m_HP[ATTR_CURRENT]);	m_VampireInfo.setMaxHP(m_HP[ATTR_MAX]);	m_VampireInfo.setAttackSpeed(m_AttackSpeed[ATTR_CURRENT]);	m_VampireInfo.setAlignment(m_Alignment);	m_VampireInfo.setGuildID(m_GuildID);	/*	Item* pItem = m_pWearItem[WEAR_BODY];	if (pItem!=NULL)	{		m_VampireInfo.setCoatType( pItem->getItemType() );	}	else	{		m_VampireInfo.setCoatType( 0 );	}	*/	if (m_Flag.test(Effect::EFFECT_CLASS_TRANSFORM_TO_WOLF)) 	{		m_VampireInfo.setShape(SHAPE_WOLF);	} 	else if (m_Flag.test(Effect::EFFECT_CLASS_TRANSFORM_TO_BAT)) 	{		m_VampireInfo.setShape(SHAPE_BAT);	}	else 	{		m_VampireInfo.setShape(SHAPE_NORMAL);	}	return m_VampireInfo;	__END_DEBUG	__END_CATCH}//----------------------------------------------------------------------//// get Extra Info////----------------------------------------------------------------------ExtraInfo* Vampire::getExtraInfo() const	throw(){	__BEGIN_TRY	__BEGIN_DEBUG	BYTE ItemCount = 0;	ExtraInfo* pExtraInfo = new ExtraInfo();	Item* pItem = m_pExtraInventorySlot->getItem();	if (pItem != NULL) {			Item::ItemClass IClass = pItem->getItemClass();		ExtraSlotInfo* pExtraSlotInfo = new ExtraSlotInfo();		pExtraSlotInfo->setObjectID(pItem->getObjectID());		pExtraSlotInfo->setItemClass(pItem->getItemClass());		pExtraSlotInfo->setItemType(pItem->getItemType());		pExtraSlotInfo->setOptionType(pItem->getOptionType());		pExtraSlotInfo->setDurability(pItem->getDurability());		pExtraSlotInfo->setSilver(pItem->getSilver());		pExtraSlotInfo->setSilver(pItem->getEnchantLevel());		if (IClass == Item::ITEM_CLASS_AR) 		{			AR* pAR = dynamic_cast<AR*>(pItem);			pExtraSlotInfo->setItemNum(pAR->getBulletCount());		} 		else if (IClass == Item::ITEM_CLASS_SG) 		{			SG* pSG = dynamic_cast<SG*>(pItem);			pExtraSlotInfo->setItemNum(pSG->getBulletCount());		} 		else if (IClass == Item::ITEM_CLASS_SMG) 		{			SMG* pSMG = dynamic_cast<SMG*>(pItem);			pExtraSlotInfo->setItemNum(pSMG->getBulletCount());		} 		else if (IClass == Item::ITEM_CLASS_SR) 		{			SR* pSR = dynamic_cast<SR*>(pItem);			pExtraSlotInfo->setItemNum(pSR->getBulletCount());		} 		else 		{			pExtraSlotInfo->setItemNum(pItem->getNum());		}		// 骇飘扼搁 Sub 酒捞袍狼 眠啊 沥焊啊 鞘夸窍促.		if (IClass == Item::ITEM_CLASS_BELT) 		{			Belt* pBelt = dynamic_cast<Belt*>(pItem);			Inventory* pBeltInventory = ((Belt*)pItem)->getInventory();			BYTE SubItemCount = 0;			// 器南狼 箭磊父怒 酒捞袍狼 沥焊甫 佬绢 甸牢促.			for (int i = 0; i < pBelt->getPocketCount(); i++) 			{				Item* pBeltItem = pBeltInventory->getItem(i, 0);				if (pBeltItem != NULL) 				{					SubItemInfo* pSubItemInfo = new SubItemInfo();					pSubItemInfo->setObjectID(pBeltItem->getObjectID());					pSubItemInfo->setItemClass(pBeltItem->getItemClass());					pSubItemInfo->setItemType(pBeltItem->getItemType());					pSubItemInfo->setItemNum(pBeltItem->getNum());					pSubItemInfo->setSlotID(i);					pExtraSlotInfo->addListElement(pSubItemInfo);					SubItemCount++;				}			}			pExtraSlotInfo->setListNum(SubItemCount);		}		// 惑狼 窍狼 Main Color 瘤陛篮 弊成 0 栏肺 悸泼 秦敌促.		pExtraSlotInfo->setMainColor(0);			pExtraInfo->addListElement(pExtraSlotInfo);		ItemCount++;	}	pExtraInfo->setListNum(ItemCount);	return pExtraInfo;	__END_DEBUG	__END_CATCH}//----------------------------------------------------------------------//// get Gear Info////----------------------------------------------------------------------GearInfo* Vampire::getGearInfo() const	throw(){	__BEGIN_TRY	__BEGIN_DEBUG	int ItemCount = 0;	GearInfo* pGearInfo = new GearInfo();	for (int i = 0; i < VAMPIRE_WEAR_MAX; i++) 	{		Item* pItem = m_pWearItem[i];		if (pItem != NULL) 		{			//Item::ItemClass IClass = pItem->getItemClass();			GearSlotInfo* pGearSlotInfo = new GearSlotInfo();			pGearSlotInfo->setObjectID(pItem->getObjectID());			pGearSlotInfo->setItemClass(pItem->getItemClass());			pGearSlotInfo->setItemType(pItem->getItemType());			pGearSlotInfo->setOptionType(pItem->getOptionType());			pGearSlotInfo->setDurability(pItem->getDurability());			pGearSlotInfo->setSilver(pItem->getSilver());			pGearSlotInfo->setEnchantLevel(pItem->getEnchantLevel());			/*			// 骇飘扼搁 Sub 酒捞袍狼 眠啊 沥焊啊 鞘夸窍促.			if (IClass == Item::ITEM_CLASS_BELT) {				// 酒捞袍 牢器甫 罐酒柯促.				ItemInfo* pItemInfo = g_pItemInfoManager->getItemInfo(pItem->getItemClass(), pItem->getItemType());					// 器南狼 箭磊甫 罐酒柯促.				BYTE PocketNum = ((BeltInfo*)pItemInfo)->getPocketCount();					// 骇飘狼 牢亥配府甫 罐酒柯促.				Inventory* pBeltInventory = ((Belt*)pItem)->getInventory();					BYTE SubItemCount = 0;					// 器南狼 箭磊父怒 酒捞袍狼 沥焊甫 佬绢 甸牢促.				for (int i = 0; i < PocketNum ; i++) {						Item* pBeltItem = pBeltInventory->getItem(i, 0);						if (pBeltItem != NULL) {							SubItemInfo* pSubItemInfo = new SubItemInfo();						pSubItemInfo->setObjectID(pBeltItem->getObjectID());						pSubItemInfo->setItemClass(pBeltItem->getItemClass());						pSubItemInfo->setItemType(pBeltItem->getItemType());						pSubItemInfo->setItemNum(pBeltItem->getNum());						pSubItemInfo->setSlotID(i);							pGearSlotInfo->addListElement(pSubItemInfo);							SubItemCount++;					}				}					pGearSlotInfo->setListNum(SubItemCount);			}			*/			pGearSlotInfo->setSlotID(i);				// 惑狼 窍狼 Main Color 瘤陛篮 弊成 0 栏肺 悸泼 秦敌促.			pGearSlotInfo->setMainColor(0);					pGearInfo->addListElement(pGearSlotInfo);			ItemCount++;		}	}	pGearInfo->setListNum(ItemCount);	return pGearInfo;	__END_DEBUG	__END_CATCH}//////////////////////////////////////////////////////////////////////////////// get Inventory Info//////////////////////////////////////////////////////////////////////////////InventoryInfo* Vampire::getInventoryInfo() const    throw(){	__BEGIN_TRY	__BEGIN_DEBUG	BYTE ItemCount = 0;	InventoryInfo* pInventoryInfo = new InventoryInfo();	list<Item*> ItemList;	VolumeHeight_t Height = m_pInventory->getHeight();	VolumeWidth_t Width = m_pInventory->getWidth();	for (int j = 0; j < Height; j++) 	{		for (int i = 0 ; i < Width ; i ++) 		{			if (m_pInventory->hasItem(i, j)) 			{				Item* pItem = m_pInventory->getItem(i , j);				VolumeWidth_t ItemWidth = pItem->getVolumeWidth();				Item::ItemClass IClass = pItem->getItemClass();				list<Item*>::iterator itr = find(ItemList.begin() , ItemList.end() , pItem);				if (itr == ItemList.end()) 				{					ItemList.push_back(pItem);					// InventorySlotInfo甫 备己					InventorySlotInfo* pInventorySlotInfo = new InventorySlotInfo();					pInventorySlotInfo->setObjectID(pItem->getObjectID());					pInventorySlotInfo->setItemClass(pItem->getItemClass());					pInventorySlotInfo->setItemType(pItem->getItemType());					pInventorySlotInfo->setOptionType(pItem->getOptionType());					pInventorySlotInfo->setSilver(pItem->getSilver());					pInventorySlotInfo->setDurability(pItem->getDurability());					pInventorySlotInfo->setEnchantLevel(pItem->getEnchantLevel());					pInventorySlotInfo->setInvenX(i);					pInventorySlotInfo->setInvenY(j);					pInventorySlotInfo->setItemNum(pItem->getNum());					if (IClass == Item::ITEM_CLASS_AR) 					{						AR* pAR = dynamic_cast<AR*>(pItem);						pInventorySlotInfo->setItemNum(pAR->getBulletCount());					} 					else if (IClass == Item::ITEM_CLASS_SG) 					{						SG* pSG = dynamic_cast<SG*>(pItem);						pInventorySlotInfo->setItemNum(pSG->getBulletCount());					} 					else if (IClass == Item::ITEM_CLASS_SMG) 					{						SMG* pSMG = dynamic_cast<SMG*>(pItem);						pInventorySlotInfo->setItemNum(pSMG->getBulletCount());					} 					else if (IClass == Item::ITEM_CLASS_SR) 					{						SR* pSR = dynamic_cast<SR*>(pItem);						pInventorySlotInfo->setItemNum(pSR->getBulletCount());					} 					// 骇飘扼搁 Sub 酒捞袍狼 眠啊 沥焊啊 鞘夸窍促.					if (IClass == Item::ITEM_CLASS_BELT) 					{						Belt* pBelt = dynamic_cast<Belt*>(pItem);						Inventory* pBeltInventory = ((Belt*)pItem)->getInventory();						BYTE SubItemCount = 0;						// 器南狼 箭磊父怒 酒捞袍狼 沥焊甫 佬绢 甸牢促.						for (int i = 0; i < pBelt->getPocketCount() ; i++) 						{							Item* pBeltItem = pBeltInventory->getItem(i, 0);							if (pBeltItem != NULL) 							{								SubItemInfo* pSubItemInfo = new SubItemInfo();								pSubItemInfo->setObjectID(pBeltItem->getObjectID());								pSubItemInfo->setItemClass(pBeltItem->getItemClass());								pSubItemInfo->setItemType(pBeltItem->getItemType());								pSubItemInfo->setItemNum(pBeltItem->getNum());								pSubItemInfo->setSlotID(i);								pInventorySlotInfo->addListElement(pSubItemInfo);								SubItemCount++;							}						}						pInventorySlotInfo->setListNum(SubItemCount);					}					pInventorySlotInfo->setMainColor(0);					pInventoryInfo->addListElement(pInventorySlotInfo);					ItemCount++;					i = i + ItemWidth - 1;				}			}		}	}	pInventoryInfo->setListNum(ItemCount);	return pInventoryInfo;	__END_DEBUG	__END_CATCH

⌨️ 快捷键说明

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