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

📄 regenerationskill.cpp

📁 天之炼狱1服务器端源文件游戏服务端不完整
💻 CPP
字号:
//////////////////////////////////////////////////////////////////////////////// Filename    : Regeneration.cpp// Written by  : elca@ewestsoft.com// Description : //////////////////////////////////////////////////////////////////////////////#include "RegenerationSkill.h"#include "EffectRegeneration.h"#include "Vampire.h"#include "Gpackets/GCSkillToObjectOK1.h"#include "Gpackets/GCSkillToObjectOK2.h"#include "Gpackets/GCSkillToObjectOK5.h"#include "Gpackets/GCSkillToSelfOK1.h"#include "Gpackets/GCSkillToSelfOK2.h"#include "Gpackets/GCSkillFailed1.h"#include "Gpackets/GCSkillFailed2.h"#include "Gpackets/GCStatusCurrentHP.h"////////////////////////////////////////////////////////////////////////// RegenerationSkill::execute()////////////////////////////////////////////////////////////////////////void RegenerationSkill::execute(Slayer* pSlayer, SkillSlot * pSkillSlot, CEffectID_t CEffectID)	throw(Error){	__BEGIN_TRY	//cout << "TID[" << Thread::self() << "]" << getSkillHandlerName() << " Begin" << endl;		/*	Assert(pSlayer != NULL);	Assert(pSkillSlot != NULL);	try 	{		// Player甫 罐酒柯促.		Player * pPlayer = pSlayer->getPlayer();				// Zone阑 罐酒柯促.		Zone * pZone = pSlayer->getZone();		Assert(pZone);		Assert(pSkillSlot);		GCSkillToSelfOK1 _GCSkillToSelfOK1;		GCSkillToSelfOK2 _GCSkillToSelfOK2;		GCSkillFailed1 _GCSkillFailed1;		GCSkillFailed2 _GCSkillFailed2;		SkillType_t SkillType = pSkillSlot->getSkillType();		SkillInfo * pSkillInfo = g_pSkillInfoManager->getSkillInfo(SkillType);		Assert(pSkillInfo);				SkillLevel_t SkillLevel = pSkillSlot->getExpLevel();		// 疙吝伏阑 罐酒柯促.		ToHit_t ToHit = pSlayer->getINT(ATTR_CURRENT);				bool bTargetEffected = false;		if (pSlayer->isFlag(Effect::EFFECT_CLASS_REGENERATION))			bTargetEffected = true;			int RemainMP = (int)pSlayer->getMP(ATTR_CURRENT) - (int)pSkillInfo->getConsumeMP();		bool bModifyMP = false;		if (RemainMP >= 0 && verifyRunTime(pSkillSlot) && 			pZone->getZoneLevel(pSlayer->getX(), pSlayer->getY()) != 0			&& bTargetEffected == false			)		{			pSlayer->setMP(RemainMP , ATTR_CURRENT);			bModifyMP = true;		}		// 扁贱己傍伏 八刘.		if (bModifyMP && (ToHit + SkillLevel > Random(0, 100))) 		{			// Effect Object甫 积己茄促.			EffectRegeneration * pEffectRegeneration = new EffectRegeneration (pSlayer);			HP_t generationHP = computeSkillDamage(pSkillSlot, pSkillInfo);	// 犁积登绰 HP狼 醚 剧.			Duration_t Duration = max(1, (int)10);			pEffectRegeneration->setDelay(REGENERATION_DELAY);  			pEffectRegeneration->setDeadline(Duration * 10);			pEffectRegeneration->setPoint(generationHP / (Duration*10 / REGENERATION_DELAY));			pEffectRegeneration->affect(pSlayer);			// Creature俊 Effect Flag甫 On 矫挪促.			pSlayer->setFlag(Effect::EFFECT_CLASS_REGENERATION);			// Creature狼 effectManager俊 捞 Effect甫 眠啊矫挪促.			pSlayer->addEffect(pEffectRegeneration);			_GCSkillToSelfOK1.addShortData(MODIFY_CURRENT_MP , RemainMP);			_GCSkillToSelfOK1.setSkillType(SkillType);			_GCSkillToSelfOK1.setCEffectID(CEffectID);			_GCSkillToSelfOK1.setDuration(Duration * 10);					_GCSkillToSelfOK2.setObjectID(pSlayer->getObjectID());			_GCSkillToSelfOK2.setSkillType(SkillType);			_GCSkillToSelfOK2.setDuration(Duration * 10);					// Send Packet			pPlayer->sendPacket(&_GCSkillToSelfOK1);					pZone->broadcastPacket(pSlayer->getX(), pSlayer->getY(), &_GCSkillToSelfOK2, pSlayer);			pSkillSlot->setRunTime();		} else {			_GCSkillFailed1.setSkillType(getSkillType());			if (bModifyMP)				_GCSkillFailed1.addShortData(MODIFY_CURRENT_MP, RemainMP);			pPlayer->sendPacket(&_GCSkillFailed1);			_GCSkillFailed2.setObjectID(pSlayer->getObjectID());	//		_GCSkillFailed2.setTargetObjectID(pSlayer->getObjectID());			_GCSkillFailed2.setSkillType(SkillType);			pZone->broadcastPacket(pSlayer->getX(), pSlayer->getY(), &_GCSkillFailed2, pSlayer);		}	} 	catch(Throwable & t) 	{		GCSkillFailed1 _GCSkillFailed1;		_GCSkillFailed1.setSkillType(getSkillType());		pSlayer->getPlayer()->sendPacket(&_GCSkillFailed1);		//cout << t.toString() << endl;	}	//cout << "TID[" << Thread::self() << "]" << getSkillHandlerName() << " End" << endl;	*/	__END_CATCH}RegenerationSkill g_RegenerationSkill;

⌨️ 快捷键说明

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