duanzao_menu_inv: type: inventory inventory: chest gui: true title: 锻造 size: 27 openduanzao_command: type: command debug: false name: duanzao description: 打开锻造页面 usage: /duanzao script: - run duanzao_ui_task duanzao_ui_task: type: task debug: false definitions: inventory script: # 三页 - define row1_page 1 - define row2_page 1 - define row3_page 1 - if !<[inventory].exists>: - define inventory - define title <&b>锻造232 - define btns # 添加物品 - define btns.9 - note remove as:tess_clan_crest_gui_ - define util_menu_inv <[inventory]> - define contents - define size 54 - repeat <[size]>: - if <[btns].contains[<[value]>]>: - define contents:->:<[btns].get[<[value]>]> - else: - define contents:->:air - adjust <[util_menu_inv]> size:<[size]> - adjust <[util_menu_inv]> title:<[title]> - adjust <[util_menu_inv]> contents:<[contents]> - note <[util_menu_inv]> as:duanzao_menu_inv_ - inventory open d:]> #放入物品 duanzao_i_handler: type: world debug: true events: on player clicks in duanzao_menu_inv: - debug LOG - debug LOG - debug LOG - debug LOG - debug LOG ]> - if == ]>: - choose : - case 1: - if : - define itemtemp ]> - inventory set o:air slot: d: - give <[itemtemp]> player: - else: - define tempitem # 设置手持 - adjust item_on_cursor: # 设置箱子 - inventory set o:<[tempitem]> slot: d: # 设置标签 - flag duanzao_input_1: - case 9: - narrate 开始锻造 - define is_ok true # 判断是否通过 - foreach ]> key:key as:val: - if ]>]>: - narrate 存在-<[key]>-<[val]> # 数量不足 - if !]>].quantity[<[val].replace[int:].with[]>]>: - define is_ok false - foreach stop - else: # 不存在道具 终止 - define is_ok false - narrate ]>]> - narrate ]>]> - narrate 不存在<[key]> - foreach stop - if <[is_ok]>: - define tempmap ]> # 扣除材料 - foreach ]> key:key as:val: - take from: item:]> quantity:<[val].replace[int:].with[]> # 设置配方为空 - inventory set d: slot:1 o:air - narrate <[tempmap]> - foreach <[tempmap]> key:shuchu_name as:count: - execute as_server "neigeitems give <[shuchu_name]> <[count].replace[int:].with[]>" - else: - narrate 材料不足 - else: - if : - if == i@air: - define item ]> - inventory set o:air slot: d: - inventory set o:<[item]> slot:1 d: # 写入配方 - if != : - define repice_item # 循环写入条件 - foreach <[repice_item].raw_nbt.get[材料].if_null[]> key:key as:val: - narrate <&c><[key]><&7>--<&b><[val]> - inventory set o:]> slot:<[loop_index].add[45]> d: - inventory adjust slot:<[loop_index].add[45]> quantity:<[val].replace[int:].with[]> d: # 循环写入输出物品 - else: - repeat 9: - if ]> == : - repeat stop - inventory set o:air slot:<[value].add[45]> d: duanzao_world_close: type: world debug: false events: on player closes duanzao_menu_inv: - if != : - give player: