协同座位

索引

接口
描述
RegisterRiderSeat客户端注册协同骑乘座位
SetSeatBroadcastInterval客户端设置协同骑乘座位广播间隔
SetPlayerVehicleRotation客户端设置玩家当前协同座位的载具旋转角度
GetPlayerVehicleRotation客户端获取玩家当前协同座位的载具旋转角度
GetPlayerVehicleSeatIndex客户端获取玩家当前坐骑的协同骑乘座位的次序
  • LASystem.RegisterRiderSeat(xxx)
  • 或使用面向对象LASystem.Vehicle().RegisterRiderSeat(xxx)

RegisterRiderSeat

客户端

  • 描述
    注册协同骑乘座位

  • 参数

参数名数据类型说明
EntityNamestr载具实体名称,例如'minecraft:zombie'
SeatPosListlist[tuple[float, float, float]]同步填写该载具Json中的座位位置列表,每个元素为(x, y, z)三元组
PrivotPoslist[float, float, float]载具绑定la_vehicle_rotation_xla_vehicle_rotation_yla_vehicle_rotation_z的枢轴坐标(BlockBench中的坐标)
RenderJsonIdListlist[str]同步填写该载具Json中的座位Json文件Id列表,每个元素为Json文件Id,对应SeatPosList中的座位进行渲染。渲染玩家骑乘动作的Json文件Id,玩家骑乘动作的屁股必须位于(0, 0, 0)附近,且玩家的整个身体的位移、旋转都要绑定下面的自定义molang函数,且枢轴位于(0, 0, 0)处
EntityScalefloat同步填写该载具Json中载具实体缩放比例,默认1.0
  • 返回值

  • 备注

    • Molang数据,以下简写query.mod.开头
    Molang变量说明备注
    la_vehicle_rotation_x载具X轴旋转角度绑定在整个载具上,用于控制载具的倾斜(修改载具旋转角度);绑定在坐时玩家上,枢轴需要在玩家屁股中,且玩家屁股显示位于(0, 0, 0)附近用于控制玩家的倾斜(不要直接修改)
    la_vehicle_rotation_y载具Y轴旋转角度绑定在整个载具上,用于控制载具的倾斜(修改载具旋转角度);绑定在坐时玩家上,枢轴需要在玩家屁股中,且玩家屁股显示位于(0, 0, 0)附近用于控制玩家的倾斜(不要直接修改)
    la_vehicle_rotation_z载具Z轴旋转角度绑定在整个载具上,用于控制载具的倾斜(修改载具旋转角度);绑定在坐时玩家上,枢轴需要在玩家屁股中,且玩家屁股显示位于(0, 0, 0)附近用于控制玩家的倾斜(不要直接修改)
    la_vehicle_position_x载具X轴位置绑定在整个玩家上,用于控制玩家的位置(不要直接修改)
    la_vehicle_position_y载具Y轴位置绑定在整个玩家上,用于控制玩家的位置(不要直接修改)
    la_vehicle_position_z载具Z轴位置绑定在整个玩家上,用于控制玩家的位置(不要直接修改)
    • 载具实体json的seat需要加入以下字段:
    "lock_rider_rotation": 181,
    "rotate_rider_by": "query.mod.la_vehicle_rotation_y"
    

    最终效果如下:

    "minecraft:rideable": {
      "rider_can_interact": true,
      "interact_text": "开车",
      "family_types": [
        "player"
      ],
      "seat_count": 2,
      "seats": [
        {
          "position": [
            0.0,
            1.8,
            0.0
          ],
          "lock_rider_rotation": 181,
          "rotate_rider_by": "query.mod.la_vehicle_rotation_y"
        },
        {
          "position": [
            0.0,
            1.9,
            -0.5
          ],
          "lock_rider_rotation": 181,
          "rotate_rider_by": "query.mod.la_vehicle_rotation_y"
        }
      ]
    }
    
    • 通过修改载具实体的自定义Molang(la_vehicle_rotation_x, la_vehicle_rotation_y, la_vehicle_rotation_z)来控制载具旋转,协同座位将会生效。不过更推荐使用接口SetPlayerVehicleRotation来控制载具的旋转。

SetSeatBroadcastInterval

客户端

  • 描述
    设置协同骑乘座位广播间隔

  • 参数

参数名数据类型说明
Intervalfloat广播间隔,默认30次/秒
  • 返回值

  • 备注


SetPlayerVehicleRotation

客户端

  • 描述
    设置玩家当前协同座位的载具旋转角度。需要RegisterRiderSeat注册后的载具才能使用此接口设置。

  • 参数

参数名数据类型说明
Rotationtuple[float, float, float]载具旋转角度,默认(0.0, 0.0, 0.0)
  • 返回值

  • 备注


GetPlayerVehicleRotation

客户端

  • 描述
    获取玩家当前协同座位的载具旋转角度。需要RegisterRiderSeat注册后的载具才能使用此接口获取。

  • 参数

  • 返回值
    玩家当前协同座位的载具旋转角度 (tuple[float, float, float])

  • 备注


GetPlayerVehicleSeatIndex

客户端

  • 描述
    获取玩家当前坐骑的协同骑乘座位的次序。需要RegisterRiderSeat注册后的载具才能使用此接口获取。

  • 参数

  • 返回值
    玩家当前协同座位的载具旋转角度 (int)

  • 备注


评论交流

文档目录

灵免以太