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

📄 skillobjectfirstunit_recover.cpp

📁 墨香最新私服
💻 CPP
字号:
// SkillObjectFirstUnit_Recover.cpp: implementation of the CSkillObjectFirstUnit_Recover class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "SkillObjectFirstUnit_Recover.h"
#include "SkillInfo.h"


//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

CSkillObjectFirstUnit_Recover::CSkillObjectFirstUnit_Recover(SKILLINFO* pSkillInfo)
: CSkillObjectFirstUnit(pSkillInfo)
{
	m_Attrib = pSkillInfo->Attrib;
}

CSkillObjectFirstUnit_Recover::~CSkillObjectFirstUnit_Recover()
{

}

void CSkillObjectFirstUnit_Recover::Init(CSkillInfo* pSkillInfo,WORD SkillLevel)
{
	m_RecoverLife = pSkillInfo->GetSkillInfo()->FirstRecoverLife[SkillLevel-1];
	m_RecoverNaeRyuk = pSkillInfo->GetSkillInfo()->FirstRecoverNaeRyuk[SkillLevel-1];

	CSkillObjectFirstUnit::Init(pSkillInfo,SkillLevel);
}

#ifdef _MAPSERVER_

#include "AttackManager.h"

void CSkillObjectFirstUnit_Recover::ExcuteFirstUnit(CObject* pOperator,CSkillObjectTargetList* pTargetList,
												   MSG_SKILLOBJECT_ADD* pAddMsg)
{
	CTargetListIterator iter(&pAddMsg->TargetList);
	STLIST* pList;
	RESULTINFO resultinfo;
		
	pTargetList->SetPositionHead();
	while(pList = pTargetList->GetNextTargetList())
	{
		resultinfo.Clear();
		
		if(pList->bTargetKind & SKILLRESULTKIND_POSITIVE)
		{
			ATTACKMGR->RecoverLife(pOperator,pList->pObject,m_Attrib,m_RecoverLife,&resultinfo);
			ATTACKMGR->RecoverNaeRyuk(pOperator,pList->pObject,m_Attrib,m_RecoverNaeRyuk,&resultinfo);
		}
		
		DefaultFirstEffect(pOperator,pList,&resultinfo);

		iter.AddTargetWithResultInfo(pList->pObject->GetID(),pList->bTargetKind,&resultinfo);
	}
	iter.Release();
}

#endif



#ifdef _MHCLIENT_
#include "ObjectActionManager.h"
#include "ObjectManager.h"


void CSkillObjectFirstUnit_Recover::StartFirstEffect(CObject* pOperator,CTargetList* pTList,MAINTARGET* pMainTarget)
{
	DWORD EffectFlag = 0;
	if(pOperator->GetID() == HEROID)
		EffectFlag |= EFFECT_FLAG_HEROATTACK;
	if(m_pSkillInfoData->FatalDamage)
		EffectFlag |= EFFECT_FLAG_FATALDAMAGE;
	
	m_hEff = EFFECTMGR->StartEffectProcessWithTargetList(m_pSkillInfoData->EffectUse,pOperator,pTList,pMainTarget,EffectFlag);

	ASSERTMSG(m_hEff,"公傍 矫累 捞棋飘俊 坷幅啊 乐嚼聪促.");
	if(pTList)		// 雀汗篮 捞棋飘俊辑 贸府 救秦林扁 锭巩俊 公炼扒 秦具 茄促.
	{
		CTargetListIterator iter(pTList);
		CObject* pObject;
		RESULTINFO rinfo;
		while(iter.GetNextTarget())
		{
			pObject = OBJECTMGR->GetObject(iter.GetTargetID());
			iter.GetTargetData(&rinfo);
			if(pObject == NULL)
				continue;
	
			OBJECTACTIONMGR->ApplyResult(pObject,pOperator,&rinfo,eDamageKind_Front);
		}
		iter.Release();
	}
	
}

void CSkillObjectFirstUnit_Recover::SetTargetArray(CObject* pOperator,CTargetList* pTList,MAINTARGET* pMainTarget)
{	
	CTargetListIterator iter(pTList);
	CObject* pObject;
	RESULTINFO rinfo;
	while(iter.GetNextTarget())
	{
		pObject = OBJECTMGR->GetObject(iter.GetTargetID());
		iter.GetTargetData(&rinfo);
		if(pObject == NULL)
			continue;

		OBJECTACTIONMGR->ApplyResult(pObject,pOperator,&rinfo,eDamageKind_Front);
	}
	iter.Release();
}
#endif

⌨️ 快捷键说明

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