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

📄 charlist.h

📁 国内著名网络游戏dragon的服务端完整源码 内附完整数据库结构
💻 H
📖 第 1 页 / 共 2 页
字号:
			return __max(nTime, 300);
		}
    case PRIEST_SPELL: 
		{ // 己流磊牢 版快
			const int nTime = nReady*(1000 - GetAbility(WIS))/1500 + (nReady>>1);
			return __max(nTime, 600);
		}
	}
	
	return 2000;
}

template<class T1, class T2, class T3> 
int TCharList<T1, T2, T3>::CalcMagicPeriod(BYTE nType, int nContinue)
{	// 付过 蜡瘤矫埃 拌魂
	if (IsNpc())
	{
		return nContinue + rand()%5;
	}
	
	int nItem = 0;
	
	switch (Spell)
	{
    case WIZARD_SPELL: 
		{	// 付过荤扼搁
			switch (nType/10)
			{
			case MT_PROTECTION: 
				{
					nItem += RareEM.GetStaticRareMagic_stay(StaticRare)/3; 
					nItem += RareEM.GetDynamicRareValue(FITEM_SPELL_TIME_UP, DynamicRare)/3;
					break;
				}
			case MT_ASSISTANCE: 
				{
					nItem += RareEM.GetStaticRareMagic_stay(StaticRare)/2; 
					nItem += RareEM.GetDynamicRareValue(FITEM_SPELL_TIME_UP, DynamicRare)/2;
					break;
				}
			case MT_CURSE: 
				{
					nItem += RareEM.GetStaticRareMagic_stay(StaticRare)/4; 
					nItem += RareEM.GetDynamicRareValue(FITEM_SPELL_TIME_UP, DynamicRare)/4;
					break;
				}
			}
			
			break;
		}
    case PRIEST_SPELL: 
		{	// 己流磊扼搁
			switch (nType/10)
			{
			case MT_PROTECTION: 
				{
					nItem += RareEM.GetStaticRareNature_stay(StaticRare)/3; 
					nItem += RareEM.GetDynamicRareValue(FITEM_SPELL_TIME_UP, DynamicRare)/3;
					break;
				}
			case MT_ASSISTANCE: 
				{
					nItem += RareEM.GetStaticRareNature_stay(StaticRare)/2; 
					nItem += RareEM.GetDynamicRareValue(FITEM_SPELL_TIME_UP, DynamicRare)/2;
					break;
				}
			case MT_CURSE: 
				{
					nItem += RareEM.GetStaticRareNature_stay(StaticRare)/4; 
					nItem += RareEM.GetDynamicRareValue(FITEM_SPELL_TIME_UP, DynamicRare)/4;
					break;
				}
			}
			
			break;
		}
	}
	
	const int nInt = GetAbility(INT_);
	const int nWis = GetAbility(WIS);
	const int nWsPs = GetAbility(WSPS);
	const int nBase = nContinue*(nInt + nWis + nWsPs)/1000 + (nContinue>>1);
	const int nSum = 100 + nItem; // 焊沥蔼甸狼 钦(窜困 %)
	// 饭绢 酒捞袍俊 狼茄 矫埃 刘啊
	int nAdd = 0;
	
	switch (nType/10)
	{
    case MT_PROTECTION: 
		{
			nAdd = RareEM.GetStaticRareMasking(StaticRare); 
			break;
		}
    case MT_ASSISTANCE: 
		{
			nAdd = RareEM.GetStaticRareAid(StaticRare);     
			break;
		}
    case MT_CURSE: 
		{
			nAdd = RareEM.GetStaticRareCurse(StaticRare);   
			break;
		}
	}
	
	return nBase*nSum/100 + nAdd;
}

template<class T1, class T2, class T3> 
int TCharList<T1, T2, T3>::CalcResistPeriod(BYTE nType, int nContinue)
{	// 历亲仿俊 蝶弗 蜡瘤矫埃 拌魂
	int nResist = RareEM.GetDynamicRareValue(FITEM_RESIST_UP, DynamicRare);
	
	switch (nType)
	{
    case RESIST_POISON: // 刀拌凯 历林付过俊 措茄 历亲仿 
		{ 
			nResist += GetExtPoison();
			return (__min(nResist, 235)*nContinue)/250;
		}
    case RESIST_CURSE:  // 付厚拌凯 历林付过俊 措茄 历亲仿
		{ 
			nResist += GetExtCurse();
			return (__min(nResist, 235)*nContinue)/250;
		}
	}
	
	return 0;
}

