diff --git a/Assets/PerfectWorld/Scripts/Move/CECHostMove.cs b/Assets/PerfectWorld/Scripts/Move/CECHostMove.cs index d52ed0847a..86315851e7 100644 --- a/Assets/PerfectWorld/Scripts/Move/CECHostMove.cs +++ b/Assets/PerfectWorld/Scripts/Move/CECHostMove.cs @@ -346,6 +346,7 @@ namespace BrewMonster { public bool IsStop() { return m_bStop; } // Get host's last position sent to server public Vector3 GetLastSevPos() { return m_vLastSevPos; } + public bool GetSlideLock() { return m_bSlideLock; } } public struct CDR_INFO { diff --git a/Assets/Scripts/CECHostPlayer.cs b/Assets/Scripts/CECHostPlayer.cs index 0ecf4b710b..4d2f2aea67 100644 --- a/Assets/Scripts/CECHostPlayer.cs +++ b/Assets/Scripts/CECHostPlayer.cs @@ -92,6 +92,7 @@ namespace BrewMonster private A3DVECTOR3 g_vOrigin = new A3DVECTOR3(0f); private Transform playerTransform; private float EC_SLOPE_Y = 0.5f; + int m_iOldWalkMode = Move_Mode.MOVE_STAND; // Copy of work mode // ====== Ground cast config ====== [Header("Ground Cast")] @@ -3389,7 +3390,7 @@ namespace BrewMonster // m_GndInfo.fGndHei = pWorld.GetTerrainHeight(vPos, &m_GndInfo.vGndNormal); // Test whether last pos is in air - A3DVECTOR3 vGndPos0, vTestPos0 = m_MoveCtrl.GetLastSevPos() + g_vAxisY * m_aabbServer.Extents.y; + Vector3 vGndPos0 = Vector3.zero, vTestPos0 = m_MoveCtrl.GetLastSevPos() + g_vAxisY * m_aabbServer.Extents.y; VertRayTrace(vTestPos0, vGndPos0, m_GndInfo.vGndNormal); m_GndInfo.fGndHei = vGndPos0.y; @@ -3405,46 +3406,46 @@ namespace BrewMonster A3DVECTOR3 vGndPos, vTestPos = vPos + g_vAxisY * m_aabbServer.Extents.y; VertRayTrace(vTestPos, vGndPos, m_GndInfo.vGndNormal); m_GndInfo.fGndHei = vGndPos.y; - m_GndInfo.fWaterHei = pWorld.GetWaterHeight(vTestPos); + //m_GndInfo.fWaterHei = pWorld.GetWaterHeight(vTestPos); //@note : use the aabb trace. By Kuiwu[12/10/2005] VertAABBTrace(vTestPos, m_aabbServer.Extents, vAABBGnd, m_GndInfo.vGndNormal); vAABBGnd.y -= m_aabbServer.Extents.y; //@note : By Kuiwu[12/10/2005] - int iNewEnv = MOVEENV_GROUND; - if (CheckWaterMoveEnv(vPos, m_GndInfo.fWaterHei, vAABBGnd.y)) - iNewEnv = MOVEENV_WATER; + int iNewEnv = Move_environment.MOVEENV_GROUND; + //if (CheckWaterMoveEnv(vPos, m_GndInfo.fWaterHei, vAABBGnd.y)) + // iNewEnv = Move_environment.MOVEENV_WATER; // ·ÉÌì¹ÒÎÊÌâ - if (iNewEnv == MOVEENV_GROUND && GetPos().y - vAABBGnd.y < 0.2f && bIsInAir && GetPos() != m_MoveCtrl.GetLastSevPos()) - { - m_MoveCtrl.SendMoveCmd(GetPos(), 2, g_vAxisY, m_CDRInfo.vAbsVelocity, m_iMoveMode, true); - // BubbleText(BUBBLE_LEVELUP, 0); - } + //if (iNewEnv == Move_environment.MOVEENV_GROUND && GetPos().y - vAABBGnd.y < 0.2f && bIsInAir && GetPos() != m_MoveCtrl.GetLastSevPos()) + //{ + // m_MoveCtrl.SendMoveCmd(GetPos(), 2, g_vAxisY, m_CDRInfo.vAbsVelocity, m_iMoveMode, true); + // // BubbleText(BUBBLE_LEVELUP, 0); + //} - if (iNewEnv == MOVEENV_GROUND) + if (iNewEnv == Move_environment.MOVEENV_GROUND) { m_GndInfo.bOnGround = true; // if (vPos.y > m_GndInfo.fGndHei + 0.2f) - if (m_CDRInfo.vTPNormal.IsZero()) + if (m_CDRInfo.vTPNormal == Vector3.zero) { - if (m_iMoveMode != MOVE_FREEFALL) - m_iMoveMode = MOVE_FREEFALL; + if (m_iMoveMode != (int)MoveMode.MOVE_FREEFALL) + m_iMoveMode = (int)MoveMode.MOVE_FREEFALL; m_GndInfo.bOnGround = false; if (IsJumping() && m_CDRInfo.vAbsVelocity.y < 0.0f && vPos.y - vAABBGnd.y < 0.6f) { - PlayAction(ACT_JUMP_LAND, false); + PlayAction((int)PLAYER_ACTION_TYPE.ACT_JUMP_LAND, false); } } else { if (IsJumping() && m_CDRInfo.vAbsVelocity.y < 0.0f && vPos.y - vAABBGnd.y < 0.6f) { - PlayAction(ACT_JUMP_LAND, false); + PlayAction((int)PLAYER_ACTION_TYPE.ACT_JUMP_LAND, false); ResetJump(); } @@ -3453,42 +3454,42 @@ namespace BrewMonster { if (!m_MoveCtrl.GetSlideLock()) { - if (m_iMoveMode != MOVE_SLIDE) + if (m_iMoveMode != (int)MoveMode.MOVE_SLIDE) { m_iOldWalkMode = m_iMoveMode; - m_iMoveMode = MOVE_SLIDE; + m_iMoveMode = (int)MoveMode.MOVE_SLIDE; } } else { m_MoveCtrl.SetSlideLock(false); - m_iMoveMode = MOVE_STAND; + m_iMoveMode = (int)MoveMode.MOVE_STAND; } } else { m_MoveCtrl.SetSlideLock(false); - if (m_iMoveMode == MOVE_FREEFALL) + if (m_iMoveMode == (int)MoveMode.MOVE_FREEFALL) { - m_iMoveMode = MOVE_STAND; + m_iMoveMode = (int)MoveMode.MOVE_STAND; } - else if (m_iMoveMode == MOVE_SLIDE) + else if (m_iMoveMode == (int)MoveMode.MOVE_SLIDE) m_iMoveMode = m_iOldWalkMode; } } } - else if (iNewEnv == MOVEENV_WATER) - { - m_CDRInfo.fYVel = 0.0f; + //else if (iNewEnv == MOVEENV_WATER) + //{ + // m_CDRInfo.fYVel = 0.0f; - if (m_iMoveMode == MOVE_SLIDE) - { - if (m_pWorkMan.IsMoving()) - m_iMoveMode = MOVE_MOVE; - else - m_iMoveMode = MOVE_STAND; - } - } + // if (m_iMoveMode == MOVE_SLIDE) + // { + // if (m_pWorkMan.IsMoving()) + // m_iMoveMode = MOVE_MOVE; + // else + // m_iMoveMode = MOVE_STAND; + // } + //} m_iMoveEnv = iNewEnv; }