void SyncPushMoveToServer(bool bStop) { ECGameSession gs = ECGameSession.Instance(); GP_MOVE_FLAG eMoveFlags = GP_MOVE_FLAG.GP_MOVE_NONE; if (bStop) { eMoveFlags |= GP_MOVE_FLAG.GP_MOVE_STOP; } else { eMoveFlags |= GP_MOVE_FLAG.GP_MOVE_WALK; } Vector3 dir = m_Trans.position - m_vLastNotifyPos; if (dir == Vector3.zero) dir = m_Trans.forward; dir.y = 0; dir = Vector3.Normalize(dir); ushort nMoveDir = ECUtility.CompressDirH2(dir.x, dir.z); ushort nFaceDir = nMoveDir; ushort nFlags = (ushort)eMoveFlags; ushort nDeltaTime = (ushort)(Mathf.Ceil(1000.0f * ECHostComponentInfo.m_fSyncPushMoveTimer)); //if (nDeltaTime == 0) return; if (!m_bIsSkillMove) { player_move cmd = new player_move(); cmd.pos = m_Trans.position; if (!AutoMove.exp_GetPixel(cmd.pos.x, cmd.pos.z)) { Debug.LogWarning(string.Format("发送 x = {0}, z = {1}",cmd.pos.x, cmd.pos.z)); } cmd.flags = nFlags; cmd.timestamp = ECGame.Instance.TimeMgr.GetSeverTimeStampDelta(); cmd.move_dir = nMoveDir; cmd.face_dir = nFaceDir; cmd.use_time = nDeltaTime; cmd.speed = (ushort)ECUtility.FLOATTOFIX8(m_fSpeed); cmd.move_stamp = ECTimeManager.MoveStampSn; gs.SendGameData(cmd); } else { player_skill_move cmd = new player_skill_move(); cmd.pos = m_Trans.position; cmd.timestamp = ECGame.Instance.TimeMgr.GetSeverTimeStampDelta(); cmd.flags = nFlags; cmd.move_dir = nMoveDir; cmd.use_time = nDeltaTime; cmd.speed = (ushort)ECUtility.FLOATTOFIX8(m_fSpeed); cmd.move_stamp = ECTimeManager.MoveStampSn; cmd.face_dir = 0; gs.SendGameData(cmd); } if (!bStop) { ECHostComponentInfo.m_fSyncPushMoveTimer -= nDeltaTime * 0.001f; } else { ECHostComponentInfo.m_fSyncPushMoveTimer = 0; // stop_run cmdStopRun = new stop_run(); // cmdStopRun.type = 1; // // gs.SendGameData(cmdStopRun); } }
void SyncPushMoveToServer(bool bStop) { //Debug.LogWarning("ECHPMoveBehavior SyncPushMoveToServer" + bStop); ECGameSession gs = ECGameSession.Instance(); GP_MOVE_FLAG eMoveFlags = GP_MOVE_FLAG.GP_MOVE_NONE; if (bStop) { eMoveFlags |= GP_MOVE_FLAG.GP_MOVE_STOP; } else { eMoveFlags |= GP_MOVE_FLAG.GP_MOVE_WALK; } ushort nMoveDir = ECUtility.CompressDirH2(m_vDir.x, m_vDir.z); ushort nFaceDir = nMoveDir; ushort nFlags = (ushort)eMoveFlags; ushort nDeltaTime = (ushort)(Mathf.Ceil(1000.0f * ECHostComponentInfo.m_fSyncPushMoveTimer)); //if (nDeltaTime == 0) return; //if (nDeltaTime == 0) //{ // Debug.Log("out + " + m_Trans.position + nDeltaTime); //} if (!m_bIsSkillMove) { player_move cmd = new player_move(); cmd.pos = m_Trans.position; cmd.flags = nFlags; cmd.timestamp = ECGame.Instance.TimeMgr.GetSeverTimeStampDelta(); cmd.move_dir = nMoveDir; cmd.face_dir = nFaceDir; cmd.use_time = nDeltaTime; cmd.speed = (ushort)ECUtility.FLOATTOFIX8(m_fSpeed); cmd.move_stamp = ECTimeManager.MoveStampSn; gs.SendGameData(cmd); } else { player_skill_move cmd = new player_skill_move(); cmd.pos = m_Trans.position; cmd.timestamp = ECGame.Instance.TimeMgr.GetSeverTimeStampDelta(); cmd.flags = nFlags; cmd.move_dir = nMoveDir; cmd.use_time = nDeltaTime; cmd.speed = (ushort)ECUtility.FLOATTOFIX8(m_fSpeed); cmd.move_stamp = ECTimeManager.MoveStampSn; cmd.face_dir = 0; gs.SendGameData(cmd); } if (!bStop) { ECHostComponentInfo.m_fSyncPushMoveTimer -= nDeltaTime * 0.001f; } else { ECHostComponentInfo.m_fSyncPushMoveTimer = 0; // stop_run cmdStopRun = new stop_run(); // cmdStopRun.type = 1; // // gs.SendGameData(cmdStopRun); } }