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

📄 initallstat.cpp

📁 天之炼狱1服务器端源文件游戏服务端不完整
💻 CPP
📖 第 1 页 / 共 5 页
字号:
		{			m_Defense[ATTR_CURRENT] = m_Defense[ATTR_CURRENT] + pHolyArmor->getDefBonus();		}	}	// 菩矫宏 扁贱俊 狼秦 棵扼啊绰 瓷仿摹甫 拌魂茄促.	if (pWeapon != NULL)	{		Item::ItemClass IClass = pWeapon->getItemClass();		int DamageBonus = 0;		int ToHitBonus = 0;		int CriticalRatioBonus = 0;		// 醚牢 版快.. ObservingEye眉农. by sigi. 2002.6.19		if (pWeapon->isGun() && isFlag(Effect::EFFECT_CLASS_OBSERVING_EYE))		{			EffectObservingEye* pObservingEye= dynamic_cast<EffectObservingEye*>(findEffect(Effect::EFFECT_CLASS_OBSERVING_EYE));			if (pObservingEye != NULL)			{				int DamageBonus = pObservingEye->getDamageBonus();				m_Damage[ATTR_CURRENT] = min(SLAYER_MAX_DAMAGE, m_Damage[ATTR_CURRENT] + DamageBonus);				m_Damage[ATTR_MAX]     = min(SLAYER_MAX_DAMAGE, m_Damage[ATTR_MAX] + DamageBonus);				CriticalRatioBonus += pObservingEye->getCriticalHitBonus();//				m_CriticalRatio[ATTR_CURRENT] = m_CriticalRatio[ATTR_CURRENT] + CriticalRatioBonus;//				m_CriticalRatio[ATTR_MAX]     = m_CriticalRatio[ATTR_MAX] + CriticalRatioBonus;				//int VisionBonus = pObservingEye->getVisionBonus();				// 捞芭绰 client俊辑 贸府窍档废 茄促. 			}		}		// Liveness 焊呈胶 歹秦林扁		if ( pLiveness != NULL && pWeapon->isGun() )		{			m_HP[ATTR_MAX] = m_HP[ATTR_MAX] + LivenessHPBonus;			m_Defense[ATTR_CURRENT]  = min(SLAYER_MAX_DEFENSE, m_Defense[ATTR_CURRENT] + LivenessDefenseBonus);		}		// Passive Skill : Will of Iron 歹秦林扁 : SWORD or BLADE 老锭		if ( (pFabulousSoul != NULL && pWeapon->getItemClass() == Item::ITEM_CLASS_SWORD) ||			 (pWillOfIron != NULL && pWeapon->getItemClass() == Item::ITEM_CLASS_BLADE) )		{			m_HP[ATTR_MAX] += HPBonus_WillOfIron;		}		if ( pWeapon->isGun() )		{			DamageBonus += getSkillDomainLevel( SKILL_DOMAIN_GUN ) / 10;		}		SkillSlot* pArmsMastery1 = getSkill(SKILL_ARMS_MASTERY_1);		SkillSlot* pArmsMastery2 = getSkill(SKILL_ARMS_MASTERY_2);		if (IClass == Item::ITEM_CLASS_AR)		{			SkillSlot* pARMastery = getSkill(SKILL_AR_MASTERY);			if (pARMastery != NULL && pARMastery->canUse())			{				DamageBonus += 3;				ToHitBonus += 5;			}			if ( pArmsMastery2 != NULL && pArmsMastery2->canUse() )			{				ToHitBonus += 6;				DamageBonus += 5;				CriticalRatioBonus += 6;			}			else if ( pArmsMastery1 != NULL && pArmsMastery1->canUse() )			{				ToHitBonus += 4;				DamageBonus += 3;				CriticalRatioBonus += 4;			}		}		else if (IClass == Item::ITEM_CLASS_SMG)		{			SkillSlot* pSMGMastery = getSkill(SKILL_SMG_MASTERY);			if (pSMGMastery != NULL && pSMGMastery->canUse())			{				DamageBonus += 3;				ToHitBonus += 5;			}			if ( pArmsMastery2 != NULL && pArmsMastery2->canUse() )			{				ToHitBonus += 5;				DamageBonus += 5;				CriticalRatioBonus += 7;			}			else if ( pArmsMastery1 != NULL && pArmsMastery1->canUse() )			{				ToHitBonus += 3;				DamageBonus += 3;				CriticalRatioBonus += 5;			}		}		else if (IClass == Item::ITEM_CLASS_SG)		{			SkillSlot* pSGMastery = getSkill(SKILL_SG_MASTERY);			if (pSGMastery != NULL && pSGMastery->canUse())			{				DamageBonus += 3;				ToHitBonus += 5;			}			if ( pArmsMastery2 != NULL && pArmsMastery2->canUse() )			{				ToHitBonus += 5;				DamageBonus += 6;				CriticalRatioBonus += 10;			}			else if ( pArmsMastery1 != NULL && pArmsMastery1->canUse() )			{				ToHitBonus += 3;				DamageBonus += 5;				CriticalRatioBonus += 9;			}		}		else if (IClass == Item::ITEM_CLASS_SR)		{			SkillSlot* pSRMastery = getSkill(SKILL_SR_MASTERY);			if (pSRMastery != NULL && pSRMastery->canUse())			{				DamageBonus += 3;				ToHitBonus += 5;			}			if ( pArmsMastery2 != NULL && pArmsMastery2->canUse() )			{				ToHitBonus += 11;				DamageBonus += 7;				CriticalRatioBonus += 5;			}			else if ( pArmsMastery1 != NULL && pArmsMastery1->canUse() )			{				ToHitBonus += 9;				DamageBonus += 5;				CriticalRatioBonus += 3;			}			if (isFlag(Effect::EFFECT_CLASS_SNIPING_MODE))			{				//DamageBonus += 3;				//ToHitBonus += 5;				// by sigi. 2002.12.3				SkillSlot* pSniping = getSkill(SKILL_SNIPING);				if (pSniping!=NULL)				{					int level = pSniping->getExpLevel();					int damage = m_Damage[ATTR_CURRENT];					int toHit  = m_ToHit[ATTR_CURRENT];					int damageBonusPercent = m_STR[ATTR_CURRENT]/20 * level/20;					int toHitBonusPercent = m_DEX[ATTR_CURRENT]/10 * level/20;					DamageBonus += damage * damageBonusPercent/100;					ToHitBonus += toHit * toHitBonusPercent/100;				}			}		}		else if (IClass == Item::ITEM_CLASS_SWORD)	// by sigi. 2002.6.7		{			// SWORD_MASTERY			SkillSlot* pMastery = getSkill(SKILL_SWORD_MASTERY);			if (pMastery != NULL && pMastery->canUse())			{				int level = m_SkillDomainLevels[SKILL_DOMAIN_SWORD];				/*				switch (g_pSkillInfoManager->getGradeByDomainLevel(level))				{					case SKILL_GRADE_APPRENTICE:   DamageBonus += 2; break;					case SKILL_GRADE_ADEPT:        DamageBonus += 3; break;					case SKILL_GRADE_EXPERT:       DamageBonus += 4; break;					case SKILL_GRADE_MASTER:       DamageBonus += 5; break;					case SKILL_GRADE_GRAND_MASTER: DamageBonus += 6; break;					default:                       break;				}				*/				// by sigi. 2002.12.3//				DamageBonus += level*10/125;				DamageBonus += 3 + level/15;			}		}		else if (IClass == Item::ITEM_CLASS_BLADE)	// by sigi. 2002.6.7		{			// CONCENTRATION			SkillSlot* pSkill = getSkill(SKILL_CONCENTRATION);			if (pSkill != NULL && pSkill->canUse())			{				int level = m_SkillDomainLevels[SKILL_DOMAIN_BLADE];				/*				switch (g_pSkillInfoManager->getGradeByDomainLevel(level))				{					case SKILL_GRADE_APPRENTICE:   ToHitBonus += 3; break;					case SKILL_GRADE_ADEPT:        ToHitBonus += 6; break;					case SKILL_GRADE_EXPERT:       ToHitBonus += 9; break;					case SKILL_GRADE_MASTER:       ToHitBonus += 12; break;					case SKILL_GRADE_GRAND_MASTER: ToHitBonus += 15; break;					default:                       break;				}				*/				// by sigi. 2002.12.3//				ToHitBonus += level/6;				ToHitBonus += 3+(level/10);			}			// EVASION		 	pSkill = getSkill(SKILL_EVASION);			if (pSkill != NULL && pSkill->canUse())			{				int level = m_SkillDomainLevels[SKILL_DOMAIN_BLADE];				//  by sigi. 2002.12.3//				Defense_t DefenseBonus = (level-20)/5;				Defense_t DefenseBonus = 3 + (level-20)/5;				/*				switch (g_pSkillInfoManager->getGradeByDomainLevel(level))				{					case SKILL_GRADE_APPRENTICE:   DefenseBonus += 3; break;					case SKILL_GRADE_ADEPT:        DefenseBonus += 6; break;					case SKILL_GRADE_EXPERT:       DefenseBonus += 9; break;					case SKILL_GRADE_MASTER:       DefenseBonus += 12; break;					case SKILL_GRADE_GRAND_MASTER: DefenseBonus += 15; break;					default:                       break;				}				*/				// 老窜 Evasion父 defense甫 官操骨肺 咯扁辑父 拌魂.. by sigi				m_Defense[ATTR_CURRENT]  = min(SLAYER_MAX_DEFENSE, m_Defense[ATTR_CURRENT] + DefenseBonus);				m_Defense[ATTR_MAX]      = min(SLAYER_MAX_DEFENSE, m_Defense[ATTR_MAX] + DefenseBonus);			}		}		//cout << "ToHitBonus = " << ToHitBonus << endl;		if ( pWeapon->isGun() )		{			// Concealment 焊呈胶 歹秦林扁			m_Defense[ATTR_CURRENT] += DefBonus;			m_Protection[ATTR_CURRENT] += ProBonus;			m_Defense[ATTR_MAX] += DefBonus;			m_Protection[ATTR_MAX] += ProBonus;		}		m_ToHit[ATTR_CURRENT]  = min(SLAYER_MAX_TOHIT, m_ToHit[ATTR_CURRENT] + ToHitBonus);		m_ToHit[ATTR_MAX]      = min(SLAYER_MAX_TOHIT, m_ToHit[ATTR_MAX] + ToHitBonus);		m_Damage[ATTR_CURRENT] = min(SLAYER_MAX_DAMAGE, m_Damage[ATTR_CURRENT] + DamageBonus);		m_Damage[ATTR_MAX]     = min(SLAYER_MAX_DAMAGE, m_Damage[ATTR_MAX] + DamageBonus);		m_CriticalRatio[ATTR_CURRENT] = m_CriticalRatio[ATTR_CURRENT] + CriticalRatioBonus;		m_CriticalRatio[ATTR_MAX]     = m_CriticalRatio[ATTR_MAX] + CriticalRatioBonus;	}	// 规菩 眉农. by sigi. 2002.6.7	if (pShield!=NULL && pShield->getItemClass()==Item::ITEM_CLASS_SHIELD)	{		int ProtectionBonus = 0;		SkillSlot* pMastery = getSkill(SKILL_SHIELD_MASTERY);		if (pMastery != NULL && pMastery->canUse())		{			int level = m_SkillDomainLevels[SKILL_DOMAIN_SWORD];			/*			switch (g_pSkillInfoManager->getGradeByDomainLevel(level))			{				case SKILL_GRADE_APPRENTICE:   ProtectionBonus += 3; break;				case SKILL_GRADE_ADEPT:        ProtectionBonus += 6; break;				case SKILL_GRADE_EXPERT:       ProtectionBonus += 9; break;				case SKILL_GRADE_MASTER:       ProtectionBonus += 12; break;				case SKILL_GRADE_GRAND_MASTER: ProtectionBonus += 15; break;				default:                       break;			}			*/			// by sigi. 2002.12.3//			ProtectionBonus += (level-20)/5;			ProtectionBonus += 5 + (level-20)/5;			m_Protection[ATTR_CURRENT]  = min(SLAYER_MAX_PROTECTION, m_Protection[ATTR_CURRENT] + ProtectionBonus);			m_Protection[ATTR_MAX]      = min(SLAYER_MAX_PROTECTION, m_Protection[ATTR_MAX] + ProtectionBonus);		}	}	///////////////////////////////////////////////////////////////////////////////	// 拌鞭 焊呈胶甫 拌魂茄促.	///////////////////////////////////////////////////////////////////////////////	if ( hasRankBonus( RankBonus::RANK_BONUS_DEADLY_SPEAR ) )	{		RankBonus* pRankBonus = getRankBonus( RankBonus::RANK_BONUS_DEADLY_SPEAR );		Assert( pRankBonus != NULL );		int CriticalRatioBonus = pRankBonus->getPoint();		m_CriticalRatio[ATTR_CURRENT] = m_CriticalRatio[ATTR_CURRENT] + CriticalRatioBonus;		m_CriticalRatio[ATTR_MAX]     = m_CriticalRatio[ATTR_MAX] + CriticalRatioBonus;	}	if ( hasRankBonus( RankBonus::RANK_BONUS_BEHEMOTH_ARMOR ) )	{		RankBonus* pRankBonus = getRankBonus( RankBonus::RANK_BONUS_BEHEMOTH_ARMOR );		Assert( pRankBonus != NULL );		Defense_t DefenseBonus = pRankBonus->getPoint();		m_Defense[ATTR_CURRENT]  = min(SLAYER_MAX_DEFENSE, m_Defense[ATTR_CURRENT] + DefenseBonus);		m_Defense[ATTR_MAX]      = min(SLAYER_MAX_DEFENSE, m_Defense[ATTR_MAX] + DefenseBonus);	}	if ( hasRankBonus( RankBonus::RANK_BONUS_DRAGON_EYE ) )	{		RankBonus* pRankBonus = getRankBonus( RankBonus::RANK_BONUS_DRAGON_EYE );		Assert( pRankBonus != NULL );		int ToHitBonus = pRankBonus->getPoint();		m_ToHit[ATTR_CURRENT]  = min(SLAYER_MAX_TOHIT, m_ToHit[ATTR_CURRENT] + ToHitBonus);		m_ToHit[ATTR_MAX]      = min(SLAYER_MAX_TOHIT, m_ToHit[ATTR_MAX] + ToHitBonus);	}	if ( hasRankBonus( RankBonus::RANK_BONUS_IMMORTAL_HEART ) )	{		RankBonus* pRankBonus = getRankBonus( RankBonus::RANK_BONUS_IMMORTAL_HEART );		Assert( pRankBonus != NULL );		int HPBonus = pRankBonus->getPoint();		m_HP[ATTR_MAX] = m_HP[ATTR_MAX] + HPBonus;	}	if ( hasRankBonus( RankBonus::RANK_BONUS_RELIANCE_BRAIN ) )	{		RankBonus* pRankBonus = getRankBonus( RankBonus::RANK_BONUS_RELIANCE_BRAIN );		Assert( pRankBonus != NULL );		int MPBonus = pRankBonus->getPoint();		m_MP[ATTR_MAX] = min(SLAYER_MAX_MP, m_MP[ATTR_MAX] + MPBonus);	}	if ( hasRankBonus( RankBonus::RANK_BONUS_SLAYING_KNIFE ) )	{		RankBonus* pRankBonus = getRankBonus( RankBonus::RANK_BONUS_SLAYING_KNIFE );		Assert( pRankBonus != NULL );		int DamageBonus = pRankBonus->getPoint();		m_Damage[ATTR_CURRENT] = min(SLAYER_MAX_DAMAGE, m_Damage[ATTR_CURRENT] + DamageBonus);		m_Damage[ATTR_MAX]     = min(SLAYER_MAX_DAMAGE, m_Damage[ATTR_MAX] + DamageBonus);	}	if ( hasRankBonus( RankBonus::RANK_BONUS_HAWK_WING ) )	{		RankBonus* pRankBonus = getRankBonus( RankBonus::RANK_BONUS_HAWK_WING );		Assert( pRankBonus != NULL );		int AttackSpeedBonus = pRankBonus->getPoint();		m_AttackSpeed[ATTR_CURRENT]	+= AttackSpeedBonus;		m_AttackSpeed[ATTR_MAX] 	+= AttackSpeedBonus;	}	if ( hasRankBonus( RankBonus::RANK_BONUS_SAPPHIRE_BLESS ) )	{		RankBonus* pRankBonus = getRankBonus( RankBonus::RANK_BONUS_SAPPHIRE_BLESS );		Assert( pRankBonus != NULL );		int ResistBonus = pRankBonus->getPoint();		m_Resist[MAGIC_DOMAIN_ACID] += ResistBonus;	}	if ( hasRankBonus( RankBonus::RANK_BONUS_RUBY_BLESS ) )	{		RankBonus* pRankBonus = getRankBonus( RankBonus::RANK_BONUS_RUBY_BLESS );		Assert( pRankBonus != NULL );		int ResistBonus = pRankBonus->getPoint();		m_Resist[MAGIC_DOMAIN_BLOOD] += ResistBonus;	}	if ( hasRankBonus( RankBonus::RANK_BONUS_DIAMOND_BLESS ) )	{		RankBonus* pRankBonus = getRankBonus( RankBonus::RANK_BONUS_DIAMOND_BLESS );		Assert( pRankBonus != NULL );		int ResistBonus = pRankBonus->getPoint();		m_Resist[MAGIC_DOMAIN_CURSE] += ResistBonus;	}	if ( hasRankBonus( RankBonus::RANK_BONUS_EMERALD_BLESS ) )	{		RankBonus* pRankBonus = getRankBonus( RankBonus::RANK_BONUS_EMERALD_BLESS );		Assert( pRankBonus != NULL );		int ResistBonus = pRankBonus->getPoint();		m_Resist[MAGIC_DOMAIN_POISON] += ResistBonus;	}	if ( hasRankBonus( RankBonus::RANK_BONUS_FORTUNE_HAND ) )	{		RankBonus* pRankBonus = getRankBonus( RankBonus::RANK_BONUS_FORTUNE_HAND );

⌨️ 快捷键说明

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