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

📄 backstab.cpp

📁 天之炼狱1服务器端源文件游戏服务端不完整
💻 CPP
字号:
//////////////////////////////////////////////////////////////////////////////// Filename    : BackStab.cpp// Written by  : elca@ewestsoft.com// Description : //////////////////////////////////////////////////////////////////////////////#include "BackStab.h"#include "SimpleMeleeSkill.h"#include "RankBonus.h"#include "Gpackets/GCAddEffect.h"//////////////////////////////////////////////////////////////////////////////// 轨颇捞绢 坷宏璃飘 勤甸矾//////////////////////////////////////////////////////////////////////////////void BackStab::execute(Ousters* pOusters, ObjectID_t TargetObjectID, OustersSkillSlot* pOustersSkillSlot, CEffectID_t CEffectID)	throw(Error){	__BEGIN_TRY	SkillInput input(pOusters, pOustersSkillSlot);	SkillOutput output;	computeOutput(input, output);	Item* pWeapon = pOusters->getWearItem( Ousters::WEAR_RIGHTHAND );	if ( pWeapon == NULL )	{		executeSkillFailException( pOusters, getSkillType() );		return;	}	SIMPLE_SKILL_INPUT param;	param.SkillType     = getSkillType();//	param.SkillDamage   = output.Damage;	bool bCritical = false;	if ( HitRoll::isSuccessBackStab( pOusters ) )	{		double ratio = ( 1.0 + ( 2 * input.SkillLevel / 30.0 ) );		param.SkillDamage = max( 1, Random( pWeapon->getMinDamage(), pWeapon->getMaxDamage() ) ) * ratio;		if ( input.SkillLevel == 30 ) param.SkillDamage *= 1.1;		bCritical = true;	}	else	{		param.SkillDamage = 0;	}	param.Delay         = 0;	param.ItemClass     = Item::ITEM_CLASS_OUSTERS_CHAKRAM;	param.STRMultiplier = 0;	param.DEXMultiplier = 0;	param.INTMultiplier = 0;	param.bMagicHitRoll = false;	param.bMagicDamage  = false;	param.bAdd = true;	if ( input.SkillLevel < 15 ) param.Grade = 0;	else if ( input.SkillLevel < 30 ) param.Grade = 1;	else param.Grade = 2;	SIMPLE_SKILL_OUTPUT result;	g_SimpleMeleeSkill.execute(pOusters, TargetObjectID, pOustersSkillSlot, param, result, CEffectID );	if ( bCritical && result.bSuccess )	{		GCAddEffect gcAddEffect;		gcAddEffect.setObjectID( TargetObjectID );		if ( param.Grade == 0 ) gcAddEffect.setEffectID( Effect::EFFECT_CLASS_BACK_STAB );		else if ( param.Grade == 1 ) gcAddEffect.setEffectID( Effect::EFFECT_CLASS_BACK_STAB_2 );		else gcAddEffect.setEffectID( Effect::EFFECT_CLASS_BACK_STAB_3 );		gcAddEffect.setDuration( 0 );		Zone* pZone = pOusters->getZone();		if ( pZone != NULL ) 		{			Creature* pCreature = pZone->getCreature( TargetObjectID );			if ( pCreature != NULL )			{				pZone->broadcastPacket( pCreature->getX(), pCreature->getY(), &gcAddEffect );			}		}	}	__END_CATCH}BackStab g_BackStab;

⌨️ 快捷键说明

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