fix distance stop npc

This commit is contained in:
VDH
2025-12-22 15:12:20 +07:00
parent d5fdcc73b3
commit b0c566bef5
2 changed files with 11 additions and 7 deletions
+10 -5
View File
@@ -668,13 +668,18 @@ public class CECNPC : CECObject
A3DVECTOR3 vDir = m_vServerPos - vCurPos;
float fDist = vDir.Normalize();
A3DVECTOR3 vPos = vDir * m_fMoveSpeed * deltaTime;
float fMoveDelta = Vector3.Magnitude(EC_Utility.ToVector3(vPos) - EC_Utility.ToVector3(vCurPos));
// If already very close to destination, consider it reached
A3DVECTOR3 exPPos = vPos + EC_Utility.ToA3DVECTOR3(transform.position);
float fMoveDelta = Vector3.Magnitude(EC_Utility.ToVector3(exPPos) - EC_Utility.ToVector3(vCurPos));
if (fMoveDelta >= fDist)
{
if (-2041570812 == m_NPCInfo.nid)
{
BMLogger.LogError($"HoangDev: m_vServerPos:{m_vServerPos},vCurPos:{vCurPos},vDir:{vDir},fDist:{fDist},vPos:{vPos},fMoveDelta:{fMoveDelta}");
}
// Already at destination
_characterController.enabled = false;
SetPos( EC_Utility.ToVector3(m_vServerPos));
SetPos(EC_Utility.ToVector3(m_vServerPos));
_characterController.enabled = true;
bRet = true;
}
@@ -692,7 +697,7 @@ public class CECNPC : CECObject
{
// Teleport nếu lag xa
_characterController.enabled = false;
SetPos( EC_Utility.ToVector3(m_vServerPos));
SetPos(EC_Utility.ToVector3(m_vServerPos));
_characterController.enabled = true;
m_vStopDir = EC_Utility.ToA3DVECTOR3(transform.forward);
@@ -1124,7 +1129,7 @@ public class CECNPC : CECObject
{
if (-2041570812 == m_NPCInfo.nid)
{
BMLogger.LogError("CECNPC::SetPos,else pos="+ pos);
BMLogger.LogError("CECNPC::SetPos,else pos=" + pos);
}
transform.position = pos;
}
+1 -2
View File
@@ -567,7 +567,6 @@ MonoBehaviour:
vis_tid: 0
m_iMMIndex: 0
m_idAttackTarget: 0
m_npcUI: {fileID: 0}
m_fMoveSpeed: 0
_characterController: {fileID: -2400324395862947468}
isDebug: 0
@@ -606,7 +605,7 @@ CharacterController:
m_Enabled: 1
serializedVersion: 3
m_Height: 2
m_Radius: 0.5
m_Radius: 0
m_SlopeLimit: 45
m_StepOffset: 0.3
m_SkinWidth: 0.08