📄 jumpstate.cpp
字号:
#include "stdafx.h"
#include "JumpState.h"
#include <Protocol_CG.h>
#include <PacketStruct_CG.h>
JumpState::JumpState()
{
}
JumpState::~JumpState()
{
}
VOID JumpState::Init()
{
}
VOID JumpState::OnEnter( LPARAM param1, LPARAM param2, LPARAM param3 )
{
State::OnEnter( param1, param2, param3 );
SASSERT( m_pNPC->GetTargetChar(), "[JumpState::OnEnter] m_pNPC->GetTargetChar() == NULL" );
SASSERT( m_pNPC->GetField(), "[JumpState::OnEnter] m_pNPC->GetField() == NULL" );
WzVector wvCurPos, wvTargetPos;
// 泅犁 困摹 掘绢坷扁
m_pNPC->GetPos( &wvCurPos );
// 痢橇 格利瘤绰 鸥百 某腐磐狼 困摹肺 茄促.
m_pNPC->GetTargetChar()->GetPos( &wvTargetPos );
m_wvTargetPos = wvTargetPos;
// 痢橇 菩哦 焊郴扁
MSG_CG_SYNC_NPC_JUMP_BRD sendMsg;
sendMsg.m_byCategory = CG_SYNC;
sendMsg.m_byProtocol = CG_SYNC_NPC_JUMP_BRD;
sendMsg.dwObjectKey = m_pNPC->GetObjectKey();
sendMsg.wvStartPos = wvCurPos;
sendMsg.wvEndPos = wvTargetPos;
m_pNPC->SendPacketAround( &sendMsg, sizeof(sendMsg) );
// 鸥捞赣 悸泼
m_JumpTimer.SetTimer( (DWORD)param1 );
}
VOID JumpState::OnExit()
{
State::OnExit();
}
VOID JumpState::OnUpdate( DWORD dwDeltaTick )
{
__UNUSED(dwDeltaTick);
SASSERT( m_pNPC->GetTargetChar(), "[JumpState::OnUpdate] m_pNPC->GetTargetChar() == NULL" );
// 老沥 矫埃 扁促府促啊 困摹甫 碍力 悸泼窍绊 眠利 惑怕肺 倒酒埃促.
if( m_JumpTimer.IsExpired() )
{
m_pNPC->SetPos( &m_wvTargetPos );
if( m_pNPC->GetTargetChar() )
{
m_pNPC->ChangeState( STATE_ID_TRACK );
}
else
{
m_pNPC->ChangeState( STATE_ID_IDLE );
}
}
}
// 痢橇 惑怕俊辑绰 LeaveField 寇俊绰 促 公矫
VOID JumpState::OnAIMsg( AI_MSG *pMsg )
{
switch( pMsg->dwMsgID )
{
case AI_MSG_ID_LEAVE_FIELD:
OnMsgLeaveField( pMsg );
break;
}
}
// 痢橇 窍妨绊 沁绰单 鸥百捞 唱埃 版快
VOID JumpState::OnMsgLeaveField( AI_MSG *pMsg )
{
AI_MSG_LEAVE_FIELD *pLeaveMsg = (AI_MSG_LEAVE_FIELD*)pMsg;
m_pNPC->RemoveEnemy( pLeaveMsg->dwObjectKey );
m_pNPC->ChangeState( STATE_ID_WANDER );
}
// 饭明绊 公矫
VOID JumpState::OnMsgLetsGo( AI_MSG *pMsg )
{
}
// 利 惯斑 公矫
VOID JumpState::OnMsgEnemyFound( AI_MSG *pMsg )
{
}
// 痢橇惑怕啊 场唱搁 Follow(Idle)惑怕肺 汗蓖茄促.
VOID JumpState::OnMsgCommandFollow( AI_MSG *pMsg )
{
m_pNPC->SetTargetChar( NULL );
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -