DragonNest/Server/DNGameServer/MAAiCommand.cpp

49 lines
2.3 KiB
C++
Raw Normal View History

2024-12-20 16:56:44 +08:00
<EFBFBD><EFBFBD>
#include "stdafx.h"
#include "MAAiCommand.h"
#include "MAAiScript.h"
#include "DnBlow.h"
using namespace AICommand;
void MAAiCommand::MsgProc( MAAiScript* pAIScript, const UINT uiMsg, void* pParam )
{
switch( uiMsg )
{
case CMD_USESKILL:
{
SUseSkill* pUseSkill = static_cast<SUseSkill*>(pParam);
DnActorHandle hActor = pAIScript->GetActor();
if( hActor )
{
// <EFBFBD>¬<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>t<EFBFBD>|<EFBFBD>t<EFBFBD> <EFBFBD><EFBFBD>\<EFBFBD> <EFBFBD><EFBFBD≯<EFBFBD>¨<EFBFBD><EFBFBD><EFBFBD>.
hActor->ResetProcessSkill();
if( CDnSkill::UsingResult::Success == hActor->UseSkill( pUseSkill->iSkillIndex ) )
{
pAIScript->SetAIState( MAAiScript::AT_UseSkill );
}
}
break;
}
case CMD_REMOVEBLOW_BYSKILLINDEX:
{
SRemoveBlowBySkillIndex* pData = static_cast<SRemoveBlowBySkillIndex*>(pParam);
DnActorHandle hActor = pAIScript->GetActor();
if( hActor )
{
DNVector(DnBlowHandle) BlowList;
hActor->GetAllAppliedStateBlowBySkillID( pData->iSkillIndex, BlowList );
for( size_t i=0 ; i<BlowList.size() ; ++i )
{
DnBlowHandle hBlow = BlowList[i];
hActor->CmdRemoveStateEffect( hBlow->GetBlowIndex() );
}
}
break;
}
}
}