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

📄 itemfactorymanager.cpp

📁 天之炼狱1服务器端源文件游戏服务端不完整
💻 CPP
📖 第 1 页 / 共 2 页
字号:
	m_Factories[Item::ITEM_CLASS_SERUM] = new SerumFactory();	m_ItemClassMap[m_Factories[Item::ITEM_CLASS_SERUM]->getItemClassName()] = Item::ITEM_CLASS_SERUM;	m_Factories[Item::ITEM_CLASS_VAMPIRE_ETC] = new VampireETCFactory();	m_ItemClassMap[m_Factories[Item::ITEM_CLASS_VAMPIRE_ETC]->getItemClassName()] = Item::ITEM_CLASS_VAMPIRE_ETC;	m_Factories[Item::ITEM_CLASS_SLAYER_PORTAL_ITEM] = new SlayerPortalItemFactory();	m_ItemClassMap[m_Factories[Item::ITEM_CLASS_SLAYER_PORTAL_ITEM]->getItemClassName()] = Item::ITEM_CLASS_SLAYER_PORTAL_ITEM;	m_Factories[Item::ITEM_CLASS_VAMPIRE_PORTAL_ITEM] = new VampirePortalItemFactory();	m_ItemClassMap[m_Factories[Item::ITEM_CLASS_VAMPIRE_PORTAL_ITEM]->getItemClassName()] = Item::ITEM_CLASS_VAMPIRE_PORTAL_ITEM;	m_Factories[Item::ITEM_CLASS_EVENT_GIFT_BOX] = new EventGiftBoxFactory();	m_ItemClassMap[m_Factories[Item::ITEM_CLASS_EVENT_GIFT_BOX]->getItemClassName()] = Item::ITEM_CLASS_EVENT_GIFT_BOX;	m_Factories[Item::ITEM_CLASS_EVENT_STAR] = new EventStarFactory();	m_ItemClassMap[m_Factories[Item::ITEM_CLASS_EVENT_STAR]->getItemClassName()] = Item::ITEM_CLASS_EVENT_STAR;	m_Factories[Item::ITEM_CLASS_VAMPIRE_EARRING] = new VampireEarringFactory();	m_ItemClassMap[m_Factories[Item::ITEM_CLASS_VAMPIRE_EARRING]->getItemClassName()] = Item::ITEM_CLASS_VAMPIRE_EARRING;	m_Factories[Item::ITEM_CLASS_RELIC] = new RelicFactory();	m_ItemClassMap[m_Factories[Item::ITEM_CLASS_RELIC]->getItemClassName()] = Item::ITEM_CLASS_RELIC;		m_Factories[Item::ITEM_CLASS_VAMPIRE_WEAPON] = new VampireWeaponFactory();	m_ItemClassMap[m_Factories[Item::ITEM_CLASS_VAMPIRE_WEAPON]->getItemClassName()] = Item::ITEM_CLASS_VAMPIRE_WEAPON;	m_Factories[Item::ITEM_CLASS_VAMPIRE_AMULET] = new VampireAmuletFactory();	m_ItemClassMap[m_Factories[Item::ITEM_CLASS_VAMPIRE_AMULET]->getItemClassName()] = Item::ITEM_CLASS_VAMPIRE_AMULET;	m_Factories[Item::ITEM_CLASS_QUEST_ITEM] = new QuestItemFactory();	m_ItemClassMap[m_Factories[Item::ITEM_CLASS_QUEST_ITEM]->getItemClassName()] = Item::ITEM_CLASS_QUEST_ITEM;	m_Factories[Item::ITEM_CLASS_EVENT_TREE] = new EventTreeFactory();	m_ItemClassMap[m_Factories[Item::ITEM_CLASS_EVENT_TREE]->getItemClassName()] = Item::ITEM_CLASS_EVENT_TREE;	m_Factories[Item::ITEM_CLASS_EVENT_ETC] = new EventETCFactory();	m_ItemClassMap[m_Factories[Item::ITEM_CLASS_EVENT_ETC]->getItemClassName()] = Item::ITEM_CLASS_EVENT_ETC;	m_Factories[Item::ITEM_CLASS_BLOOD_BIBLE] = new BloodBibleFactory();	m_ItemClassMap[m_Factories[Item::ITEM_CLASS_BLOOD_BIBLE]->getItemClassName()] = Item::ITEM_CLASS_BLOOD_BIBLE;	m_Factories[Item::ITEM_CLASS_CASTLE_SYMBOL] = new CastleSymbolFactory();	m_ItemClassMap[m_Factories[Item::ITEM_CLASS_CASTLE_SYMBOL]->getItemClassName()] = Item::ITEM_CLASS_CASTLE_SYMBOL;	m_Factories[Item::ITEM_CLASS_COUPLE_RING] = new CoupleRingFactory();	m_ItemClassMap[m_Factories[Item::ITEM_CLASS_COUPLE_RING]->getItemClassName()] = Item::ITEM_CLASS_COUPLE_RING;	m_Factories[Item::ITEM_CLASS_VAMPIRE_COUPLE_RING] = new VampireCoupleRingFactory();	m_ItemClassMap[m_Factories[Item::ITEM_CLASS_VAMPIRE_COUPLE_RING]->getItemClassName()] = Item::ITEM_CLASS_VAMPIRE_COUPLE_RING;	m_Factories[Item::ITEM_CLASS_EVENT_ITEM] = new EventItemFactory();	m_ItemClassMap[m_Factories[Item::ITEM_CLASS_EVENT_ITEM]->getItemClassName()] = Item::ITEM_CLASS_EVENT_ITEM;	m_Factories[Item::ITEM_CLASS_DYE_POTION] = new DyePotionFactory();	m_ItemClassMap[m_Factories[Item::ITEM_CLASS_DYE_POTION]->getItemClassName()] = Item::ITEM_CLASS_DYE_POTION;	m_Factories[Item::ITEM_CLASS_RESURRECT_ITEM] = new ResurrectItemFactory();	m_ItemClassMap[m_Factories[Item::ITEM_CLASS_RESURRECT_ITEM]->getItemClassName()] = Item::ITEM_CLASS_RESURRECT_ITEM;	m_Factories[Item::ITEM_CLASS_MIXING_ITEM] = new MixingItemFactory();	m_ItemClassMap[m_Factories[Item::ITEM_CLASS_MIXING_ITEM]->getItemClassName()] = Item::ITEM_CLASS_MIXING_ITEM;	m_Factories[Item::ITEM_CLASS_OUSTERS_ARMSBAND] = new OustersArmsbandFactory();	m_ItemClassMap[m_Factories[Item::ITEM_CLASS_OUSTERS_ARMSBAND]->getItemClassName()] = Item::ITEM_CLASS_OUSTERS_ARMSBAND;	m_Factories[Item::ITEM_CLASS_OUSTERS_BOOTS] = new OustersBootsFactory();	m_ItemClassMap[m_Factories[Item::ITEM_CLASS_OUSTERS_BOOTS]->getItemClassName()] = Item::ITEM_CLASS_OUSTERS_BOOTS;	m_Factories[Item::ITEM_CLASS_OUSTERS_CHAKRAM] = new OustersChakramFactory();	m_ItemClassMap[m_Factories[Item::ITEM_CLASS_OUSTERS_CHAKRAM]->getItemClassName()] = Item::ITEM_CLASS_OUSTERS_CHAKRAM;	m_Factories[Item::ITEM_CLASS_OUSTERS_CIRCLET] = new OustersCircletFactory();	m_ItemClassMap[m_Factories[Item::ITEM_CLASS_OUSTERS_CIRCLET]->getItemClassName()] = Item::ITEM_CLASS_OUSTERS_CIRCLET;	m_Factories[Item::ITEM_CLASS_OUSTERS_COAT] = new OustersCoatFactory();	m_ItemClassMap[m_Factories[Item::ITEM_CLASS_OUSTERS_COAT]->getItemClassName()] = Item::ITEM_CLASS_OUSTERS_COAT;	m_Factories[Item::ITEM_CLASS_OUSTERS_PENDENT] = new OustersPendentFactory();	m_ItemClassMap[m_Factories[Item::ITEM_CLASS_OUSTERS_PENDENT]->getItemClassName()] = Item::ITEM_CLASS_OUSTERS_PENDENT;	m_Factories[Item::ITEM_CLASS_OUSTERS_RING] = new OustersRingFactory();	m_ItemClassMap[m_Factories[Item::ITEM_CLASS_OUSTERS_RING]->getItemClassName()] = Item::ITEM_CLASS_OUSTERS_RING;	m_Factories[Item::ITEM_CLASS_OUSTERS_STONE] = new OustersStoneFactory();	m_ItemClassMap[m_Factories[Item::ITEM_CLASS_OUSTERS_STONE]->getItemClassName()] = Item::ITEM_CLASS_OUSTERS_STONE;	m_Factories[Item::ITEM_CLASS_OUSTERS_WRISTLET] = new OustersWristletFactory();	m_ItemClassMap[m_Factories[Item::ITEM_CLASS_OUSTERS_WRISTLET]->getItemClassName()] = Item::ITEM_CLASS_OUSTERS_WRISTLET;	m_Factories[Item::ITEM_CLASS_LARVA] = new LarvaFactory();	m_ItemClassMap[m_Factories[Item::ITEM_CLASS_LARVA]->getItemClassName()] = Item::ITEM_CLASS_LARVA;	m_Factories[Item::ITEM_CLASS_PUPA] = new PupaFactory();	m_ItemClassMap[m_Factories[Item::ITEM_CLASS_PUPA]->getItemClassName()] = Item::ITEM_CLASS_PUPA;	m_Factories[Item::ITEM_CLASS_COMPOS_MEI] = new ComposMeiFactory();	m_ItemClassMap[m_Factories[Item::ITEM_CLASS_COMPOS_MEI]->getItemClassName()] = Item::ITEM_CLASS_COMPOS_MEI;	m_Factories[Item::ITEM_CLASS_OUSTERS_SUMMON_ITEM] = new OustersSummonItemFactory();	m_ItemClassMap[m_Factories[Item::ITEM_CLASS_OUSTERS_SUMMON_ITEM]->getItemClassName()] = Item::ITEM_CLASS_OUSTERS_SUMMON_ITEM;	m_Factories[Item::ITEM_CLASS_EFFECT_ITEM] = new EffectItemFactory();	m_ItemClassMap[m_Factories[Item::ITEM_CLASS_EFFECT_ITEM]->getItemClassName()] = Item::ITEM_CLASS_EFFECT_ITEM;	m_Factories[Item::ITEM_CLASS_CODE_SHEET] = new CodeSheetFactory();	m_ItemClassMap[m_Factories[Item::ITEM_CLASS_CODE_SHEET]->getItemClassName()] = Item::ITEM_CLASS_CODE_SHEET;	m_Factories[Item::ITEM_CLASS_MOON_CARD] = new MoonCardFactory();	m_ItemClassMap[m_Factories[Item::ITEM_CLASS_MOON_CARD]->getItemClassName()] = Item::ITEM_CLASS_MOON_CARD;	m_Factories[Item::ITEM_CLASS_SWEEPER] = new SweeperFactory();	m_ItemClassMap[m_Factories[Item::ITEM_CLASS_SWEEPER]->getItemClassName()] = Item::ITEM_CLASS_SWEEPER;	m_Factories[Item::ITEM_CLASS_PET_ITEM] = new PetItemFactory();	m_ItemClassMap[m_Factories[Item::ITEM_CLASS_PET_ITEM]->getItemClassName()] = Item::ITEM_CLASS_PET_ITEM;	m_Factories[Item::ITEM_CLASS_PET_FOOD] = new PetFoodFactory();	m_ItemClassMap[m_Factories[Item::ITEM_CLASS_PET_FOOD]->getItemClassName()] = Item::ITEM_CLASS_PET_FOOD;	m_Factories[Item::ITEM_CLASS_PET_ENCHANT_ITEM] = new PetEnchantItemFactory();	m_ItemClassMap[m_Factories[Item::ITEM_CLASS_PET_ENCHANT_ITEM]->getItemClassName()] = Item::ITEM_CLASS_PET_ENCHANT_ITEM;	m_Factories[Item::ITEM_CLASS_LUCKY_BAG] = new LuckyBagFactory();	m_ItemClassMap[m_Factories[Item::ITEM_CLASS_LUCKY_BAG]->getItemClassName()] = Item::ITEM_CLASS_LUCKY_BAG;	__END_CATCH}////////////////////////////////////////////////////////////////////////// 酒捞袍 努贰胶肺 窍困 蒲配府 概聪廉俊 乐绰 createItem阑 角青茄促.////////////////////////////////////////////////////////////////////////Item* ItemFactoryManager::createItem (Item::ItemClass IClass, ItemType_t ItemType, const list<OptionType_t>& OptionType) 	   throw (NoSuchElementException, Error){	__BEGIN_TRY	try 	{		// 酒捞袍 酒捞叼啊 裹困甫 逞绢级栏肺 牢秦辑 Seg.Fault 啊 惯积窍瘤 臼档废.		// 捞繁 荤侩磊绰 寸厘 漏扼具 茄促.		if (IClass >= m_Size || m_Factories[IClass] == NULL) 		{			StringStream msg;			msg << "item factory [" << (int)IClass << "] not exist.";			cerr << "ItemFactoryManager::createItem() : NoSuchElementException" << endl;			filelog("itembug.log", "ItemFactoryManager::createItem() : Invalid Item Class : %d", IClass);			throw NoSuchElementException(msg.toString());		}	} 	catch (Throwable & t) 	{		cerr << t.toString() << endl;	}	Item* pItem = m_Factories[IClass]->createItem(ItemType, OptionType);		pItem->setTraceItem( bTraceLog( pItem ) );	pItem->setUnique( g_pItemInfoManager->getItemInfo( IClass, ItemType )->isUnique() );		return pItem;	__END_CATCH}////////////////////////////////////////////////////////////////////////// 酒捞袍酒捞叼肺 漂沥 酒捞袍狼 捞抚阑 府畔茄促.////////////////////////////////////////////////////////////////////////string ItemFactoryManager::getItemName (Item::ItemClass IClass) 	   throw (){	__BEGIN_TRY	// 酒捞袍 酒捞叼啊 裹困甫 逞绢级栏肺 牢秦辑 Seg.Fault 啊 惯积窍瘤 臼档废.	// 捞繁 荤侩磊绰 寸厘 漏扼具 茄促.	if (IClass >= m_Size || m_Factories[IClass] == NULL) {		StringStream msg;		msg << "invaltype item type(" << (int)IClass << ")";	}	return m_Factories[IClass]->getItemClassName();				__END_CATCH}Item::ItemClass ItemFactoryManager::getItemClassByName( const string & ClassName )	throw(){	__BEGIN_TRY	hash_map<string, Item::ItemClass>::const_iterator itr = m_ItemClassMap.begin();	for (; itr != m_ItemClassMap.end(); itr++)	{		// 措,家巩磊甫 公矫窍绊, 厚背甫 荐青茄促.		if (strcasecmp(ClassName.c_str(), (itr->first).c_str()) == 0)		{			return itr->second;		}	}	return Item::ITEM_CLASS_MAX;	/*	hash_map<string, Item::ItemClass>::const_iterator ClassType = m_ItemClassMap.find( ClassName );    if (ClassType==m_ItemClassMap.end())	{		return Item::ITEM_CLASS_RING;	}	else	{		return ClassType->second;	}	*/	__END_CATCH}//////////////////////////////////////////////////////////////////////// get debug string//////////////////////////////////////////////////////////////////////string ItemFactoryManager::toString () const	throw (){	__BEGIN_TRY	StringStream msg;	msg << "ItemFactoryManager(\n";	for (int i = 0 ; i < m_Size ; i ++)	{		msg << "ItemFactories[" << i << "] == ";		msg	<< (m_Factories[i] == NULL ? "NULL" : m_Factories[i]->getItemClassName());		msg << "\n";	}	msg << ")";	return msg.toString();	__END_CATCH}//////////////////////////////////////////////////// global variable declaration//////////////////////////////////////////////////ItemFactoryManager* g_pItemFactoryManager = NULL;

⌨️ 快捷键说明

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