无情丶兰剑 发表于 2024-11-5 23:28:56

[LiteLoaderBDS插件编写教程] - 04 模式表单(ModalForm)

本帖最后由 无情丶兰剑 于 2024-11-10 21:27 编辑

01.什么是表单
   
    表单,顾名思义,就是菜单
   
    一个表单的样式(选自PlayerAchievement插件)
   
    把表单细分,可以分为三种:
      
       模式表单 - 一个表单,有一个标题、一个文字框,两个按钮
      
      一个模式表单

   普通表单 - 有一个标题、一行文本、存在多个按钮的表单,但不可以存在其它控件
      
         一个普通表单
   
      自定义表单 - 可以添加高级控件: 下拉菜单、滑块、开关等,但是不能添加按钮
      
         一个自定义表单

02.表单的创建
   
    由于篇幅原因,这篇教程只展示模式表单的创建/发送,更多表单的操作将在之后教学

    对于一个玩家对象pl,发送模式表单的格式为:
   
pl.sendModalForm(title,content,confirmButton,cancelButton,callback)   title - 表单标题
    content - 表单内容
    confirmButton - 第一个按钮名称
    cancelButton - 第二个按钮名称
    callback - 回调函数
   
    回调函数:
      
       data储存了玩家操作表单的记录,这里的data记录了玩家按下按钮的位置
       0/1为第一个/第二个按钮 null为关闭了表单(点击叉号)
       (第二个代码段展示了如何判断玩家按下了哪个按钮)

function(player, data){
    ...
}if(data == 1){
    log("按下了第一个按钮!")
}
else if(data == 2){
    log("按下了第二个按钮!")
}
else if(data == null){
    log("关闭了表单!")
}      
       综上所述,一个完整的模式表单就出来了
      以下是一个示例:
      
mc.listen("onJoin", (player) =>{
    player.sendModalForm(`欢迎`, `你好,${pl.name}!`, "确定", "取消", function(pl, dt){
         if(dt == 0){
            pl.tell("你点击了确定")
      }
      else if(dt == 1){
            pl.tell("你点击了取消")
      }
      else if(dt == null){
            pl.tell("你关闭了表单")
      }
    })
})
下期预告: 普通表单的创建与回调

承挨 发表于 2024-11-5 23:35:39

感谢分享

YanRan233 发表于 2024-11-5 23:53:01

感谢楼主教程

星空男 发表于 2024-11-5 23:56:06

感谢分享

穆雪奈馋_ 发表于 2024-11-7 15:15:58

不错的教程[贴吧_滑稽][贴吧_大拇指]

车轮不息22 发表于 2024-11-7 16:17:33

[贴吧_呵呵]

何晓宇 发表于 2024-11-8 10:55:31

感谢分享

炫酷鸭子鸭嘴仙 发表于 2024-11-16 23:54:25

感谢分享

你不会S币 发表于 7 天前

感谢分享[贴吧_呵呵]
页: [1]
查看完整版本: [LiteLoaderBDS插件编写教程] - 04 模式表单(ModalForm)