cgblooddrainhandler.cpp

来自「dk1游戏的原代码文件,完整.编译系统redhat7.3,mysql 3.23 」· C++ 代码 · 共 96 行

CPP
96
字号
//////////////////////////////////////////////////////////////////////////////// Filename    : CGBloodDrainHandler.cpp// Written By  : crazydog// Description : //////////////////////////////////////////////////////////////////////////////#include "CGBloodDrain.h"#ifdef __GAME_SERVER__	#include "GamePlayer.h"	#include "Vampire.h"	#include "Monster.h"	#include "Skill.h"	#include "SkillHandlerManager.h"	#include "ZonePlayerManager.h"	#include "ZoneUtil.h"	#include "Gpackets/GCAttack.h"	#include "Gpackets/GCGetDamage.h"	#include "Gpackets/GCSkillFailed1.h"#endif////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////void CGBloodDrainHandler::execute (CGBloodDrain* pPacket , Player* pPlayer)	     throw (Error){	__BEGIN_TRY __BEGIN_DEBUG_EX	__BEGIN_DEBUG#ifdef __GAME_SERVER__	Assert(pPacket != NULL);	Assert(pPlayer != NULL);	try 	{		GamePlayer* pGamePlayer = dynamic_cast<GamePlayer*>(pPlayer);		Assert(pGamePlayer != NULL);		if (pGamePlayer->getPlayerStatus() == GPS_NORMAL) 		{			Creature* pCreature = pGamePlayer->getCreature();			Assert(pCreature != NULL);			// 轨颇捞绢啊 酒囱 仇捞 软趋阑 且 荐绰 绝促.			if (!pCreature->isVampire()) return;			Vampire* pVampire = dynamic_cast<Vampire*>(pCreature);			// 肯傈 救傈瘤措扼搁 扁贱 荤侩 阂啊. by sigi. 2002.11.14			ZoneLevel_t ZoneLevel = pCreature->getZone()->getZoneLevel(pCreature->getX(), pCreature->getY());			if ((ZoneLevel & COMPLETE_SAFE_ZONE)				|| (!isAbleToUseObjectSkill(pVampire, SKILL_BLOOD_DRAIN)))			{				GCSkillFailed1 gcSkillFailed1;				gcSkillFailed1.setSkillType(SKILL_BLOOD_DRAIN);				pPlayer->sendPacket(&gcSkillFailed1);				return;			}						// Dark Revenge 惑怕俊辑 软趋阑 矫档窍搁 钱绢霖促.			if (pVampire->isFlag(Effect::EFFECT_CLASS_EXTREME))			{				EffectManager * pEffectManager = pVampire->getEffectManager();				Assert( pEffectManager != NULL );				Effect * pEffect = pEffectManager->findEffect( Effect::EFFECT_CLASS_EXTREME );				if ( pEffect != NULL ) {					pEffect->setDeadline(0);				}			}				// 救 焊捞绰 惑怕俊辑 软趋阑 矫档窍搁, 焊捞霸 秦霖促.			if (pVampire->isFlag(Effect::EFFECT_CLASS_INVISIBILITY))			{				Zone* pZone = pVampire->getZone();				Assert(pZone != NULL);				addVisibleCreature(pZone, pVampire, true);			}			SkillHandler* pSkillHandler = g_pSkillHandlerManager->getSkillHandler(SKILL_BLOOD_DRAIN);			Assert(pSkillHandler != NULL);			pSkillHandler->execute(pVampire, pPacket->getObjectID());		}	} 	catch (Throwable & t) 	{ 		//cout << t.toString(); 	}#endif	__END_DEBUG    __END_DEBUG_EX __END_CATCH}

⌨️ 快捷键说明

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