BOOL CClientCmdHandler::OnCmdNewCharAck( UINT16 wCommandID, UINT64 u64ConnID, CBufferHelper *pBufferHelper )
{
	StCharNewCharAck CharNewCharAck;
	pBufferHelper->Read(CharNewCharAck);

	CHECK_PAYER_ID(CharNewCharAck.CharPickInfo.u64CharID);

	return TRUE;
}
BOOL ClientEngine::OnCmdConnectNotify(UINT16 wCommandID, UINT64 u64ConnID, CBufferHelper *pBufferHelper)
{
	StConnectNotify ConnectNotify;

	pBufferHelper->Read(ConnectNotify);

	UINT32 ConType = ConnectNotify.btConType;

	ConnectNotify.btConType =  TYPE_CLT_PLAYER;

	ConnectNotify.u64ConnID = m_u64ClientID;

	CBufferHelper WriteHelper(TRUE, &m_WriteBuffer);

	WriteHelper.BeginWrite(CMD_CONNECT_NOTIFY, CMDH_SVR_CON, 0, 0);

	WriteHelper.Write(ConnectNotify);

	WriteHelper.EndWrite();

	SendData(m_WriteBuffer.GetData(), m_WriteBuffer.GetDataLenth());

	if(ConType == TYPE_SVR_PROXY)
	{
		StCharEnterGameReq CharEnterGameReq;

		CharEnterGameReq.u64CharID = m_u64ClientID;

		CharEnterGameReq.dwIdentifyCode = m_dwIdentifyCode;

		CHECK_PAYER_ID(m_u64ClientID);

		CBufferHelper WriteHelper(TRUE, &m_WriteBuffer);

		WriteHelper.BeginWrite(CMD_CHAR_ENTER_GAME_REQ, CMDH_SENCE, 0, CharEnterGameReq.u64CharID);

		WriteHelper.Write(CharEnterGameReq);

		WriteHelper.EndWrite();

		SendData(m_WriteBuffer.GetData(),m_WriteBuffer.GetDataLenth());
	}
	else if(ConType == TYPE_SVR_LOGIN)
	{
		SetConnectState(Succ_Connect);
	}

	return 0;
}
BOOL ClientEngine::OnCmdPickCharAck( UINT16 wCommandID, UINT64 u64ConnID, CBufferHelper *pBufferHelper )
{
	StCharPickCharAck CharPickCharAck;
	pBufferHelper->Read(CharPickCharAck);

	CHECK_PAYER_ID(CharPickCharAck.u64CharID);

	if(CharPickCharAck.nRetCode == E_SUCCESSED)
	{
		DisConnect();
		m_u64ClientID = CharPickCharAck.u64CharID;
		m_dwIdentifyCode = CharPickCharAck.dwIdentifyCode;
		ConnectToServer(CharPickCharAck.szIpAddr, CharPickCharAck.sPort);
	}

	return TRUE;
}
BOOL CClientCmdHandler::SendDelCharReq( UINT32 dwAccountID,UINT64 dwCharID )
{
	StCharDelCharReq CharDelCharReq;
	CharDelCharReq.dwAccountID = dwAccountID;
	CharDelCharReq.u64CharID    = dwCharID;
	CBufferHelper WriteHelper(TRUE, m_ClientConnector.GetWriteBuffer());

	CHECK_PAYER_ID(dwCharID);

	WriteHelper.BeginWrite(CMD_CHAR_DEL_CHAR_REQ, 0, 0, 0);

	WriteHelper.Write(CharDelCharReq);

	WriteHelper.EndWrite();

	m_ClientConnector.SendData(m_ClientConnector.GetWriteBuffer()->GetData(), m_ClientConnector.GetWriteBuffer()->GetDataLenth());

	return TRUE;
}
BOOL CClientCmdHandler::OnCmdEnterGameAck( UINT16 wCommandID, UINT64 u64ConnID, CBufferHelper *pBufferHelper )
{
	StCharEnterGameAck CharEnterGameAck;

	pBufferHelper->Read(CharEnterGameAck);

	m_HostPlayer.ReadFromBuffer(pBufferHelper);

	CHECK_PAYER_ID(m_HostPlayer.GetObjectID());

	m_HostPlayer.m_ObjectStatus.nDir = rand()%4+1; 

	g_EnterCount++;
	printf("%s己成功进入游戏服,总人数:%d\n",m_strRoleName.c_str(), g_EnterCount);

	m_dwHostState = ST_EnterGame;

	return TRUE;
}
BOOL CClientCmdHandler::SendPickCharReq( UINT64 u64CharID )
{
	StCharPickCharReq CharPickCharReq;
	CharPickCharReq.u64CharID = u64CharID;

	CBufferHelper WriteHelper(TRUE, m_ClientConnector.GetWriteBuffer());

	CHECK_PAYER_ID(u64CharID);

	WriteHelper.BeginWrite(CMD_CHAR_PICK_CHAR_REQ, 0, 0, 0);

	WriteHelper.Write(CharPickCharReq);

	WriteHelper.EndWrite();

	m_ClientConnector.SendData(m_ClientConnector.GetWriteBuffer()->GetData(), m_ClientConnector.GetWriteBuffer()->GetDataLenth());

	return TRUE;
}
BOOL CClientCmdHandler::OnCmdEnterGameAck( UINT16 wCommandID, UINT64 u64ConnID, CBufferHelper *pBufferHelper )
{
	StCharEnterGameAck CharEnterGameAck;

	pBufferHelper->Read(CharEnterGameAck);

	m_HostPlayer.ReadFromBuffer(pBufferHelper);

	CHECK_PAYER_ID(m_HostPlayer.GetObjectID());

	printf("登录成功!");

	m_bLoginOK = TRUE;

	((CTestClientDlg*)AfxGetMainWnd())->m_SceneView.Invalidate();

	((CTestClientDlg*)AfxGetMainWnd())->SetWindowText((LPCTSTR)m_HostPlayer.m_szObjectName);

	return TRUE;
}
BOOL CClientCmdHandler::SendMoveReq( FLOAT x, FLOAT y, FLOAT z, UINT16 nDir)
{
	StCharMoveReq _MoveGs;
	_MoveGs.x = x;
	_MoveGs.y = y;
	_MoveGs.z = z;
	_MoveGs.sDir = nDir;

	CBufferHelper WriteHelper(TRUE, m_ClientConnector.GetWriteBuffer());

	WriteHelper.BeginWrite(CMD_CHAR_MOVE_REQ, CMDH_SENCE, 12, m_HostPlayer.GetObjectID());

	WriteHelper.Write(_MoveGs);

	WriteHelper.EndWrite();

	CHECK_PAYER_ID(m_HostPlayer.GetObjectID());

	m_ClientConnector.SendData(m_ClientConnector.GetWriteBuffer()->GetData(), m_ClientConnector.GetWriteBuffer()->GetDataLenth());

	return TRUE;
}