예제 #1
0
        internal static void Execute(object msg, User user)
        {
            Msg_CRC_MoveMeetObstacle obstacle_msg = msg as Msg_CRC_MoveMeetObstacle;

            if (null == obstacle_msg)
            {
                return;
            }
            UserInfo userInfo = user.Info;

            if (userInfo != null)
            {
                MovementStateInfo msi = userInfo.GetMovementStateInfo();
                userInfo.GetMovementStateInfo().IsMoveMeetObstacle = true;

                if (!msi.IsSkillMoving)
                {
                    float x        = obstacle_msg.cur_pos_x;
                    float z        = obstacle_msg.cur_pos_z;
                    float velocity = (float)user.Info.GetActualProperty().MoveSpeed;
                    if (!user.VerifyPosition(x, z, velocity, obstacle_msg.send_time, 4.0f))
                    {
                        //todo:记录违规次数
                    }
                    msi.SetPosition2D(x, z);

                    user.SampleMoveData(obstacle_msg.cur_pos_x, obstacle_msg.cur_pos_z, velocity, msi.MoveDirCosAngle, msi.MoveDirSinAngle, obstacle_msg.send_time);
                }

                //LogSys.Log(LOG_TYPE.DEBUG, "MoveMeetObstacleHandler User:{0} isskillmoving:{1} ismovemeetobstacle:{2} time:{3} client time:{4}", user.RoleId, msi.IsSkillMoving, msi.IsMoveMeetObstacle, TimeUtility.GetServerMilliseconds(), obstacle_msg.send_time);
            }
        }
예제 #2
0
    internal static void Execute(object msg, NetConnection conn, NetworkSystem networkSystem)
    {
        Msg_CRC_MoveMeetObstacle obstacle_msg = msg as Msg_CRC_MoveMeetObstacle;

        if (null == obstacle_msg)
        {
            return;
        }
    }
예제 #3
0
    internal static void Execute(object msg, RoomPeer peer)
    {
        Msg_CRC_MoveMeetObstacle obstacle_msg = msg as Msg_CRC_MoveMeetObstacle;

        if (null == obstacle_msg)
        {
            return;
        }
        obstacle_msg.role_id = peer.RoleId;
        peer.BroadCastMsgToRoom(obstacle_msg);
    }