📄 skillobjectfirstunit_recover.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 + -