账号已废弃 发表于 2023-1-27 18:22:45

gametest教程(第四章:gametest-ui)

本帖最后由 指令凋灵 于 2024-8-17 22:51 编辑

这期来讲gt-ui(全称gametest-ui)
了解ui
gt-ui一共有三种,分别为ActionFrom-ui,MessageFrom-ui,ModelFrom-ui。(其中MessageFrom-ui太没用,就不讲了)
首先,要引用gt-ui模块,在脚本文件中写入:
1.19.0.05至1.19.40:
import { ActionFormData,
ActionFormResponse,
ModalFormData,
ModalFormResponse } from "mojang-minecraft-ui";

1.19.40以上:
import { ActionFormData,
      ActionFormResponse,
      ModalFormData,
      ModalFormResponse} from "@minecraft/server-ui";
然后定义一种打开ui的方式,如:
world.events.beforeItemUse.subscribe((a)=>{
    if(a.item.typeId=='stick'/*此为物品英文id*/){
    ActionFormDataui(a.source)}});/*此为打开ui的方式,长按木棍打开*/

ui制作
ActionFrom-ui
function ActionFormDataui(player){
var a=new ActionFormData()
    a = a.title("大标题")
    .body("小标题")
    .button("按钮1")
    .button("按钮2")
    .button("按钮3")
    a.show(player).then((a)=>{
    if(a.selection==0 /*0是第一个按钮,1是第二个按钮,以此类推*/){
    player.runCommandAsync('say 这是第一个按钮')}
    else if(a.selection==1){
      player.runCommandAsync('say 第二个')}
    else if(a.selection==2){
      player.runCommandAsync('say 第三个')}})};
ModelFrom-ui
function ModelFromData(player){
var a=new ModalFormData();
    a=a.title("设置")
    .dropdown("选项",["选项1","选项2"])
    .toggle("关/开")/*开关*/
    .textfield'输入框标题','内容背景','已输入内容')
    a.show(player).then((a)=>{
    if(a.formValues==0/*同理,0代表选项为“选项1”){
    if(a.formValues==false/*判断开关,true为开,false为关*/){
    player.runCommandAsync('say 选项为1,开关为关');}
    else if(a.formValues==true){
    player.runCommandAsync('say 选项1,开关为开');}}
    else if(a.formValues==1){
    if(a.formValues==true){
    player.runCommandAsync('say 选项2,开关为开')}
    else if(a.formValues==false){
    player.runCommandAsync('say 选项2,开关为关')}}})}
上一章下一章

账号已废弃 发表于 2023-1-28 21:10:05

1.19.70已发布,我会检查教程内容是否可用并更新

观察猪 发表于 2023-1-27 18:27:28

不错,收藏了,但不知道有没有完全懂[贴吧_滑稽]

账号已废弃 发表于 2023-1-27 18:58:50

mc697 发表于 2023-1-27 18:32
请问这个支持哪个我的世界版本?支持1.19.51吗?

1.19.0.05~1.19.30,1.19.40及以上把引用模块中“mojang-minecraft-ui”改成“@minecraft/server-ui”

霓雨浮梦 发表于 2023-1-27 19:19:26

指令凋灵 发表于 2023-1-27 18:58
1.19.0.05~1.19.30,1.19.40及以上把引用模块中“mojang-minecraft-ui”改成“@minecraft/server-ui” ...

哦,我去试试,正需要这个呢
感谢分享!

Silvigarabis 发表于 2023-2-17 19:01:37

教程中部分代码不够规整,且对于各种方法的作用描述不详细,以及排版较为紧凑,还需要多多优化。
貌似文档中的一部分内容还错误了放进了代码块内,建议移出来。

账号已废弃 发表于 2023-2-17 19:21:51

im2695 发表于 2023-2-17 19:01
教程中部分代码不够规整,且对于各种方法的作用描述不详细,以及排版较为紧凑,还需要多多优化。
貌似文档 ...

我只是个初学者,所以有错误和不完整的地方,可以提出

爷爷合影 发表于 2023-10-10 19:42:50

哥能做个面板UIaddon吗 还是不太懂

账号已废弃 发表于 2023-10-10 21:57:23

爷爷合影 发表于 2023-10-10 19:42
哥能做个面板UIaddon吗 还是不太懂

模板我早删了,看一下这个
【[教程]Minecraft基岩版scriptAPI保姆级教学第三期 UI篇 上篇-哔哩哔哩】 https://b23.tv/UEUa90G

爷爷合影 发表于 2023-10-11 19:34:21

function ActionFormDataui(player){
var a=new ActionFormData()
    a = a.title("大标题")
    .body("小标题")
    .button("按钮1")
    .button("按钮2")
创个后绰为js的文件在复制过去就行了吗    .button("按钮3")
    a.show(player).then((a)=>{
    if(a.selection==0 /*0是第一个按钮,1是第二个按钮,以此类推*/){
    player.runCommandAsync('say 这是第一个按钮')}
    else if(a.selection==1){
      player.runCommandAsync('say 第二个')}
    else if(a.selection==2){
      player.runCommandAsync('say 第三
页: [1]2
查看完整版本: gametest教程(第四章:gametest-ui)