cgresurrecthandler.cpp

来自「天之炼狱1服务器端源文件游戏服务端不完整」· C++ 代码 · 共 133 行

CPP
133
字号
//////////////////////////////////////////////////////////////////////////////// Filename    : CGResurrectHandler.cpp// Written By  : excel96// Description ://////////////////////////////////////////////////////////////////////////////#include "CGResurrect.h"#ifdef __GAME_SERVER__	#include "GamePlayer.h"	#include "Slayer.h"	#include "Vampire.h"	#include "Ousters.h"	#include "Effect.h"	#include "EffectComa.h"	#include "EffectManager.h"#endif////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////void CGResurrectHandler::execute (CGResurrect* pPacket , Player* pPlayer)	 throw (ProtocolException , Error){	__BEGIN_TRY __BEGIN_DEBUG_EX#ifdef __GAME_SERVER__	Assert(pPacket != NULL);	Assert(pPlayer != NULL);	GamePlayer* pGamePlayer = dynamic_cast<GamePlayer*>(pPlayer);	Assert(pGamePlayer != NULL);	Creature* pCreature = pGamePlayer->getCreature();	Assert(pCreature != NULL);	if (pCreature->findEffect( Effect::EFFECT_CLASS_ETERNITY )) return;	// 泅犁 农府媚俊霸 COMA 捞棋飘啊 嘿绢乐瘤 臼促搁 俊矾促. 	if (pCreature->isFlag(Effect::EFFECT_CLASS_COMA))	{		//cout << "敲贰弊 嘿绢乐澜." << endl;		// COMA 捞棋飘俊 立辟茄促.		EffectManager* pEffectManager = pCreature->getEffectManager();		Assert(pEffectManager != NULL);		EffectComa* pEffectComa = (EffectComa*)(pEffectManager->findEffect(Effect::EFFECT_CLASS_COMA));		Assert(pEffectComa != NULL);		// 磷篮 瘤 5檬啊 酒流 瘤唱瘤 臼疽促搁, 登混酒朝 荐 绝促.		if (pEffectComa->canResurrect())		{			//cout << "5檬啊 瘤车栏聪 何劝矫懦 荐 乐澜." << endl;			/*			if (pCreature->isSlayer())			{				Slayer* pSlayer = dynamic_cast<Slayer*>(pCreature);				//cout << "泅犁 HP:" << pSlayer->getHP(ATTR_CURRENT);			}			else if (pCreature->isVampire())			{				Vampire* pVampire = dynamic_cast<Vampire*>(pCreature);				//cout << "泅犁 HP:" << pVampire->getHP(ATTR_CURRENT);			}			*/			// 单靛扼牢阑 0栏肺 父甸绢霖促. 捞犯霸 窍搁 窍飘厚飘俊辑			// unaffect登搁辑 敲饭捞绢甫 磊悼栏肺 何劝矫虐霸 等促.			pEffectComa->setDeadline(0);		}		else		{			//cout << "5檬啊 瘤唱瘤 臼疽促." << endl;		}	}	else	{		//cout << "敲贰弊啊 绝促." << endl;		// 绢叼辑牢瘤绰 犬角洒 舅 荐 绝栏唱, 绢凋啊俊辑 磷篮 第俊		// 内付 捞棋飘啊 朝酒啊 滚府芭唱, 磷篮 惑怕俊辑 HP啊 棵扼啊绰 泅惑捞 		// 惯积窍绰 淀 窍促. 弊贰辑 捞棋飘 吧妨乐瘤 臼篮 惑炔俊辑 菩哦		// 朝酒坷搁 碍力肺 磷捞绰 内靛甫 笼绢持绰促.		if (pCreature->isSlayer())		{			Slayer* pSlayer = dynamic_cast<Slayer*>(pCreature);			pSlayer->setHP(0, ATTR_CURRENT);			pSlayer->deleteEffect(Effect::EFFECT_CLASS_COMA);			EffectComa* pEffectComa = new EffectComa(pSlayer);			pEffectComa->setStartTime();			pEffectComa->setDeadline(0);			pSlayer->addEffect(pEffectComa);			pSlayer->setFlag(Effect::EFFECT_CLASS_COMA);		}		else if (pCreature->isVampire())		{			Vampire* pVampire = dynamic_cast<Vampire*>(pCreature);			pVampire->setHP(0, ATTR_CURRENT);			pVampire->deleteEffect(Effect::EFFECT_CLASS_COMA);			EffectComa* pEffectComa = new EffectComa(pVampire);			pEffectComa->setStartTime();			pEffectComa->setDeadline(0);			pVampire->addEffect(pEffectComa);			pVampire->setFlag(Effect::EFFECT_CLASS_COMA);		}		else if (pCreature->isOusters())		{			Ousters* pOusters = dynamic_cast<Ousters*>(pCreature);			pOusters->setHP(0, ATTR_CURRENT);			pOusters->deleteEffect(Effect::EFFECT_CLASS_COMA);			EffectComa* pEffectComa = new EffectComa(pOusters);			pEffectComa->setStartTime();			pEffectComa->setDeadline(0);			pOusters->addEffect(pEffectComa);			pOusters->setFlag(Effect::EFFECT_CLASS_COMA);		}		else		{			Assert(false);		}	}#endif	__END_DEBUG_EX __END_CATCH}

⌨️ 快捷键说明

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