【XMConfirmUI·确认提示UI】

原创 【XMConfirmUI·确认提示UI】 1.0.4

需要插件(必装)
需要插件(可选)

插件介绍​

一个高度自定义的确认提示UI插件,可以为各种游戏行为添加确认提示框。以便一些重要场景提示玩家,让玩家确认重要信息,在确认之前会阻止执行类型操作,保护玩家误操作和安全性。

功能特点​

  • 支持6种不同类型的确认提示
  • 可自定义UI样式和文本
  • 支持每日不再提示和永久不再提示选项
  • 支持点击确认按钮后的冷却时间,以便不再重复显示相同触发条件的UI
  • 支持多种触发条件匹配方式
  • 支持玩家设置自定义提醒内容和提醒时间
  • 支持控制台指令为玩家弹出自定义UI消息
17374184719351737418481689

支持的确认类型​

  1. 使用物品:物品中带有【打开】【食用】功能的,比如食物,礼盒,医疗箱
  2. 收集物品:捡起地上的掉落物(普通任意物品),拾取地上的实体(浆果矿石等)
  3. 击杀目标:写入npc短名或显示名
  4. 输入指令:比如当玩家输入/kit
  5. 获得权限:当玩家获得权限时可以提醒他权限的指令
  6. 进入区域:/zone_list查看区域ID

支持联动的插件​

ZoneManager区域管理类型6必装插件,当玩家进入指定ID的区域后弹出提示
XMTeleportUI·传送tpr确认UI当有玩家输入/tpr传送时,为目标玩家弹出UI,点击按钮即可tpa或取消
InGameShop·权限商店设置购买金额超过XX,弹出UI提醒玩家避免误购买损失
VipLogo·服务器等级当玩家等级达到活动页面中指定按钮等级弹出UI提醒
XMItemNotification·获得物品通知玩家从指定容器获得指定数量指定物品时使用此UI弹窗通知全服玩家

配置说明​

UI设置​

JSON:
{
  "UI设置": {
    "确认按钮颜色": "0.2 0.7 0.2 1",
    "取消按钮颜色": "0.7 0.2 0.2 1",
    "提示框标题": "系统提示",
    "文字大小": 14,
    "提醒规则": [],
    "标题栏颜色": {
      "1.使用物品": "0.55 0.79 0.98 0.95",
      "2.收集物品": "0.57 0.97 0.78 0.95",
      "3.击杀目标": "0.98 0.33 0.33 0.95",
      "4.输入指令": "0.21 0.33 0.99 0.95",
      "5.获得权限": "0.60 0.22 0.98 0.95",
      "6.进入区域": "0.94 0.75 0.26 0.95",
      "7.指令提醒": "0.1 0.1 0.1 0.95"  //这个是指/tixing玩家输入指令自己设置的UI提醒
    }
  }
}
1737544608285

提醒规则配置说明​

每个规则包含以下属性:
JSON:
{
  "类型": 1,                    // 提醒类型(1-6)
  "触发条件": ["条件1", "条件2"], // 触发此规则的条件列表
  "提示内容": "提示文本",        // 显示的提示内容
  "冷却时间(秒)": 300,          // 点击确认按钮后多久不会再显示重复UI
  "允许永久关闭": true,         // 是否允许永久关闭此提示,如果允许点击复选框后永久不显示重复UI
  "允许当日关闭": true          // 是否允许当日关闭此提示,如果允许点击复选框后24小时内不显示重复UI
}

配置示例​

