From e2d640b508325dfea2ca9026a1a6d97c7f20b0e8 Mon Sep 17 00:00:00 2001 From: Tungdv Date: Fri, 2 Jan 2026 14:10:57 +0700 Subject: [PATCH] fix: update logic swim (error in get dir == vector3.zero when swim). --- .../Scripts/Managers/EC_HPWorkMove.cs | 2 + Assets/Scripts/CECHostPlayer.cs | 47 ++++++++++++++++++- 2 files changed, 47 insertions(+), 2 deletions(-) diff --git a/Assets/PerfectWorld/Scripts/Managers/EC_HPWorkMove.cs b/Assets/PerfectWorld/Scripts/Managers/EC_HPWorkMove.cs index 7f8adcb669..1654e59db6 100644 --- a/Assets/PerfectWorld/Scripts/Managers/EC_HPWorkMove.cs +++ b/Assets/PerfectWorld/Scripts/Managers/EC_HPWorkMove.cs @@ -766,6 +766,8 @@ namespace BrewMonster.Scripts float na, fMaxSpeed; bool bInAir; + Debug.LogError("Tick_FlySwim m_pHost.m_dwMoveRelDir = " + m_pHost.m_dwMoveRelDir); + if (m_pHost.m_iMoveEnv == (int)MoveEnvironment.MOVEENV_AIR) { bInAir = true; diff --git a/Assets/Scripts/CECHostPlayer.cs b/Assets/Scripts/CECHostPlayer.cs index 2ffc155f5b..34a6c30d68 100644 --- a/Assets/Scripts/CECHostPlayer.cs +++ b/Assets/Scripts/CECHostPlayer.cs @@ -327,7 +327,7 @@ namespace BrewMonster // Update GFXs UpdateGFXs(Time.deltaTime); - //m_dwMoveRelDir = 0; + m_dwMoveRelDir = 0; m_fVertSpeed = 0.0f; // Auto team / Automatic party grouping @@ -2346,7 +2346,48 @@ namespace BrewMonster return; }*/ if (!CanDo(ActionCanDo.CANDO_MOVETO)) return; - + if(joystick.Vertical > 0) + { + if(joystick.Horizontal > 0) + { + m_dwMoveRelDir |= (uint)(MOVE_DIR.MD_FORWARD | MOVE_DIR.MD_RIGHT); + } + else if(joystick.Horizontal < 0) + { + m_dwMoveRelDir |= (uint)(MOVE_DIR.MD_FORWARD | MOVE_DIR.MD_LEFT); + } + else + { + m_dwMoveRelDir |= (uint)MOVE_DIR.MD_FORWARD; + } + } + else if (joystick.Vertical < 0) + { + if (joystick.Horizontal > 0) + { + m_dwMoveRelDir |= (uint)(MOVE_DIR.MD_BACK | MOVE_DIR.MD_RIGHT); + } + else if (joystick.Horizontal < 0) + { + m_dwMoveRelDir |= (uint)(MOVE_DIR.MD_BACK | MOVE_DIR.MD_LEFT); + } + else + { + m_dwMoveRelDir |= (uint)MOVE_DIR.MD_BACK; + } + } + else + { + if (joystick.Horizontal > 0) + { + m_dwMoveRelDir |= (uint)(MOVE_DIR.MD_RIGHT); + } + else if (joystick.Horizontal < 0) + { + m_dwMoveRelDir |= (uint)(MOVE_DIR.MD_LEFT); + } + } + Debug.LogError("m_dwMoveRelDir = " + m_dwMoveRelDir); bool bPushMove = true; /* if (Msg.dwParam1 == 8 || Msg.dwParam1 == 9) { @@ -5080,7 +5121,9 @@ namespace BrewMonster int iNewEnv = Move_environment.MOVEENV_GROUND; if (CheckWaterMoveEnv(vPos, m_GndInfo.fWaterHei, vAABBGnd.y)) + { iNewEnv = Move_environment.MOVEENV_WATER; + } if (iNewEnv == Move_environment.MOVEENV_GROUND && GetPos().y - vAABBGnd.y < 0.2f && bIsInAir && EC_Utility.ToVector3(GetPos()) != m_MoveCtrl.GetLastSevPos())