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

📄 itemutil.cpp

📁 天之炼狱1服务器端源文件游戏服务端不完整
💻 CPP
📖 第 1 页 / 共 5 页
字号:
//////////////////////////////////////////////////////////////////////////////// Filename    : ItemUtil.cpp// Written by  : excel96// Description : //////////////////////////////////////////////////////////////////////////////#include "DB.h"#include "ItemUtil.h"#include "ItemInfo.h"#include "ItemInfoManager.h"#include "OptionInfo.h"#include "Player.h"#include "PlayerCreature.h"#include "Inventory.h"#include "Utility.h"#include "VSDateTime.h"#include "Slayer.h"#include "Vampire.h"#include "Ousters.h"#include "Treasure.h"#include "UniqueItemManager.h"#include "RelicUtil.h"#include "GoodsInfoManager.h"#include "ItemGradeManager.h"#include "item/AR.h"#include "item/SR.h"#include "item/SG.h"#include "item/SMG.h"#include "item/Magazine.h"#include "item/SlayerPortalItem.h"#include "item/Relic.h"#include "item/OustersSummonItem.h"#include "ItemFactoryManager.h"#include "VariableManager.h"#include "Gpackets/GCCreateItem.h"#include <fstream>#include <stdio.h>#include "Corpse.h"#include "MonsterCorpse.h"#include "ctf/FlagManager.h"#include "PetInfo.h"#include "PetExpInfo.h"#include "PetTypeInfo.h"#include "item/PetItem.h"//////////////////////////////////////////////////////////////////////////////// 阶老 荐 乐绰 酒捞袍牢啊?//////////////////////////////////////////////////////////////////////////////bool isStackable(Item::ItemClass IClass){	switch (IClass)	{		case Item::ITEM_CLASS_POTION:		case Item::ITEM_CLASS_MAGAZINE:		case Item::ITEM_CLASS_EVENT_STAR:		case Item::ITEM_CLASS_SKULL:		case Item::ITEM_CLASS_SERUM:		case Item::ITEM_CLASS_VAMPIRE_ETC:		case Item::ITEM_CLASS_WATER:		case Item::ITEM_CLASS_HOLYWATER:		case Item::ITEM_CLASS_BOMB_MATERIAL:		case Item::ITEM_CLASS_BOMB:		case Item::ITEM_CLASS_MINE:		case Item::ITEM_CLASS_EVENT_ETC:		case Item::ITEM_CLASS_RESURRECT_ITEM:		case Item::ITEM_CLASS_ETC:		case Item::ITEM_CLASS_MIXING_ITEM:		case Item::ITEM_CLASS_LARVA:		case Item::ITEM_CLASS_PUPA:		case Item::ITEM_CLASS_COMPOS_MEI:		case Item::ITEM_CLASS_EFFECT_ITEM:		case Item::ITEM_CLASS_MOON_CARD:		case Item::ITEM_CLASS_PET_ENCHANT_ITEM:		case Item::ITEM_CLASS_LUCKY_BAG:		case Item::ITEM_CLASS_PET_FOOD:			return true;		default:			return false;	}	return false;}//////////////////////////////////////////////////////////////////////////////// 阶老 荐 乐绰 酒捞袍牢啊?//////////////////////////////////////////////////////////////////////////////bool isStackable(const Item* pItem){	//if (pItem == NULL) return false;	/*	switch (pItem->getItemClass())	{		case Item::ITEM_CLASS_POTION:		case Item::ITEM_CLASS_MAGAZINE:		case Item::ITEM_CLASS_EVENT_STAR:		case Item::ITEM_CLASS_SKULL:		case Item::ITEM_CLASS_SERUM:		case Item::ITEM_CLASS_VAMPIRE_ETC:		case Item::ITEM_CLASS_WATER:		case Item::ITEM_CLASS_HOLYWATER:		case Item::ITEM_CLASS_BOMB_MATERIAL:		case Item::ITEM_CLASS_BOMB:		case Item::ITEM_CLASS_MINE:			return true;		default:			return false;	}	*/	// by sigi. 2002.5.13	return pItem!=NULL 			&& pItem->isStackable();}//////////////////////////////////////////////////////////////////////////////// 鞍篮 努贰胶, 鸥涝狼 酒捞袍牢啊?//////////////////////////////////////////////////////////////////////////////bool isSameItem(Item::ItemClass IClass1, Item::ItemClass IClass2, ItemType_t type1, ItemType_t type2){	return IClass1 == IClass2 			&& type1 == type2;}//////////////////////////////////////////////////////////////////////////////// 鞍篮 努贰胶, 鸥涝狼 酒捞袍牢啊?//////////////////////////////////////////////////////////////////////////////bool isSameItem(const Item* pItem1, const Item* pItem2){	return pItem1!=NULL && pItem2!=NULL			&& pItem1->getItemClass() == pItem2->getItemClass() 			&& pItem1->getItemType() == pItem2->getItemType();}//////////////////////////////////////////////////////////////////////////////// 滴 酒捞袍阑 阶阑 荐 乐绰啊?//////////////////////////////////////////////////////////////////////////////bool canStack(const Item* pItem1, const Item* pItem2){	return isStackable(pItem1) 			&& isSameItem(pItem1, pItem2);}//////////////////////////////////////////////////////////////////////////////// 滴 颊 公扁牢啊?//////////////////////////////////////////////////////////////////////////////bool isTwohandWeapon(const Item* pItem){	if (pItem == NULL) return false;	switch (pItem->getItemClass())	{		case Item::ITEM_CLASS_BLADE:		case Item::ITEM_CLASS_AR:		case Item::ITEM_CLASS_SR:		case Item::ITEM_CLASS_SG:		case Item::ITEM_CLASS_SMG:		case Item::ITEM_CLASS_CROSS:		case Item::ITEM_CLASS_MACE:		case Item::ITEM_CLASS_VAMPIRE_WEAPON:		case Item::ITEM_CLASS_OUSTERS_CHAKRAM:		case Item::ITEM_CLASS_OUSTERS_WRISTLET:			return true;		default:			return false;	}	return false;}//////////////////////////////////////////////////////////////////////////////// 立辟傈 公扁牢啊?//////////////////////////////////////////////////////////////////////////////bool isMeleeWeapon(const Item* pItem){	if (pItem == NULL) return false;	switch (pItem->getItemClass())	{		case Item::ITEM_CLASS_SWORD:		case Item::ITEM_CLASS_BLADE:		case Item::ITEM_CLASS_CROSS:		case Item::ITEM_CLASS_MACE:		case Item::ITEM_CLASS_VAMPIRE_WEAPON:		case Item::ITEM_CLASS_OUSTERS_CHAKRAM:		case Item::ITEM_CLASS_OUSTERS_WRISTLET:			return true;		default:			return false;	}	return false;}//////////////////////////////////////////////////////////////////////////////// 傈荤, 焙牢 己流磊 公扁牢啊?//////////////////////////////////////////////////////////////////////////////bool isFighterWeapon(const Item* pItem){	if (pItem == NULL) return false;	switch (pItem->getItemClass())	{		case Item::ITEM_CLASS_SWORD:		case Item::ITEM_CLASS_BLADE:			return true;		default:			return false;	}	return false;}bool isArmsWeapon(const Item* pItem){	if (pItem == NULL) return false;	switch (pItem->getItemClass())	{		case Item::ITEM_CLASS_AR:		case Item::ITEM_CLASS_SR:		case Item::ITEM_CLASS_SG:		case Item::ITEM_CLASS_SMG:			return true;			break;		default:			return false;			break;	}	return false;}bool isClericWeapon(const Item* pItem){	if (pItem == NULL) return false;	switch (pItem->getItemClass())	{		case Item::ITEM_CLASS_CROSS:		case Item::ITEM_CLASS_MACE:			return true;		default:			return false;	}	return false;}//////////////////////////////////////////////////////////////////////////////// 醚俊 嘎绰 藕芒牢啊?//////////////////////////////////////////////////////////////////////////////bool isSuitableMagazine(const Item* pGun, const Item* pMagazine, bool hasVivid){	if (pGun == NULL || pMagazine == NULL) return false;	if (pMagazine->getItemClass() != Item::ITEM_CLASS_MAGAZINE) return false;	ItemType_t magazineType = pMagazine->getItemType();	MagazineInfo* pInfo = dynamic_cast<MagazineInfo*>(g_pItemInfoManager->getItemInfo( Item::ITEM_CLASS_MAGAZINE, magazineType ));	switch (pGun->getItemClass())	{		case Item::ITEM_CLASS_SG:			if ( pInfo->getGunType() != MagazineInfo::SG ) return false;//			if (magazineType == 0) return true;//			if (magazineType == 1) return true;//			if (magazineType == 8) return true;//			if (magazineType == 9) return true;			break;		case Item::ITEM_CLASS_AR:			if ( pInfo->getGunType() != MagazineInfo::AR ) return false;//			if (magazineType == 2) return true;//			if (magazineType == 3) return true;//			if (magazineType == 10) return true;//			if (magazineType == 11) return true;			break;		case Item::ITEM_CLASS_SMG:			if ( pInfo->getGunType() != MagazineInfo::SMG ) return false;//			if (magazineType == 4) return true;//			if (magazineType == 5) return true;//			if (magazineType == 12) return true;//			if (magazineType == 13) return true;			break;		case Item::ITEM_CLASS_SR:			if ( pInfo->getGunType() != MagazineInfo::SR ) return false;//			if (magazineType == 6) return true;//			if (magazineType == 7) return true;//			if (magazineType == 14) return true;//			if (magazineType == 15) return true;			break;		default:			return false;	}	if ( pInfo->isVivid() && !hasVivid ) return false;	return true;}//////////////////////////////////////////////////////////////////////////////// 浇饭捞绢侩 公扁牢啊?//////////////////////////////////////////////////////////////////////////////bool isSlayerWeapon(Item::ItemClass IClass){	switch (IClass)	{		case Item::ITEM_CLASS_SWORD:		case Item::ITEM_CLASS_BLADE:		case Item::ITEM_CLASS_CROSS:		case Item::ITEM_CLASS_MACE:		case Item::ITEM_CLASS_AR:		case Item::ITEM_CLASS_SR:		case Item::ITEM_CLASS_SG:		case Item::ITEM_CLASS_SMG:			return true;		default:			return false;	}	return false;}//////////////////////////////////////////////////////////////////////////////// 轨颇捞绢侩 公扁牢啊?//////////////////////////////////////////////////////////////////////////////bool isVampireWeapon(Item::ItemClass IClass){	switch (IClass)	{		case Item::ITEM_CLASS_VAMPIRE_WEAPON:			return true;		default:			return false;	}	return false;}//////////////////////////////////////////////////////////////////////////////// 酒快胶磐胶侩 公扁牢啊?//////////////////////////////////////////////////////////////////////////////bool isOustersWeapon(Item::ItemClass IClass){	switch (IClass)	{		case Item::ITEM_CLASS_OUSTERS_CHAKRAM:		//case Item::ITEM_CLASS_OUSTERS_WRISTLET:			return true;		default:			return false;	}	return false;}//////////////////////////////////////////////////////////////////////////////// 浇饭捞绢侩 规绢备牢啊?//////////////////////////////////////////////////////////////////////////////bool isSlayerArmor(Item::ItemClass IClass){	switch (IClass)	{		case Item::ITEM_CLASS_COAT:		case Item::ITEM_CLASS_TROUSER:		case Item::ITEM_CLASS_GLOVE:		case Item::ITEM_CLASS_BELT:		case Item::ITEM_CLASS_SHOES:		case Item::ITEM_CLASS_SHIELD:		case Item::ITEM_CLASS_HELM:			return true;		default:			break;	}	return false;}//////////////////////////////////////////////////////////////////////////////// 轨颇捞绢侩 规绢备牢啊?//////////////////////////////////////////////////////////////////////////////bool isVampireArmor(Item::ItemClass IClass){	switch (IClass)	{		case Item::ITEM_CLASS_VAMPIRE_COAT:			return true;		default:			break;	}	return false;}//////////////////////////////////////////////////////////////////////////////// 酒快胶磐胶 规绢备牢啊?//////////////////////////////////////////////////////////////////////////////bool isOustersArmor(Item::ItemClass IClass){	switch (IClass)	{		case Item::ITEM_CLASS_OUSTERS_COAT:		case Item::ITEM_CLASS_OUSTERS_BOOTS:		case Item::ITEM_CLASS_OUSTERS_CIRCLET:		case Item::ITEM_CLASS_OUSTERS_ARMSBAND:			return true;		default:			break;	}	return false;}//////////////////////////////////////////////////////////////////////////////// 浇饭捞绢侩 厩技荤府牢啊?//////////////////////////////////////////////////////////////////////////////bool isSlayerAccessory(Item::ItemClass IClass){	switch (IClass)	{		case Item::ITEM_CLASS_NECKLACE:		case Item::ITEM_CLASS_BRACELET:		case Item::ITEM_CLASS_RING:			return true;		default:			break;	}	return false;}//////////////////////////////////////////////////////////////////////////////// 轨颇捞绢侩 厩技荤府牢啊?//////////////////////////////////////////////////////////////////////////////bool isVampireAccessory(Item::ItemClass IClass){	switch (IClass)	{		case Item::ITEM_CLASS_VAMPIRE_NECKLACE:		case Item::ITEM_CLASS_VAMPIRE_BRACELET:		case Item::ITEM_CLASS_VAMPIRE_RING:		case Item::ITEM_CLASS_VAMPIRE_AMULET:		case Item::ITEM_CLASS_VAMPIRE_EARRING:			return true;		default:			break;	}	return false;}//////////////////////////////////////////////////////////////////////////////// 酒快胶磐胶侩 厩技荤府牢啊?//////////////////////////////////////////////////////////////////////////////bool isOustersAccessory(Item::ItemClass IClass){	switch (IClass)	{		case Item::ITEM_CLASS_OUSTERS_ARMSBAND:		case Item::ITEM_CLASS_OUSTERS_PENDENT:		case Item::ITEM_CLASS_OUSTERS_RING:		case Item::ITEM_CLASS_OUSTERS_STONE:			return true;		default:			break;	}	return false;}//////////////////////////////////////////////////////////////////////////////// 荐府啊瓷茄 酒捞袍牢啊?//////////////////////////////////////////////////////////////////////////////bool isRepairableItem(const Item* pItem){	// 蜡聪农 酒捞袍篮 荐府且 鞘夸啊 绝促.	if (pItem == NULL		|| pItem->isUnique()		|| pItem->isTimeLimitItem()) return false;	if ( pItem->isFlagItem() ) return false;	switch (pItem->getItemClass())	{		case Item::ITEM_CLASS_MOTORCYCLE:		case Item::ITEM_CLASS_POTION:		case Item::ITEM_CLASS_MAGAZINE:		case Item::ITEM_CLASS_WATER:		case Item::ITEM_CLASS_HOLYWATER:

⌨️ 快捷键说明

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