template<class T1, class T2, class T3> 
int TCharList<T1, T2, T3>::CalcMovePower()
{	// 捞悼仿 拌魂
	if (dwDontMove > 0)       return 0;  // 捞悼阂啊 惑怕牢 版快
	if (nCurrentAction == 1)  return 0;  // 旧酒 乐绰 版快
	// 必厩 NK牢 版快 贸府
	const int nNation = MapInfo[MapNumber].nation;
	if (GetNK(nNation) >= 100)  return 10;
	if (GetNK(nNation) >= 10)   return 25;
	// 捞悼 加档 备窍扁
	int nMove = GetMovePower(HorseNo), nPlus = 0, nMinus = 0;
	// 富阑 鸥绊 乐绰瘤 咯何
	const bool bHorse = (HorseNo <= 0) ? false:true;
	// 富阑 藕 版快绰 捞悼摹俊 包茄 傈捧胶懦, 付过 公矫
	if (!bHorse)
	{	//< CSD-020710
		switch (GetPassiveCombat())
		{
		case GUST: nPlus = GetCombatValue(GUST); break;
		}
		
		CorrectMovePlus(nMove, nPlus);
		// 饭绢俊 措茄 焊沥
		nMove += (RareEM.GetStaticRareSpeed(StaticRare)>>1);
		nMove += RareEM.GetDynamicRareValue(FITEM_SPEED_UP, DynamicRare);
	}	//> CSD-020710
	
	if (IsFreeze())
	{	//< CSD-021024 : 倔覆 惑怕牢 版快扼搁
		nMinus = 50;
	}	//> CSD-021024
	
	CorrectMoveMinus(nMove, nMinus);
	// 硅绊悄 荐摹啊 0芭唱 蜡飞牢 版快  框流烙篮 1/2肺 临绢惦
	return (IsHungry()) ? (nMove>>1):nMove;
}

template<class T1, class T2, class T3> 
bool TCharList<T1, T2, T3>::IsStrikePiercing() const 
{	//< CSD-021024
	if (IsNpc())
	{
		return (rand()%101 <= GetNpcStrikePiercing()) ? true:false; 
	}
	
	return false;
}	//> CSD-021024

template<class T1, class T2, class T3> 
bool TCharList<T1, T2, T3>::IsMagicPiercing() const
{	//< CSD-021024
	if (IsNpc())
	{
		return (rand()%101 <= GetNpcMagicPiercing()) ? true:false; 
	}
	
	return false;
}	//> CSD-021024

template<class T1, class T2, class T3> 
bool TCharList<T1, T2, T3>::IsCurseAvoid(BYTE nType) const
{	//< CSD-021024
	if (IsNpc())
	{
		switch (nType)
		{
		case 41: return (rand()%101 <= GetNpcStunAvoid()) ? true:false; 
		case 42: return (rand()%101 <= GetNpcSlowAvoid()) ? true:false; 
		case 43: return (rand()%101 <= GetNpcPoisonAvoid()) ? true:false; 
		case 44: return (rand()%101 <= GetNpcBlindAvoid()) ? true:false;
		case 45: return (rand()%101 <= GetNpcDrainAvoid()) ? true:false;
		case 46: return (rand()%101 <= GetNpcFreezeAvoid()) ? true:false;
		}
	}
	
	return false;
}	//> CSD-021024

///////////////////////////////////////////////////////////////////////////////
// Protected Method
///////////////////////////////////////////////////////////////////////////////
template<class T1, class T2, class T3> 
int TCharList<T1, T2, T3>::GetExtPoison() const
{
	return GetBasicResist(RT_POISON) + GetExtPoisonByItem();
}

template<class T1, class T2, class T3> 
int TCharList<T1, T2, T3>::GetExtCurse() const
{
	return GetBasicResist(RT_CURSE) + GetExtCurseByItem();
}

template<class T1, class T2, class T3>
int TCharList<T1, T2, T3>::GetExtHoly() const
{
	return GetBasicResist(RT_HOLY) + GetExtHolyByItem();
}

template<class T1, class T2, class T3> 
int TCharList<T1, T2, T3>::GetExtFire() const
{
	return GetBasicResist(RT_FIRE) + GetExtFireByItem();
}

template<class T1, class T2, class T3> 
int TCharList<T1, T2, T3>::GetExtIce() const
{
	return GetBasicResist(RT_ICE) + GetExtIceByItem();
}

template<class T1, class T2, class T3> 
int TCharList<T1, T2, T3>::GetExtElect() const
{
	return GetBasicResist(RT_ELECT) + GetExtElectByItem();
}

template<class T1, class T2, class T3> 
int TCharList<T1, T2, T3>::GetExtPoisonByItem() const
{
	return GetExtResist(RT_POISON)  + RareEM.GetStaticRareResist_venom(StaticRare);
}

template<class T1, class T2, class T3> 
int TCharList<T1, T2, T3>::GetExtCurseByItem() const//030227 lsw
{
	return GetExtResist(RT_CURSE)+ RareEM.GetStaticRareResist_paralysis(StaticRare);
}

template<class T1, class T2, class T3> 
int TCharList<T1, T2, T3>::GetExtHolyByItem() const
{
	return GetExtResist(RT_HOLY) + RareEM.GetStaticRareResist_holy(StaticRare);
}

template<class T1, class T2, class T3> 
int TCharList<T1, T2, T3>::GetExtFireByItem() const
{
	return GetExtResist(RT_FIRE) + RareEM.GetStaticRareResist_blaze(StaticRare);
}

template<class T1, class T2, class T3> 
int TCharList<T1, T2, T3>::GetExtIceByItem() const
{
	return	 GetExtResist(RT_ICE) + RareEM.GetStaticRareResist_freeze(StaticRare);
}

template<class T1, class T2, class T3> 
int TCharList<T1, T2, T3>::GetExtElectByItem() const
{
	return GetExtResist(RT_ELECT) + RareEM.GetStaticRareResist_lightning(StaticRare);
}

///////////////////////////////////////////////////////////////////////////////
//
typedef TCharList<CCharInfo, CMagicState, CResistState> CHARLIST;
typedef TCharList<CCharInfo, CMagicState, CResistState>* LPCHARLIST;
//
///////////////////////////////////////////////////////////////////////////////
#endif


⌨️ 快捷键说明

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