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

📄 effectheartcatalyst.cpp

📁 天之炼狱1服务器端源文件游戏服务端不完整
💻 CPP
字号:
//////////////////////////////////////////////////////////////////////////////// Filename    : EffectHeartCatalyst.cpp// Written by  : elca// Description : //////////////////////////////////////////////////////////////////////////////#include "EffectHeartCatalyst.h"#include "Slayer.h"#include "Player.h"#include "Item.h"#include "ItemUtil.h"#include "Gpackets/GCStatusCurrentHP.h"#include "Gpackets/GCRemoveEffect.h"EffectHeartCatalyst::EffectHeartCatalyst(Creature* pCreature)	throw(Error){	__BEGIN_TRY	setTarget(pCreature);	// 茄锅 何甫锭付促 馆傈登绰芭. 狼固绝促.	m_GiveExp = true;	__END_CATCH}void EffectHeartCatalyst::affect() throw(Error){	__BEGIN_TRY	Creature* pCreature = dynamic_cast<Creature *>(m_pTarget);	affect(pCreature);	__END_CATCH}void EffectHeartCatalyst::affect(Creature* pCreature)	throw(Error){	__BEGIN_TRY	Assert( pCreature != NULL );	if ( !pCreature->isSlayer() )	{		setDeadline(0);		return;	}	Slayer* pSlayer = dynamic_cast<Slayer*>(pCreature);	Assert( pSlayer != NULL );	Item* pWeapon = pSlayer->getWearItem(Slayer::WEAR_RIGHTHAND);	if (pWeapon == NULL || !isArmsWeapon(pWeapon))	{		setDeadline(0);		//cout << "TID[" << Thread::self() << "]" << getSkillHandlerName() << " End" << endl;		return;	}	if ( pSlayer->getHP(ATTR_CURRENT) >= pSlayer->getHP(ATTR_MAX) )	{		setNextTime( m_Tick );		return;	}	HP_t CurrentHP = pSlayer->getHP(ATTR_CURRENT);	HP_t NewHP = min( (int)pSlayer->getHP(ATTR_MAX), CurrentHP + m_HealPoint );	pSlayer->setHP( NewHP );	GCStatusCurrentHP gcHP;	gcHP.setObjectID( pSlayer->getObjectID() );	gcHP.setCurrentHP( pSlayer->getHP() );	pSlayer->getZone()->broadcastPacket( pSlayer->getX(), pSlayer->getY(), &gcHP );	setNextTime(m_Tick);	__END_CATCH}void EffectHeartCatalyst::unaffect()	    throw(Error){    __BEGIN_TRY	//cout << "EffectHeartCatalyst " << "unaffect BEGIN" << endl;    Creature* pCreature = dynamic_cast<Creature *>(m_pTarget);    unaffect(pCreature);	//cout << "EffectHeartCatalyst " << "unaffect END" << endl;    __END_CATCH}void EffectHeartCatalyst::unaffect(Creature* pCreature)	throw(Error){	__BEGIN_TRY	__BEGIN_DEBUG	//cout << "EffectHeartCatalyst " << "unaffect BEGIN" << endl;	Assert(pCreature != NULL);	Assert(pCreature->isSlayer());	pCreature->removeFlag(Effect::EFFECT_CLASS_HEART_CATALYST);	Slayer* pSlayer = dynamic_cast<Slayer*>(pCreature);	SLAYER_RECORD prev;	pSlayer->getSlayerRecord(prev);	pSlayer->initAllStat();	pSlayer->sendRealWearingInfo();	pSlayer->sendModifyInfo(prev);	Zone* pZone = pSlayer->getZone();	Assert(pZone != NULL);	// 捞棋飘啊 荤扼脸促绊 舅妨霖促.	GCRemoveEffect gcRemoveEffect;	gcRemoveEffect.setObjectID(pSlayer->getObjectID());	gcRemoveEffect.addEffectList(Effect::EFFECT_CLASS_HEART_CATALYST);	pZone->broadcastPacket(pSlayer->getX(), pSlayer->getY(), &gcRemoveEffect);	//cout << "EffectHeartCatalyst " << "unaffect END" << endl;	__END_DEBUG	__END_CATCH}string EffectHeartCatalyst::toString() const 	throw(){	__BEGIN_TRY	StringStream msg;	msg << "EffectHeartCatalyst("		<< "ObjectID:" << getObjectID()		<< ")";	return msg.toString();	__END_CATCH}

⌨️ 快捷键说明

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