Skip to content
iPlugin

安排按钮与面板区域

从三行菜单出发,实际设置字符位置、局部槽位和底部导航。

本教程完成三件事:把钻石按钮放在第二行中央、把关闭按钮放在第三行中央,并能分清“面板第一格”和“窗口第一格”。图示可切换字符、序号和区域。

hello.yml配置效果示意 · 非游戏截图
窗口槽位 13窗口坐标 4x1面板局部坐标 4x1字符 A

同一份 hello.yml 的字符、槽位与局部坐标。

1. 打开用于练习的菜单

使用第一个菜单中的 hello.yml,保存到 plugins/Invero/workspace/hello.yml。这里不重复完整文件。

/invero menu reload
/invero menu open hello

它的上方窗口有三行:灰色玻璃作边框,钻石是消息按钮,屏障是关闭按钮。点击钻石发送“按钮工作正常!”,点击屏障执行 menu close。

2. 用字符确定两个按钮的位置

在 hello.yml 的第一个面板 panels[0] 中,保留下列 layout:

hello.yml 的 panels[0].layout 片段
layout:
  - '#########'
  - '#   A   #'
  - '####C####'

对应图标仍放在这个面板的 icons.A、icons.C 和 icons.'#' 中。字符只安排位置,材质、名称和动作由这些图标定义。

  1. 第二行的 A 前面有四格,所以它是从零开始的坐标 4x1。
  2. 第三行的 C 也是第五列,所以坐标为 4x2。
  3. 在图示切换到序号:它们分别是 13、22。不是第十三格和第二十二格的从一计数。
  4. 在图示切换到区域:这份菜单只有一个三行面板,两个按钮属于同一区域。

一行文字中空格也是位置。保留单引号,避免把行首或行尾空格删掉。

3. 给同一按钮改用 slot

不需要在布局里拼出长名字时,可以在图标下设置 slot。在 hello.yml 的 panels[0].icons.A 内增加:

追加到 panels[0].icons.A 内,保留原有外观和动作
slot: '4x1'

再在 panels[0].icons.C 内增加:

追加到 panels[0].icons.C 内,保留原有外观和动作
slot: 22

重载并打开 hello 后,两个按钮的位置、显示和点击效果都不改变。显式 slot 替换该图标的布局位置,不会因为同时留着 A、C 字符就多出一份按钮。

若需要移动钻石,只改 A.slot 即可;例如 slot: '3x1' 会让它向左一格,原来的中央格留空。练习完恢复 4x1,下载示例及上图仍以钻石槽位 13、屏障槽位 22 为准。

想放多个相同图标时可重复布局字符,或给 slot 写多个位置;全部范围和坐标写法见槽位参考。

4. 将内容与导航分成独立区域

需要独立维护底部导航时,可以把三行窗口划分为两行内容区和一行导航区。完整片段见普通面板组合:

  • menu.rows 保持 3。
  • panels[0] 从 locate: 0, 0 开始,高两行,放内容。
  • panels[1] 从 locate: 0, 2 开始,高一行,放关闭按钮。

要将第二个面板放在第三行,在它的节点内写:

panels 列表中的底部导航区域
- locate:
    - 0
    - 2
  layout:
    - '    C    '
  icons:
    C:
      material: BARRIER
      name: '&c关闭'
      action: 'menu close'

这里的屏障在导航面板内是局部槽位 4,在整个窗口中是槽位 22。填写图标的 slot 时,使用所在面板内的局部位置。

自动摆放并不保证面板矩形没有重叠;已知区域位置时显式写 locate。字段的必填、尺寸省略与嵌套规则见布局参考;窗口行数与玩家背包范围见窗口设置。

Last updated on