JSON:
{
  "UI设置": {
    "确认按钮颜色": "0.2 0.7 0.2 1",
    "取消按钮颜色": "0.7 0.2 0.2 1",
    "提示框标题": "系统提示",
    "文字大小": 14,
    "提醒规则": [
      {
        "类型": 1,
        "触发条件": [
          "syringe.medical",
          "bandage"
          "123456789",
          "987654321"
        ],
        "提示内容": "%玩家名称%,您要使用的物品%物品名称%十分稀有,确认要使用吗?",
        "冷却时间(秒)": 300,
        "允许永久关闭": true,
        "允许当日关闭": true,
        "确认按钮文本": "我就用",
        "取消按钮文本": "不用了"
      },
      {
        "类型": 2,
        "触发条件": [
          "sulfur.ore",
          "metal.ore",
          "stone.ore",
          "stone-ore",
          "sulfur-ore",
          "metal-ore",
          "mushroom"
        ],
        "提示内容": "%玩家名称%,您正在采集/拾取%物品名称%,请注意安全!",
        "冷却时间(秒)": 300,
        "允许永久关闭": true,
        "允许当日关闭": true,
        "确认按钮文本": "我就拿",
        "取消按钮文本": "不拿了"
      },
      {
        "类型": 3,
        "触发条件": ["scientistnpc_oilrig"],
        "提示内容": "%玩家名称%,您确定要攻击的目标%目标名称%血量高达1万,请确保您有足够的攻击伤害!",
        "冷却时间(秒)": 600,
        "允许永久关闭": true,
        "允许当日关闭": true,
        "确认按钮文本": "干死他!",
        "取消按钮文本": "遛了遛了"
      },
      {
        "类型": 4,
        "触发条件": [
          "tp",
          "home",
          "tpr"
        ],
        "提示内容": "%玩家名称%,请确保不要使用此指令%指令%对玩家造成频繁骚扰,否则会有封禁风险!",
        "冷却时间(秒)": 60,
        "允许永久关闭": false,
        "允许当日关闭": true,
        "确认按钮文本": "那咋了",
        "取消按钮文本": "算了"
      },
      {
        "类型": 5,
        "触发条件": ["vip.use"],
        "提示内容": "%玩家名称%,恭喜您获得VIP权限!您可以使用聊天指令/kit啦!",
        "冷却时间(秒)": 0,
        "允许永久关闭": true,
        "允许当日关闭": true,
        "确认按钮文本": "好的",
        "取消按钮文本": "OK"
      },
      {
        "类型": 6,
        "触发条件": ["12345678"],
        "提示内容": "%玩家名称%,您正在进入突袭区域,请确保区域内没有其他玩家正在参与,否则您无法享受奖励!",
        "冷却时间(秒)": 300,
        "允许永久关闭": false,
        "允许当日关闭": true,
        "确认按钮文本": "好的",
        "取消按钮文本": "OK"
      }
    ],
    "标题栏颜色": {
      "1.使用物品": "0.55 0.79 0.98 0.95",
      "2.收集物品": "0.57 0.97 0.78 0.95",
      "3.击杀目标": "0.98 0.33 0.33 0.95",
      "4.输入指令": "0.21 0.33 0.99 0.95",
      "5.获得权限": "0.60 0.22 0.98 0.95",
      "6.进入区域": "0.94 0.75 0.26 0.95",
      "7.指令提醒": "0.1 0.1 0.1 0.95"
    }
  }
}

变量说明​

提示内容中可以使用以下变量:
  • %玩家名称% - 显示玩家名称
  • %物品名称% - 显示物品名称(使用物品和收集物品类型可用)
  • %目标名称% - 显示NPC名称(击杀目标类型可用)
  • %指令% - 显示指令名称(输入指令类型可用)
  • %权限名% - 显示权限名称(获得权限类型可用)
  • %区域% - 显示区域名称(进入区域类型可用)

触发条件说明​

  1. 使用物品类型:
    • 支持物品短名(shortname)
    • 支持物品皮肤ID
    • 支持物品ID
  2. 收集物品类型:
    • 支持物品短名
    • 支持实体短名
    • 支持带点(.)和横线(-)的名称匹配
  3. 击杀目标类型:
    • 支持NPC实体短名
    • 自动获取并使用NPC显示名称
  4. 输入指令类型:
    • 支持带斜杠(/)和不带斜杠的指令
    • 支持完整指令匹配
  5. 获得权限类型:
    • 支持权限名称匹配
  6. 进入区域类型:
    • 支持区域ID匹配
    • 需要配合ZoneManager插件使用

权限

无需特殊权限

