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

📄 effecttrapinstalled.cpp

📁 天之炼狱1服务器端源文件游戏服务端不完整
💻 CPP
字号:
//////////////////////////////////////////////////////////////////////////////// Filename    : EffectTrapInstalled.cpp// Written by  : bezz//////////////////////////////////////////////////////////////////////////////#include "EffectTrapInstalled.h"#include "Zone.h"#include "Tile.h"#include "Player.h"#include "EffectTrapTriggered.h"#include "Monster.h"#include "SkillUtil.h"#include "SkillInfo.h"#include "Gpackets/GCDeleteEffectFromTile.h"#include "Gpackets/GCAddEffect.h"#include "Gpackets/GCModifyInformation.h"////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////EffectTrapInstalled::EffectTrapInstalled( Zone* pZone, ZoneCoord_t X, ZoneCoord_t Y )	throw(Error){	__BEGIN_TRY	m_pZone = pZone;	m_X = X;	m_Y = Y;	__END_CATCH}////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////void EffectTrapInstalled::affect()	throw(Error){	__BEGIN_TRY	Assert( m_pZone != NULL );	__END_CATCH}////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////void EffectTrapInstalled::affect(Zone* pZone, ZoneCoord_t Cx, ZoneCoord_t Cy)	throw(Error){	__BEGIN_TRY	Assert(pZone != NULL);	__END_CATCH}////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////void EffectTrapInstalled::affect(Creature* pCreature)	throw(Error){	__BEGIN_TRY	if ( pCreature == NULL ) return;	if ( m_pZone == NULL ) return;	if ( pCreature->getX() != m_X || pCreature->getY() != m_Y ) return;	Creature* pCaster = m_pZone->getCreature( m_UserOID );		if ( pCaster != NULL && pCaster->isSlayer() )	{		GCModifyInformation gcAttackerMI;		Slayer* pCastSlayer = dynamic_cast<Slayer*>( pCaster );		SkillSlot* pSkillSlot = pCastSlayer->getSkill( SKILL_INSTALL_TRAP );		if ( pSkillSlot != NULL )		{			SkillInfo* pSkillInfo = g_pSkillInfoManager->getSkillInfo( SKILL_INSTALL_TRAP );			SkillDomainType_t DomainType = pSkillInfo->getDomainType();			SkillGrade Grade = g_pSkillInfoManager->getGradeByDomainLevel(pCastSlayer->getSkillDomainLevel(DomainType));			Exp_t ExpUp = 10*(Grade+1);			// 吧副锭 版氰摹 林扁			shareAttrExp(pCastSlayer, ExpUp, 1,8,1, gcAttackerMI);			increaseDomainExp(pCastSlayer, DomainType, pSkillInfo->getPoint(), gcAttackerMI);			increaseSkillExp(pCastSlayer, DomainType, pSkillSlot, pSkillInfo, gcAttackerMI);			pCastSlayer->getPlayer()->sendPacket( &gcAttackerMI );		}	}	if ( pCreature->isMonster() )	{		Monster* pMonster = dynamic_cast<Monster*>(pCreature);		if ( pMonster->isMaster() #ifdef __UNDERWORLD__				|| pMonster->isUnderworld() || pMonster->getMonsterType() == 599#endif		) return;	}	EffectTrapTriggered* pEffect = new EffectTrapTriggered( pCreature );	pEffect->setDeadline( m_Tick );	pCreature->setFlag( Effect::EFFECT_CLASS_TRAPPED );	pCreature->addEffect( pEffect );	GCAddEffect gcAddEffect;	gcAddEffect.setObjectID( pCreature->getObjectID() );	gcAddEffect.setEffectID( Effect::EFFECT_CLASS_TRAP_TRIGGERED );	gcAddEffect.setDuration( m_Tick );	m_pZone->broadcastPacket( m_X, m_Y, &gcAddEffect );	setDeadline(0);	__END_CATCH}////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////void EffectTrapInstalled::unaffect()	throw(Error){	__BEGIN_TRY	Tile& tile = m_pZone->getTile( m_X, m_Y );	if ( !tile.hasEffect() ) return;	tile.deleteEffect( m_ObjectID );	GCDeleteEffectFromTile gcDeleteEffect;	gcDeleteEffect.setXY( m_X, m_Y );	gcDeleteEffect.setObjectID( getObjectID() );	gcDeleteEffect.setEffectID( getSendEffectClass() );	m_pZone->broadcastPacket( m_X, m_Y, &gcDeleteEffect );		__END_CATCH}////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////string EffectTrapInstalled::toString() const 	throw(){	__BEGIN_TRY	StringStream msg;	msg << "EffectTrapInstalled("		<< ")";	return msg.toString();	__END_CATCH}

⌨️ 快捷键说明

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