minecraft吧 关注:2,566,210贴子:32,054,074

回复:【基岩版】雪球菜单,不过雪球能正常使用,还有子菜单

只看楼主收藏回复

三、指令及解释
若无特别说明,所有命令方块,编号为1的是“循环、无条件、红石激活”,大于1的是“连锁、无条件、保持开启”。


IP属地:广东25楼2022-01-06 13:58
收起回复
    ① 检测部分
    a. 扔雪球检测和菜单项变更(通用)
    只检测刚产生的雪球:若第一次检测没能在雪球位置发现玩家,则在之后的检测中雪球也不会发挥作用。
    ★ 扔雪球检测部对应1~5:为玩家添加标签Menu_next → 补充雪球 → 重置计时 → 清除已作用的雪球 → 无效化全部雪球
    1:execute @e[type=snowball,tag=!Menu_deactivatedSnowBall]~~~ tag @p[r=2,tag=!Menu_deactivatedPlayer]add Menu_next
    2:execute @e[type=snowball,tag=!Menu_deactivatedSnowBall]~~~ give @p[r=2,tag=!Menu_deactivatedPlayer]snowball 1
    3:execute @e[type=snowball,tag=!Menu_deactivatedSnowBall]~~~ scoreboard players reset @p[r=2,tag=!Menu_deactivatedPlayer] Menu_time
    4:execute @a[tag=Menu_next] ~~~ kill@e[r=2,type=snowball]
    5:tag @e[type=snowball,tag=!Menu_deactivatedSnowBall]add Menu_deactivatedSnowBall
    ★ 菜单项变更对应6~10:抬头减1 → 向前看 执行 → 低头加1 → 向地看退出 → 结束操作
    6:scoreboard playersremove @a[tag=Menu_next,tag=!Menu_deactivatedPlayer,rx=-30] Menu_item 1
    7:tag @a[tag=Menu_next,tag=!Menu_deactivatedPlayer,rx=30,rxm=-30]add Menu_execute
    8:scoreboard playersadd @a[tag=Menu_next,tag=!Menu_deactivatedPlayer,rx=89.5,rxm=30] Menu_item 1
    9:tag @a[tag=Menu_next,tag=!Menu_deactivatedPlayer,rxm=89.5]add Menu_quit
    10:tag @a[tag=Menu_next,tag=!Menu_deactivatedPlayer]remove Menu_next


    IP属地:广东27楼2022-01-06 14:00
    回复
      2025-12-04 23:32:09
      广告
      不感兴趣
      开通SVIP免广告
      b. 超时检测与执行(主菜单,可选)
      ★ 比较无操作时间与进入时间 → 令Menu_time>timeout的玩家退出菜单(此时Menu_time>=0)→ 处理时间(没有退出菜单的玩家的恢复先前值)
      1:scoreboard players operation @a[tag=Menu_main] Menu_time -= timeout Menu_item
      2:tag @a[tag=Menu_main,scores={Menu_time=0..}] addMenu_quit
      3:scoreboard players operation @a[tag=Menu_main] Menu_time += timeout Menu_item


      IP属地:广东29楼2022-01-06 14:05
      回复
        c. 进入菜单检测(主菜单,抬头检测)
        ★ 比较抬头时间与进入时
        → 令Menu_time>enterTime的玩家进入下一步(即进入菜单,此时Menu_time>=0)
        → 处理时间 – 进入了下一步的玩家清零,没有进入的恢复先前值
        1:scoreboard players operation @a[tag=Menu_deactivatedPlayer] Menu_time -= enterTimeMenu_item
        2:tag @a[tag=Menu_deactivatedPlayer,scores={Menu_time=0..}]add Menu_next
        3-1:scoreboard players reset @a[tag=Menu_deactivatedPlayer,tag=Menu_next] Menu_time
        3-2:scoreboard players operation @a[tag=Menu_deactivatedPlayer,tag=!Menu_next] Menu_time += enterTimeMenu_item


        IP属地:广东31楼2022-01-06 14:08
        回复
          ②执行部分
          a. 进入菜单(主菜单)
          添加tag → 菜单项设为0 → 给雪球 → 移除通常状态的tag → 完成操作
          1:tag @a[tag=Menu_next,tag=Menu_deactivatedPlayer]add Menu_main
          2:scoreboardplayers set @a[tag=Menu_next,tag=Menu_deactivatedPlayer] Menu_item 0
          3:give @a[tag=Menu_next,tag=Menu_deactivatedPlayer]snowball 1
          4:tag @a[tag=Menu_next,tag=Menu_deactivatedPlayer] remove Menu_deactivatedPlayer
          5:tag @a[tag=Menu_main,tag=Menu_next] remove Menu_next


          IP属地:广东32楼2022-01-06 14:12
          回复
            b. 退出菜单(主菜单)
            显示退出信息 → 添加通常标签 → 重置时钟 → 移除子菜单标签 → 移除退出标签
            1:title @a[tag=Menu_main,tag=Menu_quit] actionbar已退出菜单
            2:tag @a[tag=Menu_main,tag=Menu_quit]add Menu_deactivatedPlayer
            3:scoreboard players reset @a[tag=Menu_main,tag=Menu_quit] Menu_time
            4:tag @a[tag=Menu_main,tag=Menu_quit] removeMenu_main
            5:tag @a[tag=Menu_quit,tag=Menu_deactivatedPlayer] removeMenu_quit


            IP属地:广东33楼2022-01-06 14:13
            回复
              c. 执行所选项(主菜单)
              向前扔雪球执行所选项,筛选器为@a[tag=Menu_execute,tag=Menu_main]
              这里为主菜单设置了三个项。
              [0] 跳转至子菜单 “board”
              添加子菜单tag → 菜单项设为0 → 执行完成(因为没主菜单tag了,尾部的删不掉) → 删除主菜单tag
              1:tag @a[tag=Menu_execute,tag=Menu_main,scores={Menu_item=0}] add Menu_board
              2:scoreboard players set @a[tag=Menu_main,tag=Menu_board] Menu_item 0
              3:tag @a[tag=Menu_main,tag=Menu_board] remove Menu_execute
              4:tag @a[tag=Menu_main,tag=Menu_board] remove Menu_main
              [1] 空
              5:tellraw @a[tag=Menu_execute,tag=Menu_main,scores={Menu_item=1}] {"rawtext":[{"text":"执行了选项1"}]}
              [2] 空
              6:tellraw @a[tag=Menu_execute,tag=Menu_main,scores={Menu_item=2}] {"rawtext":[{"text":"执行了选项2"}]}
              [尾部] 执行完成
              7:tag @a[tag=Menu_execute,tag=Menu_main] remove Menu_execute


              IP属地:广东34楼2022-01-06 14:19
              回复
                ③时钟部分
                a. 通常钟:
                滴答(通常状态下看天) | 循环、延迟20
                1:scoreboard players add @a[tag=Menu_deactivatedPlayer,rx=-89.5] Menu_time 1
                重置(通常状态下不看天)
                2:scoreboard players reset @a[tag=Menu_deactivatedPlayer,rxm=-89.5] Menu_time
                b. 菜单钟
                滴答(菜单状态) | 循环、延迟20
                1:scoreboard players add @a[tag=Menu_main] Menu_time 1


                IP属地:广东36楼2022-01-06 14:22
                回复
                  2025-12-04 23:26:09
                  广告
                  不感兴趣
                  开通SVIP免广告
                  ④ 显示部分
                  a. 菜单项范围控制(主菜单)
                  归零(正数) → 跳至末尾(负数)
                  1:scoreboard players operation @a[tag=Menu_main,scores={Menu_item=0..}]Menu_item %= amount Menu_item
                  2:scoreboard players operation @a[tag=Menu_main,scores={Menu_item=..-1}]Menu_item += amount Menu_item


                  IP属地:广东38楼2022-01-06 14:24
                  回复
                    b. 显示内容
                    可用的箭头样式:∧∨︽︾,以后发现了别的可以用的箭头会发在评论区。

                    [退出](通用,会作用于所有菜单)
                    下面是一个3选项的菜单示例:
                    1:titleraw @a[tag=!Menu_deactivatedPlayer,rxm=89.5] actionbar{"rawtext":[{"text":"退出菜单"}]}
                    [0]
                    1:titleraw @a[tag=Menu_main,scores={Menu_item=0},rx=-30] actionbar{"rawtext":[{"text":"
                    §6§l- 0 -§6§l∧\n
                    §f§l- 1 - §f§l○\n
                    §f§l- 2 - §f§r∨\n"}]}
                    2:titleraw @a[tag=Menu_main,scores={Menu_item=0},rx=89.5,rxm=30] actionbar{"rawtext":[{"text":"
                    §6§l- 0 -§f§r∧\n
                    §f§l- 1 - §f§l○\n
                    §f§l- 2 - §6§l∨\n"}]}
                    3:titleraw @a[tag=Menu_main,scores={Menu_item=0},rx=30,rxm=-30] actionbar{"rawtext":[{"text":"
                    §6§l- 0 -§f§r∧\n
                    §f§l- 1 - §6§l○\n
                    §f§l- 2 - §f§r∨\n"}]}
                    [1]
                    1:titleraw @a[tag=Menu_main,scores={Menu_item=1},rx=-30] actionbar{"rawtext":[{"text":"
                    §f§l- 0 -§6§l∧\n
                    §6§l- 1 -§f§l○\n
                    §f§l- 2 - §f§r∨\n"}]}
                    2:titleraw @a[tag=Menu_main,scores={Menu_item=1},rx=89.5,rxm=30] actionbar{"rawtext":[{"text":"
                    §f§l- 0 - §f§r∧\n
                    §6§l- 1 -§f§l○\n
                    §f§l- 2 - §6§l∨\n"}]}
                    3:titleraw @a[tag=Menu_main,scores={Menu_item=1},rx=30,rxm=-30] actionbar{"rawtext":[{"text":"
                    §f§l- 0 - §f§r∧\n
                    §6§l- 1 -§6§l○\n
                    §f§l- 2 - §f§r∨\n"}]}
                    [2]
                    1:titleraw @a[tag=Menu_main,scores={Menu_item=2},rx=-30] actionbar{"rawtext":[{"text":"
                    §f§l- 0 -§6§l∧\n
                    §f§l- 1 - §f§l○\n
                    §6§l- 2 -§f§r∨\n"}]}
                    2:titleraw @a[tag=Menu_main,scores={Menu_item=2},rx=89.5,rxm=30] actionbar{"rawtext":[{"text":"
                    §f§l- 0 - §f§r∧\n
                    §f§l- 1 - §f§l○\n
                    §6§l- 2 -§6§l∨\n"}]}
                    3:titleraw @a[tag=Menu_main,scores={Menu_item=2},rx=30,rxm=-30] actionbar{"rawtext":[{"text":"
                    §f§l- 0 - §f§r∧\n
                    §f§l- 1 - §6§l○\n
                    §6§l- 2 - §f§r∨\n"}]}


                    IP属地:广东40楼2022-01-06 14:28
                    回复
                      指令解释的最后一部分,子菜单添加示例


                      IP属地:广东41楼2022-01-06 14:36
                      回复
                        ⑤ 子菜单添加示例 – 结界
                        先做一些事前准备——
                        ○ 不需要写和需要写的部分:
                        检测部分可以不写,不会自动退出菜单
                        执行部分和显示部分的全部项目需要重写;
                        ○ 需要设置的计分项和需要确定的标签
                        amount_board 菜单项的数量,在Menu_item中定义,这里是4
                        Menu_board 菜单的标签
                        ○ 添加跳转到菜单的指令
                        跳转到子菜单的指令在主菜单的部分里其实也写了,在这里重复一下:
                        添加子菜单tag → 菜单项设为0 → 执行完成(因为没主菜单tag了,尾部的删不掉) → 删除主菜单tag
                        1:tag @a[tag=Menu_execute,tag=Menu_main,scores={Menu_item=0}] add Menu_board
                        2:scoreboard players set @a[tag=Menu_main,tag=Menu_board] Menu_item 0
                        3:tag @a[tag=Menu_main,tag=Menu_board] remove Menu_execute
                        4:tag @a[tag=Menu_main,tag=Menu_board] remove Menu_main


                        IP属地:广东43楼2022-01-06 14:44
                        回复
                          下面开始构建子菜单——
                          Ⅰ. 执行部分
                          a. 退出菜单
                          视角向下扔雪球会触发这部分指令,这里写的是完全退出菜单,根据需要可以写成转到其它菜单等操作。
                          显示退出信息 → 添加通常标签 → 重置时钟 → 移除子菜单标签 → 移除退出标签
                          1:title @a[tag=Menu_board,tag=Menu_quit] actionbar已退出菜单
                          2:tag @a[tag=Menu_board,tag=Menu_quit] addMenu_deactivatedPlayer
                          3:scoreboard players reset @a[tag=Menu_board,tag=Menu_quit] Menu_time
                          4:tag @a[tag=Menu_board,tag=Menu_quit] removeMenu_board
                          5:tag @a[tag=Menu_deactivatedPlayer,tag=Menu_quit]remove Menu_quit


                          IP属地:广东45楼2022-01-06 14:48
                          回复
                            b. 执行所选项
                            向前扔雪球执行所选项,筛选器为@a[tag=Menu_execute,tag=Menu_board]

                            [0] 创建结界 → [1] 扩大结界 → [2] 缩小结界 → [3] 权限管理 → [4] 删除结界 → [尾部] 执行完成
                            1:tellraw @a[tag=Menu_execute,tag=Menu_board,scores={Menu_item=0}] {"rawtext":[{"text":"执行了选项0"}]}
                            2:tellraw @a[tag=Menu_execute,tag=Menu_board,scores={Menu_item=1}] {"rawtext":[{"text":"执行了选项1"}]}
                            3:tellraw @a[tag=Menu_execute,tag=Menu_board,scores={Menu_item=2}] {"rawtext":[{"text":"执行了选项2"}]}
                            4:tellraw @a[tag=Menu_execute,tag=Menu_board,scores={Menu_item=3}] {"rawtext":[{"text":"执行了选项3"}]}
                            5:tellraw @a[tag=Menu_execute,tag=Menu_board,scores={Menu_item=4}] {"rawtext":[{"text":"执行了选项4"}]
                            6:tag @a[tag=Menu_execute,tag=Menu_board] remove Menu_execute


                            IP属地:广东49楼2022-01-06 14:52
                            回复
                              2025-12-04 23:20:09
                              广告
                              不感兴趣
                              开通SVIP免广告
                              Ⅱ. 显示部分
                              a. 菜单项范围控制

                              归零(正数) → 跳至末尾(负数)
                              1:scoreboard players operation @a[tag=Menu_board,scores={Menu_item=0..}]Menu_item %= amount_board Menu_item
                              2:scoreboard players operation @a[tag=Menu_board,scores={Menu_item=..-1}] Menu_item += amount_board Menu_item


                              IP属地:广东50楼2022-01-06 14:54
                              回复