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

📄 jumpstate.cpp

📁 奇迹世界 部分源代码奇迹世界 部分源代码奇迹世界 部分源代码
💻 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 + -