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

📄 effecteternity.cpp

📁 天之炼狱1服务器端源文件游戏服务端不完整
💻 CPP
字号:
//////////////////////////////////////////////////////////////////////////////// Filename    : EffectEternity.cpp// Written by  : elca// Description : //////////////////////////////////////////////////////////////////////////////#include "EffectEternity.h"#include "Slayer.h"#include "Player.h"#include "CreatureUtil.h"#include "Gpackets/GCModifyInformation.h"#include "Gpackets/GCStatusCurrentHP.h"#include "Gpackets/GCAddEffectToTile.h"#include "Gpackets/GCRemoveEffect.h"EffectEternity::EffectEternity(Creature* pCreature)	throw(Error){	__BEGIN_TRY	setTarget(pCreature);	m_TargetObjectID = pCreature->getObjectID();	m_pZone = pCreature->getZone();	__END_CATCH}void EffectEternity::affect(Creature* pCreature)	throw(Error){	__BEGIN_TRY	__END_CATCH}void EffectEternity::unaffect()	    throw(Error){    __BEGIN_TRY	//cout << "EffectEternity " << "unaffect BEGIN" << endl;	Zone* pZone = m_pZone;	Assert( pZone != NULL );    Creature* pCreature = pZone->getCreature( m_TargetObjectID );	if ( pCreature == NULL ) return;    unaffect(pCreature);	//cout << "EffectEternity " << "unaffect END" << endl;    __END_CATCH}void EffectEternity::unaffect(Creature* pCreature)	throw(Error){	__BEGIN_TRY	__BEGIN_DEBUG	Assert(pCreature != NULL);	Assert(pCreature->isSlayer());	Slayer* pSlayer = dynamic_cast<Slayer*>(pCreature);	Assert( pSlayer != NULL );	Zone* pZone = pSlayer->getZone();	Assert(pZone != NULL);	if ( !pSlayer->isFlag( Effect::EFFECT_CLASS_COMA ) ) return;	// 鸥老俊促啊 捞棋飘甫 嘿咯霖促.	GCAddEffectToTile gcAddEffect;	gcAddEffect.setEffectID(Effect::EFFECT_CLASS_ETERNITY);	gcAddEffect.setXY( pSlayer->getX(), pSlayer->getY() );	gcAddEffect.setDuration(31);	pZone->broadcastPacket(pSlayer->getX(), pSlayer->getY(), &gcAddEffect);	pSlayer->deleteEffect( Effect::EFFECT_CLASS_COMA );	pSlayer->removeFlag( Effect::EFFECT_CLASS_COMA );	HP_t NewHP = getPercentValue( pSlayer->getHP( ATTR_MAX ), 100 + m_HPPenalty );	NewHP = min(NewHP, pSlayer->getHP(ATTR_MAX));	NewHP = max((HP_t)1, NewHP);	pSlayer->setHP( NewHP );	// 内付 捞棋飘啊 朝酒艾促绊 舅妨霖促.	GCRemoveEffect gcRemoveEffect;	gcRemoveEffect.setObjectID(pSlayer->getObjectID());	gcRemoveEffect.addEffectList((EffectID_t)Effect::EFFECT_CLASS_COMA);	pZone->broadcastPacket(pSlayer->getX(), pSlayer->getY(), &gcRemoveEffect);	GCStatusCurrentHP gcHP;	gcHP.setObjectID( pSlayer->getObjectID() );	gcHP.setCurrentHP( pSlayer->getHP() );	pZone->broadcastPacket(pSlayer->getX(), pSlayer->getY(), &gcHP);	// 捞棋飘甸阑 促矫 焊郴霖促.	pSlayer->getEffectManager()->sendEffectInfo(pSlayer, pZone, pSlayer->getX(), pSlayer->getY());	addSimpleCreatureEffect( pSlayer, Effect::EFFECT_CLASS_NO_DAMAGE, 30, false );	addSimpleCreatureEffect( pSlayer, Effect::EFFECT_CLASS_ETERNITY_PAUSE, 30 );	__END_DEBUG	__END_CATCH}string EffectEternity::toString() const 	throw(){	__BEGIN_TRY	StringStream msg;	msg << "EffectEternity("		<< "ObjectID:" << getObjectID()		<< ")";	return msg.toString();	__END_CATCH}

⌨️ 快捷键说明

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