BE教程

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

无情***Lv.2 注册会员 发表于 2024-11-5 · 最后回复 2024-11-17 IP:江苏省 3,047 8
本帖最后由 无情丶兰剑 于 2024-11-10 21:27 编辑

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

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

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

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

  1. function(player, data){
  2.     ...
  3. }
复制代码
  1. if(data == 1){
  2.     log("按下了第一个按钮!")
  3. }
  4. else if(data == 2){
  5.     log("按下了第二个按钮!")
  6. }
  7. else if(data == null){
  8.     log("关闭了表单!")
  9. }
复制代码
      
       综上所述,一个完整的模式表单就出来了
        以下是一个示例:
        
  1. mc.listen("onJoin", (player) =>{
  2.     player.sendModalForm(`欢迎`, `你好,${pl.name}!`, "确定", "取消", function(pl, dt){
  3.          if(dt == 0){
  4.             pl.tell("你点击了确定")
  5.         }
  6.         else if(dt == 1){
  7.             pl.tell("你点击了取消")
  8.         }
  9.         else if(dt == null){
  10.             pl.tell("你关闭了表单")
  11.         }
  12.     })
  13. })
复制代码

下期预告: 普通表单的创建与回调


回复 8 最早 最新 只看楼主
您需要登录后才可以回帖 登录 | 立即注册
本版积分规则