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

📄 effectshrineguard.cpp

📁 天之炼狱1服务器端源文件游戏服务端不完整
💻 CPP
字号:
//////////////////////////////////////////////////////////////////////////////// Filename    : EffectShrineGuard.cpp// Written by  : elca// Description : //////////////////////////////////////////////////////////////////////////////#include "EffectShrineGuard.h"#include "Creature.h"#include "Slayer.h"#include "Vampire.h"#include "Monster.h"#include "MonsterCorpse.h"#include "Player.h"#include "ZoneGroupManager.h"#include "Gpackets/GCModifyInformation.h"#include "Gpackets/GCStatusCurrentHP.h"#include "Gpackets/GCAddEffect.h"#include "Gpackets/GCRemoveEffect.h"#include "Gpackets/GCSystemMessage.h"////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////EffectShrineGuard::EffectShrineGuard(Creature* pCreature)	throw(Error){	__BEGIN_TRY	m_ShrineID = 0;	setTarget(pCreature);	__END_CATCH}////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////EffectShrineGuard::EffectShrineGuard(Item* pItem)	throw(Error){	__BEGIN_TRY	setTarget(pItem);	__END_CATCH}////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////void EffectShrineGuard::affect(Creature* pCreature)	throw(Error){	__BEGIN_TRY	//Timeval      nextTime   = getNextTime();	//Timeval      deadLine   = getDeadline();	//Turn_t       RemainTime = deadLine.tv_sec - nextTime.tv_sec;	/*	StringStream msg;	if (pCreature->isSlayer())	{		Slayer* pSlayer = dynamic_cast<Slayer*>(pCreature);		msg << pSlayer->getName();	}	else	{		Vampire* pVampire = dynamic_cast<Vampire*>(pCreature);		msg << pVampire->getName();	}	msg << " 丛捞 浇饭捞绢 己拱阑 啊脸嚼聪促.";	GCSystemMessage gcSystemMessage;	gcSystemMessage.setType(SYSTEM_MESSAGE_COMBAT);	gcSystemMessage.setMessage(msg.toString());	g_pZoneGroupManager->broadcast( &gcSystemMessage );	// Effect嘿牢促.	GCAddEffect gcAddEffect;	gcAddEffect.setObjectID( pCreature->getObjectID() );	gcAddEffect.setEffectID( getEffectClass() );	gcAddEffect.setDuration( 65000 );	pCreature->getZone()->broadcastPacket(pCreature->getX(), pCreature->getY(), &gcAddEffect);	setNextTime(m_Tick);	*/																															    		__END_CATCH}////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////void EffectShrineGuard::affect(Item* pItem)	throw(Error){	__BEGIN_TRY	__END_CATCH}void EffectShrineGuard::unaffect() 	throw(Error){	__BEGIN_TRY			switch (m_pTarget->getObjectClass())	{		case OBJECT_CLASS_CREATURE :		{			Creature* pCreature = dynamic_cast<Creature *>(m_pTarget);			unaffect(pCreature);		}		break;		case OBJECT_CLASS_ITEM :		{			Item* pItem = dynamic_cast<Item *>(m_pTarget);			unaffect(pItem);		}		break;		default :			throw Error("Wrong Object Class");	}	__END_CATCH}////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////void EffectShrineGuard::unaffect(Creature* pCreature)	throw(Error){	__BEGIN_TRY	__BEGIN_DEBUG	//cout << "EffectShrineGuard" << "unaffect BEGIN" << endl;	Assert(pCreature != NULL);	// 瓷仿摹甫 沥惑利栏肺 登倒府扁 困秦辑绰 敲贰弊甫 掺绊,	// initAllStat阑 阂矾具 茄促.	pCreature->removeFlag(Effect::EFFECT_CLASS_SHRINE_GUARD);	Zone* pZone = pCreature->getZone();	Assert(pZone != NULL);	GCRemoveEffect gcRemoveEffect;	gcRemoveEffect.setObjectID(pCreature->getObjectID());	gcRemoveEffect.addEffectList(Effect::EFFECT_CLASS_SHRINE_GUARD);	pZone->broadcastPacket(pCreature->getX(), pCreature->getY(), &gcRemoveEffect);	//cout << "EffectShrineGuard" << "unaffect END" << endl;	__END_DEBUG	__END_CATCH}////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////void EffectShrineGuard::unaffect(Item* pItem)	throw(Error){	__BEGIN_TRY	__BEGIN_DEBUG	//cout << "EffectShrineGuard" << "unaffect BEGIN" << endl;	Assert(pItem != NULL);	Assert(pItem->getItemClass()==Item::ITEM_CLASS_CORPSE);	Assert(pItem->getItemType()==MONSTER_CORPSE);	MonsterCorpse* pCorpse = dynamic_cast<MonsterCorpse*>(pItem);	pCorpse->removeFlag(Effect::EFFECT_CLASS_SHRINE_GUARD);	Zone* pZone = pCorpse->getZone();	Assert(pZone != NULL);	GCRemoveEffect gcRemoveEffect;	gcRemoveEffect.setObjectID(pItem->getObjectID());	gcRemoveEffect.addEffectList(Effect::EFFECT_CLASS_SHRINE_GUARD);	pZone->broadcastPacket(pCorpse->getX(), pCorpse->getY(), &gcRemoveEffect);	//cout << "EffectShrineGuard" << "unaffect END" << endl;	__END_DEBUG	__END_CATCH}////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////string EffectShrineGuard::toString()	const throw(){	__BEGIN_TRY	StringStream msg;	msg << "EffectShrineGuard("		<< "ObjectID:" << getObjectID()		<< ")";	return msg.toString();	__END_CATCH}

⌨️ 快捷键说明

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