控制台命令​

  • xmconfirmui.send {内容}- 向所有在线玩家发送UI消息
    • 例:xmconfirmui.send 服务器将在5分钟后重启,请及时保存您的进度!
  • xmconfirmui.send {steamid} {内容}- 向指定玩家发送UI消息
    • 例:xmconfirmui.send 76561198372925717 您的VIP权限已到账请查收!
  • 通过控制台发送的消息UI只有确认按钮
    1737541808984

  • confirmui.cleardata all - 清空所有存档数据
  • confirmui.cleardata permanent - 清空永久不显示存档数据
  • confirmui.cleardata daily - 清空今日不显示存档数据
  • confirmui.cleardata cooldown - 清空默认冷却不显示存档数据
  • confirmui.cleardata reminders - 清空玩家设置的指令提醒数据

指令​

  • /tixing {内容} {时间分钟}
  • 例:/tixing 菜熟了快去收菜 1 - 设置一分钟后提醒自己收菜,时间到后会自动弹出UI
  • 此指令没有权限,任何玩家均可使用
  • 通过聊天指令发送的UI,玩家可以自己设置重复提醒
1737515693141


API 参数说明​

XMConfirmUI插件提供了一个简单的API,允许其他插件调用确认对话框UI。以下是API的详细说明:
C#:
XMConfirmUI API 使用说明

1. 添加插件引用:
[PluginReference]
private Plugin XMConfirmUI;

2. API 方法:

ShowCustomConfirmUI(
    BasePlayer player,           // 要显示UI的玩家
    string message,             // 提示消息
    Action onConfirm = null,    // 确认按钮回调
    Action onCancel = null,     // 取消按钮回调
    bool allowPermanent = true, // 是否允许永久关闭
    bool allowDaily = true,     // 是否允许当日关闭
    int cooldown = 0,          // 冷却时间(秒)
    bool isReminder = false,    // 是否为提醒类型
    int reminderMinutes = 0,    // 提醒时间(分钟)
    int reminderType = 1,       // 提示类型(影响UI样式)
    string confirmText = null,  // 确认按钮文本
    string cancelText = null    // 取消按钮文本
)

提示类型(reminderType)说明:
// 类型主要决定UI的标题背景颜色,取决于此插件的配置文件设置
1 = 使用物品
2 = 收集物品
3 = 击杀目标
4 = 输入指令
5 = 获得权限
6 = 进入区域

3. 使用示例:

// 基础用法
XMConfirmUI?.Call("ShowCustomConfirmUI",
    player,
    "确定要这样做吗?"
);

// 带回调的用法
XMConfirmUI?.Call("ShowCustomConfirmUI",
    player,
    "确定要删除物品吗?",
    (Action)(() => {
        // 点击确认时执行
        player.ChatMessage("已确认");
    }),
    (Action)(() => {
        // 点击取消时执行
        player.ChatMessage("已取消");
    })
);

// 完整用法
XMConfirmUI?.Call("ShowCustomConfirmUI",
    player,                 // 玩家
    "确定要进入该区域吗?",   // 消息
    (Action)(() => {        // 确认回调
        player.ChatMessage("正在进入");
    }),
    (Action)(() => {        // 取消回调
        player.ChatMessage("已取消");
    }),
    true,                   // 允许永久关闭
    true,                   // 允许当日关闭
    300,                    // 5分钟冷却
    false,                  // 不是提醒
    0,                      // 提醒时间
    6,                      // 进入区域类型
    "进入",                 // 确认按钮文本
    "返回"                  // 取消按钮文本
);

4. 注意事项:
- 调用前检查插件引用是否为null
- Action回调需要显式转换类型
- 如果不需要自定义按钮文本,可以省略最后两个参数
- 冷却时间和提醒时间为0表示不启用
- allowPermanent和allowDaily控制是否显示"不再提示"选项
作者
pandaman
下载
1
类型
数字产品
有效期
无限
价格
198.00 CNY
查看
270
文件类型
cs
文件大小
60.2 KB
文件Hash
82eabd8d9334f1a273af86d2e7fc7123
首次发布
最后更新
评分
0.00 星 0评价

来自pandaman的更多资源

分享资源

最新更新

  1. 1.0.4

    将按钮名称移动到每个规则配置中,这样可以为不同类型的UI设置不同的按钮名称
  2. 1.0.3

    - 添加了xmconfirmui.send控制台指令支持向玩家发送自定义内容
  3. 1.0.2

    - 新增配置,支持为不同类型设置不同的标题背景色
标签
嗷嗷推荐系列