diff --git a/Assets/PerfectWorld/Scripts/Managers/CECNPCMan.cs b/Assets/PerfectWorld/Scripts/Managers/CECNPCMan.cs index 9b716a501a..941257fdb8 100644 --- a/Assets/PerfectWorld/Scripts/Managers/CECNPCMan.cs +++ b/Assets/PerfectWorld/Scripts/Managers/CECNPCMan.cs @@ -137,7 +137,9 @@ public class CECNPCMan : CECObject, IMsgHandler } case CommandID.NPC_INFO_00: { - cmd_npc_info_00 pCmd = (cmd_npc_info_00)msg.dwParam1; + var buffer = (byte[])msg.dwParam1; + cmd_npc_info_00 pCmd = GPDataTypeHelper.FromBytes(buffer); + //cmd_npc_info_00 pCmd = MemoryMarshal.Read(buffer.AsSpan(0, cmd_npc_info_00.)); CECNPC pNPC = SeekOutNPC(pCmd.idNPC); if (pNPC) { diff --git a/Assets/PerfectWorld/Scripts/Managers/EC_HPWorkTrace.cs b/Assets/PerfectWorld/Scripts/Managers/EC_HPWorkTrace.cs index 18f35737a3..1498b51fc3 100644 --- a/Assets/PerfectWorld/Scripts/Managers/EC_HPWorkTrace.cs +++ b/Assets/PerfectWorld/Scripts/Managers/EC_HPWorkTrace.cs @@ -601,11 +601,11 @@ public class CECHPWorkTrace : CECHPWork { OnTouchTarget(); return true; - if (m_pTraceObject.CanTouchFrom(m_pHost.GetPos())) - { - OnTouchTarget(); - return true; - } + //if (m_pTraceObject.CanTouchFrom(m_pHost.GetPos())) + //{ + // OnTouchTarget(); + // return true; + //} } } m_bCheckTouch = true; @@ -873,6 +873,7 @@ public class CECHPWorkTrace : CECHPWork } vCurPos = m_pHost.m_MoveCtrl.GroundMove(m_vCurDirH, m_pHost.GetGroundSpeed(), fDeltaTime, m_pHost.m_fVertSpeed); + Debug.LogError(vCurPos); m_pHost.SetPos(EC_Utility.ToVector3(vCurPos)); //if (GetUseAutoPF() && CECIntelligentRoute::Instance().IsMoveOn()) //{ @@ -953,7 +954,7 @@ public class CECHPWorkTrace : CECHPWork } public A3DVECTOR3 GetCurMovingDest() { - return new A3DVECTOR3(); + return m_pTraceObject.GetTargetPos(); } public void UpdateUseAutoPF() { diff --git a/Assets/Scripts/CECHostPlayer.cs b/Assets/Scripts/CECHostPlayer.cs index c1cffc0200..967a427bec 100644 --- a/Assets/Scripts/CECHostPlayer.cs +++ b/Assets/Scripts/CECHostPlayer.cs @@ -178,8 +178,8 @@ public class CECHostPlayer : EC_Player // Trace a object if (iTraceReason == CECHPWorkTrace.Trace_reason.TRACE_ATTACK) { - //if (!CanDo(CANDO_MELEE)) - // return; + if (!CanDo(ActionCanDo.CANDO_MELEE)) + return; Debug.LogError("Attack"); NormalAttackObject(idTraceTarget, bForceAttack); } @@ -551,7 +551,8 @@ public class CECHostPlayer : EC_Player { if (Convert.ToInt32(Msg.dwParam2) == CommandID.SELECT_TARGET) { - cmd_select_target pCmd = (cmd_select_target)Msg.dwParam1; + var data = (byte[])Msg.dwParam1; + cmd_select_target pCmd = GPDataTypeHelper.FromBytes(data); m_idSelTarget = pCmd.idTarget; m_idUCSelTarget = 0; } diff --git a/Assets/Scripts/Move/CECHostMove.cs b/Assets/Scripts/Move/CECHostMove.cs index b38926fe57..dd3115dc98 100644 --- a/Assets/Scripts/Move/CECHostMove.cs +++ b/Assets/Scripts/Move/CECHostMove.cs @@ -286,7 +286,7 @@ public class CECHostMove //int idInst = g_pGame.GetGameRun().GetWorld().GetInstanceID(); //CECInstance pInstance = g_pGame.GetGameRun().GetInstance(idInst); //if (pInstance.GetLimitJump()) - fGravity *= 4.0f; + //fGravity *= 4.0f; CDR_INFO cdr = m_pHost.m_CDRInfo; var pos = m_pHost.m_aabbServer.Center;