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

📄 ousters.cpp

📁 天之炼狱1服务器端源文件游戏服务端不完整
💻 CPP
📖 第 1 页 / 共 5 页
字号:
	__LEAVE_CRITICAL_SECTION(m_Mutex)	__END_CATCH}//----------------------------------------------------------------------// tinysave//----------------------------------------------------------------------void Ousters::tinysave(const string & field)	// by sigi. 2002.5.15	    const throw(Error){    __BEGIN_TRY    Statement* pStmt = NULL;	BEGIN_DB	{		pStmt = g_pDatabaseManager->getConnection("DARKEDEN")->createStatement();		pStmt->executeQuery("UPDATE Ousters SET %s WHERE Name='%s'", field.c_str(), m_Name.c_str());		SAFE_DELETE(pStmt);	} 	END_DB(pStmt)    __END_CATCH}////////////////////////////////////////////////////////////////////////////////// 荤侩茄 skill bonus 器牢飘甫 府畔茄促.////////////////////////////////////////////////////////////////////////////////SkillBonus_t Ousters::getSumOfUsedSkillBonus() const	throw(){	__BEGIN_TRY	return 0;	__END_CATCH}////////////////////////////////////////////////////////////////////////////////////// 胶懦 包访 窃荐////////////////////////////////////////////////////////////////////////////////////// 漂沥 Skill阑 府畔茄促.OustersSkillSlot* Ousters::getSkill (SkillType_t SkillType) const 	throw(){	__BEGIN_TRY	hash_map<SkillType_t, OustersSkillSlot*>::const_iterator itr = m_SkillSlot.find(SkillType);	if (itr != m_SkillSlot.end())	{		return itr->second;	}	return NULL;	__END_CATCH}// 漂沥 Skill阑 add 茄促void Ousters::addSkill(SkillType_t SkillType)	throw(){	__BEGIN_TRY	switch (SkillType)	{		case SKILL_UN_BURROW:		case SKILL_UN_TRANSFORM:		case SKILL_UN_INVISIBILITY:		case SKILL_THROW_HOLY_WATER:		case SKILL_EAT_CORPSE:		case SKILL_HOWL:			filelog("OustersError.log", "SkillType[%d], %s", SkillType, toString().c_str());			Assert(false);			break;		default:			break;	}	hash_map<SkillType_t, OustersSkillSlot*>::iterator itr = m_SkillSlot.find(SkillType);	if (itr == m_SkillSlot.end())	{		SkillInfo* pSkillInfo = g_pSkillInfoManager->getSkillInfo(SkillType);		Turn_t Delay = pSkillInfo->getMaxDelay();		OustersSkillSlot* pOustersSkillSlot = new OustersSkillSlot;		pOustersSkillSlot->setName(m_Name);		pOustersSkillSlot->setSkillType(SkillType);		pOustersSkillSlot->setInterval(Delay);		pOustersSkillSlot->setRunTime();		pOustersSkillSlot->setExpLevel(1);		pOustersSkillSlot->create(m_Name);		m_SkillSlot[SkillType] = pOustersSkillSlot;	}	__END_CATCH}// 漂沥 SkillSlot阑 磊悼栏肺 后 浇儿阑 茫酒 持绰促.void Ousters::addSkill(OustersSkillSlot* pOustersSkillSlot)	throw(){	__BEGIN_TRY	SkillType_t SkillType = pOustersSkillSlot->getSkillType();	switch (SkillType)	{		case SKILL_UN_BURROW:		case SKILL_UN_TRANSFORM:		case SKILL_UN_INVISIBILITY:		case SKILL_THROW_HOLY_WATER:		case SKILL_EAT_CORPSE:		case SKILL_HOWL:			filelog("OustersError.log", "SkillType[%d], %s", SkillType, toString().c_str());			Assert(false);			break;		default:			break;	}	hash_map<SkillType_t, OustersSkillSlot*>::iterator itr = m_SkillSlot.find(pOustersSkillSlot->getSkillType());		if (itr == m_SkillSlot.end())	{		m_SkillSlot[pOustersSkillSlot->getSkillType()] = pOustersSkillSlot;	}	// 2002.1.16 by sigi	else	{		delete pOustersSkillSlot;	}	__END_CATCH}////////////////////////////////////////////////////////////////////////////////////// 酒捞袍 馒/呕 包访 窃荐//////////////////////////////////////////////////////////////////////////////////////----------------------------------------------------------------------//// Ousters::WearItem()//// Item阑 厘馒芒俊 厘馒矫虐绊 瓷仿摹甫 拌魂茄促.////----------------------------------------------------------------------void Ousters::wearItem(WearPart Part, Item* pItem)	throw(){	__BEGIN_TRY	Assert(pItem != NULL);	Item* pPrevItem = NULL;	Item* pLeft = NULL;	Item* pRight = NULL;	// 剧颊 公扁老 版快俊绰 剧颊 厘馒芒俊促 窍唱狼 酒捞袍 器牢磐甫 且寸...	if (isTwohandWeapon(pItem))	{		// 剧颊俊 酒捞袍阑 甸绊 乐阑 版快		if (isWear(WEAR_RIGHTHAND) && isWear(WEAR_LEFTHAND))		{			pLeft  = getWearItem(WEAR_RIGHTHAND);			pRight = getWearItem(WEAR_LEFTHAND);						// 剧颊 公扁甫 甸绊 乐阑 版快			if (pLeft == pRight)			{				// 夸备茄 酒捞袍阑 厘馒 器牢飘俊 持绊,				m_pWearItem[WEAR_RIGHTHAND] = pItem;				m_pWearItem[WEAR_LEFTHAND]  = pItem;				// by sigi. 2002.5.15				char pField[80];				sprintf(pField, "Storage=%d, X=%d", STORAGE_GEAR, Part);				pItem->tinysave(pField);				// 盔贰 乐带 酒捞袍阑 付快胶 器牢磐俊 崔酒 霖促.				addItemToExtraInventorySlot(pLeft);				sprintf(pField, "Storage=%d", STORAGE_EXTRASLOT);				pLeft->tinysave(pField);			}			// 成成			else			{				// 剧颊俊 八苞 规菩甫 甸绊 乐菌绰单...剧颊 公扁甫 甸妨绊 窍搁,				// 八篮 付快胶 器牢磐俊 崔酒临 荐 乐瘤父, 规菩绰 绢痘霸 且 荐啊 绝促.				// 牢亥配府俊 持绢拎具 且 刨单, 瘤陛 寸厘篮 绢痘霸 且 瘤甫 葛福摆匙...				// 傲 涝阑 荐 绝促绰 菩哦阑 焊郴林磊...				//cerr << "剧颊俊 漠苞 规菩甫 甸绊 乐绢辑, 剧颊 公扁甫 厘馒且 荐 绝嚼聪促." << endl;				return;			}		}		// 剧颊俊 酒捞袍阑 甸绊 乐瘤 臼阑 版快		else 		{			char pField[80];			// 坷弗率俊 酒捞袍阑 甸绊 乐阑 版快			if (isWear(WEAR_RIGHTHAND))			{				pRight = getWearItem(WEAR_RIGHTHAND);				// 夸备茄 酒捞袍阑 厘馒 器牢飘俊 持绰促.				m_pWearItem[WEAR_RIGHTHAND] = pItem;				m_pWearItem[WEAR_LEFTHAND]  = pItem;				// by sigi. 2002.5.15				sprintf(pField, "Storage=%d, X=%d", STORAGE_GEAR, Part);				pItem->tinysave(pField);				// 盔贰 乐带 酒捞袍阑 付快胶 器牢磐俊 崔酒 霖促.				addItemToExtraInventorySlot(pRight);				sprintf(pField, "Storage=%d", STORAGE_EXTRASLOT);				pRight->tinysave(pField);			}			// 哭率俊 酒捞袍阑 甸绊 乐阑 版快			else if (isWear(WEAR_LEFTHAND))			{				pLeft = getWearItem(WEAR_LEFTHAND);				// 夸备茄 酒捞袍阑 厘馒 器牢飘俊 持绰促.				m_pWearItem[WEAR_RIGHTHAND] = pItem;				m_pWearItem[WEAR_LEFTHAND]  = pItem;				// by sigi. 2002.5.15				sprintf(pField, "Storage=%d, X=%d", STORAGE_GEAR, Part);				pItem->tinysave(pField);				// 盔贰 乐带 酒捞袍阑 付快胶 器牢磐俊 崔酒 霖促.				addItemToExtraInventorySlot(pLeft);				sprintf(pField, "Storage=%d", STORAGE_EXTRASLOT);				pLeft->tinysave(pField);			}			// 酒公率档 酒捞袍阑 甸绊 乐瘤 臼阑 版快			else			{				// 夸备茄 酒捞袍阑 厘馒 器牢飘俊 持绰促.				m_pWearItem[WEAR_RIGHTHAND] = pItem;				m_pWearItem[WEAR_LEFTHAND]  = pItem;				// by sigi. 2002.5.15				sprintf(pField, "Storage=%d, X=%d", STORAGE_GEAR, Part);				pItem->tinysave(pField);			}		}	}	else 	{		if (isWear(Part))		{			pPrevItem = getWearItem(Part);			m_pWearItem[Part] = pItem;			// by sigi. 2002.5.15			char pField[80];			sprintf(pField, "Storage=%d, X=%d", STORAGE_GEAR, Part);			pItem->tinysave(pField);			addItemToExtraInventorySlot(pPrevItem);			sprintf(pField, "Storage=%d", STORAGE_EXTRASLOT);			pPrevItem->tinysave(pField);		}		else		{			// 夸备茄 酒捞袍阑 厘馒 器牢飘俊 持绰促.			m_pWearItem[Part] = pItem;			// by sigi. 2002.5.15			char pField[80];			sprintf(pField, "Storage=%d, X=%d", STORAGE_GEAR, Part);			pItem->tinysave(pField);		}	}	// 渴捞扼搁 渴俊 蝶弗 祸彬阑 沥秦霖促.	// 唱吝俊扼档 渴 鸥涝捞 咯矾 啊瘤啊 瞪 荐 乐栏府扼 积阿窍绰单,	// 泅犁肺辑绰 渴 鸥涝捞 窍唱捞骨肺, 祸彬父 技泼秦霖促.	switch ( pItem->getItemClass() )	{		case Item::ITEM_CLASS_OUSTERS_COAT:			// item type阑 汲沥秦霖促. 			m_OustersInfo.setCoatType( getOustersCoatType( pItem->getItemType() ) );			m_OustersInfo.setCoatColor( getItemShapeColor( pItem ) );			break;		case Item::ITEM_CLASS_OUSTERS_CHAKRAM:			m_OustersInfo.setArmType( OUSTERS_ARM_CHAKRAM );			m_OustersInfo.setArmColor( getItemShapeColor( pItem ) );			break;		case Item::ITEM_CLASS_OUSTERS_WRISTLET:			m_OustersInfo.setArmType( OUSTERS_ARM_GAUNTLET );			m_OustersInfo.setArmColor( getItemShapeColor( pItem ) );			break;		case Item::ITEM_CLASS_OUSTERS_BOOTS:			m_OustersInfo.setBootsColor( getItemShapeColor( pItem ) );			break;		default:			break;	}	__END_CATCH}//----------------------------------------------------------------------// Ousters::WearItem()// Item阑 厘馒芒俊 厘馒矫虐绊 瓷仿摹甫 拌魂茄促.//----------------------------------------------------------------------void Ousters::wearItem(WearPart Part)	throw(){	__BEGIN_TRY	// 厘馒 霖厚吝牢 酒捞袍阑 罐酒柯促.	Item* pItem = getExtraInventorySlotItem();	Assert(pItem != NULL);	Item* pPrevItem = NULL;	Item* pLeft = NULL;	Item* pRight = NULL;	// 刚历 渴阑 涝洒芭唱, 哈扁扁 傈俊 泅犁狼 瓷仿摹甫 滚欺俊促 历厘秦 敌促.	// 捞绰 唱吝俊 函茄 瓷仿摹父阑 傈价窍扁 困茄 巴捞促.	OUSTERS_RECORD prev;	getOustersRecord(prev);	char pField[80];	// 剧颊 公扁老 版快俊绰 剧颊 厘馒芒俊促 窍唱狼 酒捞袍 器牢磐甫 且寸...	if (isTwohandWeapon(pItem))	{		// 剧颊俊 酒捞袍阑 甸绊 乐阑 版快		if (isWear(WEAR_RIGHTHAND) && isWear(WEAR_LEFTHAND))		{			pLeft  = getWearItem(WEAR_RIGHTHAND);			pRight = getWearItem(WEAR_LEFTHAND);						// 剧颊 公扁甫 甸绊 乐阑 版快			if (pLeft == pRight)			{				takeOffItem(WEAR_LEFTHAND, false, false);				// 夸备茄 酒捞袍阑 厘馒 器牢飘俊 持绊,				m_pWearItem[WEAR_RIGHTHAND] = pItem;				m_pWearItem[WEAR_LEFTHAND]  = pItem;				// by sigi. 2002.5.15				sprintf(pField, "Storage=%d, X=%d", STORAGE_GEAR, Part);				pItem->tinysave(pField);				// 夸备茄 酒捞袍阑 付快胶 器牢磐俊辑 力芭茄促.				deleteItemFromExtraInventorySlot();				// 盔贰 乐带 酒捞袍阑 付快胶 器牢磐俊 崔酒 霖促.				addItemToExtraInventorySlot(pLeft);				sprintf(pField, "Storage=%d", STORAGE_EXTRASLOT);				pLeft->tinysave(pField);			}			// 八苞 规菩甫 甸绊 乐阑 版快			else			{				// 剧颊俊 八苞 规菩甫 甸绊 乐菌绰单...剧颊 公扁甫 甸妨绊 窍搁,				// 八篮 付快胶 器牢磐俊 崔酒临 荐 乐瘤父, 规菩绰 绢痘霸 且 荐啊 绝促.				// 牢亥配府俊 持绢拎具 且 刨单, 瘤陛 寸厘篮 绢痘霸 且 瘤甫 葛福摆匙...				// 傲 涝阑 荐 绝促绰 菩哦阑 焊郴林磊...				return;			}		}		// 剧颊俊 酒捞袍阑 甸绊 乐瘤 臼阑 版快		else 		{			// by sigi. 2002.5.15			// 坷弗率俊 酒捞袍阑 甸绊 乐阑 版快			if (isWear(WEAR_RIGHTHAND))			{				pRight = getWearItem(WEAR_RIGHTHAND);				takeOffItem(WEAR_RIGHTHAND, false, false);				// 夸备茄 酒捞袍阑 厘馒 器牢飘俊 持绰促.				m_pWearItem[WEAR_RIGHTHAND] = pItem;				m_pWearItem[WEAR_LEFTHAND]  = pItem;				// by sigi. 2002.5.15				sprintf(pField, "Storage=%d, X=%d", STORAGE_GEAR, Part);				pItem->tinysave(pField);				// 夸备茄 酒捞袍阑 付快胶 器牢磐俊辑 力芭茄促.				deleteItemFromExtraInventorySlot();				// 盔贰 乐带 酒捞袍阑 付快胶 器牢磐俊 崔酒 霖促.				addItemToExtraInventorySlot(pRight);				sprintf(pField, "Storage=%d", STORAGE_EXTRASLOT);				pRight->tinysave(pField);							}			// 哭率俊 酒捞袍阑 甸绊 乐阑 版快			else if (isWear(WEAR_LEFTHAND))			{				pLeft = getWearItem(WEAR_LEFTHAND);								takeOffItem(WEAR_LEFTHAND, false, false);				// 夸备茄 酒捞袍阑 厘馒 器牢飘俊 持绰促.				m_pWearItem[WEAR_RIGHTHAND] = pItem;				m_pWearItem[WEAR_LEFTHAND]  = pItem;								// by sigi. 2002.5.15				sprintf(pField, "Storage=%d, X=%d", STORAGE_GEAR, Part);				pItem->tinysave(pField);				// 夸备茄 酒捞袍阑 付快胶 器牢磐俊辑 力芭茄促.				deleteItemFromExtraInventorySlot();				// 盔贰 乐带 酒捞袍阑 付快胶 器牢磐俊 崔酒 霖促.				addItemToExtraInventorySlot(pLeft);				sprintf(pField, "Storage=%d", STORAGE_EXTRASLOT);				pLeft->tinysave(pField);			}			// 酒公率档 酒捞袍阑 甸绊 乐瘤 臼阑 版快			else			{				// 夸备茄 酒捞袍阑 厘馒 器牢飘俊 持绰促.				m_pWearItem[WEAR_RIGHTHAND] = pItem;				m_pWearItem[WEAR_LEFTHAND]  = pItem;				pItem->save(m_Name, STORAGE_GEAR, 0, Part, 0);				// 夸备茄 酒捞袍阑 付快胶 器牢磐俊辑 力芭茄促.				deleteItemFromExtraInventorySlot();			}		}	}	else	{		if (isWear(Part))		{			pPrevItem = getWearItem(Part);			takeOffItem(Part, false, false);			m_pWearItem[Part] = pItem;			// by sigi. 2002.5.15			sprintf(pField, "Storage=%d, X=%d", STORAGE_GEAR, Part);			pItem->tinysave(pField);			deleteItemFromExtraInventorySlot();			addItemToExtraInventorySlot(pPrevItem);			sprintf(pField, "Storage=%d", STORAGE_EXTRASLOT);			pPrevItem->tinysave(pField);		}		else		{			m_pWearItem[Part] = pItem;			deleteItemFromExtraInventorySlot();			// by sigi. 2002.5.15			sprintf(pField, "Storage=%d, X=%d", STORAGE_GEAR, Part);			pItem->tinysave(pField);		}	}	initAllStat();	sendRealWearingInfo();	sendModifyInfo(prev);

⌨️ 快捷键说明

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