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

📄 optioninfo.cpp

📁 天之炼狱1服务器端源文件游戏服务端不完整
💻 CPP
📖 第 1 页 / 共 3 页
字号:
//////////////////////////////////////////////////////////////////////////////// Filename    : OptionInfo.cpp// Written By  : 辫己刮// Description ://////////////////////////////////////////////////////////////////////////////#include "OptionInfo.h"#include "Assert.h"#include "DB.h"#include "StringStream.h"#include <algo.h>#include "Slayer.h"#include "Vampire.h"#include "Ousters.h"//////////////////////////////////////////////////////////////////////////////// global varible initialization//////////////////////////////////////////////////////////////////////////////OptionInfoManager* g_pOptionInfoManager = NULL;// itemClass俊 optionType捞 嘿阑 荐 乐绰啊?boolisPossibleOptionClass(Item::ItemClass itemClass, OptionClass optionClass){	switch (itemClass)	{		// WEAPON		case Item::ITEM_CLASS_BLADE:		case Item::ITEM_CLASS_SWORD:		case Item::ITEM_CLASS_SG:		case Item::ITEM_CLASS_SMG:		case Item::ITEM_CLASS_AR:		case Item::ITEM_CLASS_SR:		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:			switch (optionClass)			{				case OPTION_STR :				case OPTION_DEX :				case OPTION_INT :				case OPTION_HP :				case OPTION_MP :				case OPTION_HP_STEAL :				case OPTION_MP_STEAL :				case OPTION_TOHIT :				case OPTION_DAMAGE :				case OPTION_DURABILITY :				case OPTION_ATTACK_SPEED :				case OPTION_LUCK :				case OPTION_ALL_ATTR :					return true;				default :					return false;			}		break;		// ARMOR		case Item::ITEM_CLASS_HELM:		case Item::ITEM_CLASS_COAT:		case Item::ITEM_CLASS_TROUSER:		case Item::ITEM_CLASS_SHOES:		case Item::ITEM_CLASS_GLOVE:		case Item::ITEM_CLASS_BELT:		case Item::ITEM_CLASS_SHIELD:		case Item::ITEM_CLASS_VAMPIRE_COAT:		case Item::ITEM_CLASS_OUSTERS_COAT:		case Item::ITEM_CLASS_OUSTERS_BOOTS:		case Item::ITEM_CLASS_OUSTERS_CIRCLET:		case Item::ITEM_CLASS_OUSTERS_ARMSBAND:			switch (optionClass)			{				case OPTION_STR :				case OPTION_DEX :				case OPTION_INT :				case OPTION_HP :				case OPTION_MP :				case OPTION_DEFENSE :				case OPTION_PROTECTION :				case OPTION_DURABILITY :				case OPTION_LUCK :				case OPTION_ALL_ATTR :					return true;				break;				default :					return false;			}		break;		// ACCESSORY		case Item::ITEM_CLASS_RING:		case Item::ITEM_CLASS_BRACELET:		case Item::ITEM_CLASS_NECKLACE:		case Item::ITEM_CLASS_VAMPIRE_RING:		case Item::ITEM_CLASS_VAMPIRE_EARRING:		case Item::ITEM_CLASS_VAMPIRE_BRACELET:		case Item::ITEM_CLASS_VAMPIRE_NECKLACE:		case Item::ITEM_CLASS_OUSTERS_PENDENT:		case Item::ITEM_CLASS_OUSTERS_RING:			switch (optionClass)			{				case OPTION_STR :				case OPTION_DEX :				case OPTION_INT :				case OPTION_HP :				case OPTION_MP :				case OPTION_HP_STEAL :				case OPTION_MP_STEAL :				case OPTION_HP_REGEN :				case OPTION_MP_REGEN :				case OPTION_TOHIT :				case OPTION_DAMAGE :				case OPTION_DEFENSE :				case OPTION_PROTECTION :				case OPTION_DURABILITY :				case OPTION_POISON :				case OPTION_ACID :				case OPTION_CURSE :				case OPTION_BLOOD :				case OPTION_VISION :				case OPTION_ATTACK_SPEED :				case OPTION_LUCK :				case OPTION_ALL_RES :				case OPTION_ALL_ATTR :					return true;				break;				default :					return false;			}			break;		case Item::ITEM_CLASS_VAMPIRE_AMULET:			switch (optionClass)			{				case OPTION_STR :				case OPTION_DEX :				case OPTION_INT :				case OPTION_HP :				case OPTION_MP :				case OPTION_HP_STEAL :				case OPTION_MP_STEAL :				case OPTION_HP_REGEN :				case OPTION_MP_REGEN :				case OPTION_TOHIT :				case OPTION_DAMAGE :				case OPTION_DURABILITY :				case OPTION_POISON :				case OPTION_ACID :				case OPTION_CURSE :				case OPTION_BLOOD :				case OPTION_VISION :				case OPTION_ATTACK_SPEED :				case OPTION_LUCK :				case OPTION_ALL_RES :				case OPTION_ALL_ATTR :					return true;				break;				default :					return false;			}			break;						/* 火 -.-;		case Item::ITEM_CLASS_BLOOD_BIBLE :			switch (optionClass)			{				case OPTION_STR :				case OPTION_DEX :				case OPTION_INT :				case OPTION_HP :				case OPTION_LUCK :				case OPTION_ALL_RES :				case OPTION_ALL_ATTR :				case OPTION_VISION :				case OPTION_CONSUME_MP :				case OPTION_TRANS :				case OPTION_MAGIC_DAMAGE :				case OPTION_MELEE_DAMAGE :				case OPTION_GAMBLE_PRICE :				case OPTION_POTION_PRICE :					return true;				break;				default :					return false;			}			break;		*/		default:			break;	}	return false;}/*bool OptionClassInfo::ApplyOption( PlayerCreature* pPC, int PlusPoint ){	if ( pPC == NULL ) return false;	if ( pPC->isSlayer() )	{		Slayer* pSlayer = dynamic_cast<Slayer*>(pPC);		return ApplyOption( pSlayer, PlusPoint );	}	else if ( pPC->isVampire() )	{		Vampire* pVampire = dynamic_cast<Vampire*>(pPC);		return ApplyOption( pVampire, PlusPoint );	}	else if ( pPC->isOusters() )	{		Ousters* pOusters = dynamic_cast<Ousters*>(pPC);		return ApplyOption( pOusters, PlusPoint );	}}bool OptionClassInfo::ApplyOption( Slayer* pSlayer, int PlusPoint ){	if ( pSlayer == NULL ) return false;}bool OptionClassInfo::ApplyOption( Vampire* pVampire, int PlusPoint ){	if ( pVampire == NULL ) return false;}bool OptionClassInfo::ApplyOption( Ousters* pOusters, int PlusPoint ){	if ( pOusters == NULL ) return false;}*///////////////////////////////////////////////////////////////////////////////// class OptionInfo member methods//////////////////////////////////////////////////////////////////////////////OptionInfo::OptionInfo()	throw(){	__BEGIN_TRY	m_OptionType      = 0;	m_Name            = "";	m_HName           = "";	m_Nickname        = "";	m_OptionClass     = OPTION_MAX;	m_PlusPoint       = 0;	m_PriceMultiplier = 0;	m_ReqSTR          = 0;	m_ReqDEX          = 0;	m_ReqINT          = 0;	m_ReqSum          = 0;	m_ReqLevel        = 0;	m_Level           = 0;	m_Color           = 0;	m_Ratio           = 0;	m_GambleLevel     = 0;	// 促澜 窜拌狼 option栏肺 upgrade且锭 鞘夸茄 沥焊	m_PreviousOptionType   = 0;	m_UpgradeOptionType    = 0;	m_UpgradeRatio         = 0;	m_UpgradeSecondRatio         = 0;	m_UpgradeCrashPercent  = 0;	m_NextOptionRatio      = 0;	__END_CATCH}OptionInfo::~OptionInfo()	throw(){	__BEGIN_TRY	__END_CATCH}void OptionInfo::setReqAbility(const string& req) 	throw(){	__BEGIN_TRY	uint a = 0, b = 0, c = 0;	do	{		//////////////////////////////////////////////		// (DEX,40) (INT,40)		// a   b  c a		//////////////////////////////////////////////		a = req.find_first_of('(', c);		b = req.find_first_of(',', a+1);		c = req.find_first_of(')', b+1);		if (a > b || b > c) break;		Assert(a+1<b && b+1<c);		string identifier =              req.substr(a+1, b-a-1);		Attr_t reqAbility = (Attr_t)atoi(req.substr(b+1, c-b-1).c_str());		if (identifier == "STR")      { setReqSTR(reqAbility);    }		else if (identifier == "DEX") { setReqDEX(reqAbility);    }		else if (identifier == "INT") { setReqINT(reqAbility);    }		else if (identifier == "LEV") { setReqLevel(reqAbility);  }		else if (identifier == "SUM") { setReqSum(reqAbility);    }		else if (identifier != "")		{			//cerr << "OptionInfo::setReqAbility() : Unknown ability type [" << identifier << "]" << endl;			throw ("OptionInfo::setReqAbility() : Unknown ability type");		}	} while (c < req.size() -1);	__END_CATCH}// 促澜 窜拌狼 可记栏肺 upgrade啊 己傍沁唱?bool OptionInfo::isUpgradeSucceed() const{	// 0捞 酒聪绊	// 犬伏父怒 rand()沁阑锭 漂沥茄 茄 蔼(0)捞 唱坷绰 版快啊 己傍捞促.	//return m_UpgradeRatio!=0 && (rand()%m_UpgradeRatio==0);	// 弊繁单.. 扁裙捞 归盒啦肺 唱吭促. -_-;	return (rand()%100 < (int)m_UpgradeRatio);}// 促澜 窜拌狼 可记栏肺 upgrade啊 己傍沁唱?bool OptionInfo::isUpgradeSecondSucceed() const{	// 0捞 酒聪绊	// 犬伏父怒 rand()沁阑锭 漂沥茄 茄 蔼(0)捞 唱坷绰 版快啊 己傍捞促.	//return m_UpgradeRatio!=0 && (rand()%m_UpgradeRatio==0);	// 弊繁单.. 扁裙捞 归盒啦肺 唱吭促. -_-;	return (rand()%100 < (int)m_UpgradeSecondRatio);}// 促澜 窜拌狼 可记栏肺 upgrade 窍促啊 角菩秦辑 item捞 何辑脸唱?bool OptionInfo::isUpgradeCrash() const{	return (rand()%100 < m_UpgradeCrashPercent);}string OptionInfo::toString() const	throw(){	__BEGIN_TRY		StringStream msg;	msg << "OptionInfo ("		<< "Type:"            << (int)m_OptionType		<< "Name:"            << m_Name		<< "HName:"           << m_HName		<< "Nickname:"        << m_Nickname		<< "Class:"           << (int)m_OptionClass		<< "PlusPoint:"       << (int)m_PlusPoint		<< "PriceMultiplier:" << (int)m_PriceMultiplier		<< "ReqSTR:"          << (int)m_ReqSTR		<< "ReqDEX:"          << (int)m_ReqDEX		<< "ReqINT:"          << (int)m_ReqINT		<< "ReqSum:"          << (int)m_ReqSum		<< "ReqLevel:"        << (int)m_ReqLevel		<< "Level:"           << (int)m_Level		<< "GambleLevel:"     << (int)m_GambleLevel		<< "Color:"           << (int)m_Color		<< "Ratio:"           << (int)m_Ratio		<< "PreviousOptionType:"  << (int)m_PreviousOptionType		<< "UpgradeOptionType:"   << (int)m_UpgradeOptionType		<< "UpgradeRatio:"        << (int)m_UpgradeRatio

⌨️ 快捷键说明

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