【XMConfirmUI·确认提示UI】

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

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

插件介绍​

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

功能特点​

  • 支持6种不同类型的确认提示
  • 可自定义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提醒

配置说明​

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"
    }
  }
}

提醒规则配置说明​

每个规则包含以下属性:
JSON:
{
  "类型": 1,                    // 提醒类型(1-6)
  "触发条件": ["条件1", "条件2"], // 触发此规则的条件列表
  "提示内容": "提示文本",        // 显示的提示内容
  "冷却时间(秒)": 300,          // 确认后的冷却时间
  "允许永久关闭": true,         // 是否允许永久关闭此提示
  "允许当日关闭": true          // 是否允许当日关闭此提示
}

配置示例​

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
      },
      {
        "类型": 6,
        "触发条件": ["12345678"],
        "提示内容": "%玩家名称%,您正在进入突袭区域,请确保区域内没有其他玩家正在参与,否则您无法享受奖励!",
        "冷却时间(秒)": 300,
        "允许永久关闭": false,
        "允许当日关闭": true
      }
    ],
    "标题栏颜色": {
      "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插件使用

控制台命令​

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

权限

无需特殊权限

指令​

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

1737515693141


API 参数说明​

ShowCustomConfirmUI 方法参数:
JSON:
void ShowCustomConfirmUI
(
    BasePlayer player,          // 目标玩家
    string message,             // 显示的消息内容
    Action onConfirm,           // 确认按钮回调方法
    Action onCancel = null,     // 取消按钮回调方法(可选)
    bool allowPermanent = true, // 是否允许永久关闭选项
    bool allowDaily = true,     // 是否允许当日关闭选项
    int cooldown = 0,          // 冷却时间(秒)
    bool isReminder = false,    // 是否作为定时提醒
    int reminderMinutes = 0     // 提醒时间(分钟)
    ReminderType reminderType = ReminderType.使用物品 // UI标题栏颜色类型
)

使用示例​

1. 基础确认框
JSON:
// 显示简单的确认框
[PluginReference] Plugin XMConfirmUI;

void ShowBasicConfirm(BasePlayer player)
{
    XMConfirmUI.Call("ShowCustomConfirmUI",
        player,
        "确定要执行此操作吗?",
        () => {
            // 确认后的操作
            player.ChatMessage("已确认操作");
        }
    );
}

2. 带取消回调的确认框
JSON:
void ShowConfirmWithCancel(BasePlayer player)
{
    XMConfirmUI.Call("ShowCustomConfirmUI",
        player,
        "确定要删除此物品吗?",
        () => {
            // 确认后的操作
            player.ChatMessage("物品已删除");
        },
        () => {
            // 取消后的操作
            player.ChatMessage("操作已取消");
        }
    );
}

3. 定时提醒
JSON:
void ShowTimedReminder(BasePlayer player)
{
    XMConfirmUI.Call("ShowCustomConfirmUI",
        player,
        "该收菜了!",
        () => {
            player.ChatMessage("提醒已确认");
        },
        null,
        true,
        true,
        0,
        true,    // 启用定时提醒
        10       // 10分钟后提醒
    );
}

4. 自定义选项的确认框
JSON:
void ShowCustomOptionsConfirm(BasePlayer player)
{
    XMConfirmUI.Call("ShowCustomConfirmUI",
        player,
        "是否启用自动收集功能?",
        () => {
            player.ChatMessage("功能已启用");
        },
        null,
        true,   // 显示永久选项
        false,  // 不显示每日选项
        300     // 5分钟冷却时间
    );
}

5.使用指定类型的颜色标题背景
JSON:
// 显示带自定义颜色的确认框
XMConfirmUI.Call("ShowCustomConfirmUI",
    player,
    "是否进入该区域?",
    () => { /* 确认操作 */ },
    null,
    true,
    true,
    0,
    false,
    0,
    ReminderType.进入区域 // 使用进入区域的颜色
);

注意事项​

1. 使用API前需要先引用XMConfirmUI插件:
JSON:
[PluginReference] Plugin XMConfirmUI;

2. 定时提醒功能(isReminder=true)会改变复选框的行为:
- "今日不再提示" 变为 "5分钟后重新提醒我"
- "永久不再提示" 变为 "10分钟后重新提醒我"
3. 当使用定时提醒功能时,如果玩家选择了重新提醒选项,系统会在指定时间后再次显示提醒。
4. 回调方法(onConfirm和onCancel)在UI交互完成后立即执行。
5. cooldown参数用于设置确认操作的冷却时间,在冷却期间不会再次显示确认框。

Hook 说明​

插件监听以下事件:
  • OnPlayerDisconnected - 处理玩家断开连接
  • OnPlayerDeath - 处理玩家死亡
  • OnPlayerRespawned - 处理玩家重生
  • OnPluginLoaded - 处理插件重载
  • OnItemRemove - 处理物品销毁
  • OnEntityKill - 处理实体销毁
  • OnServerSave - 定期保存数据
  • OnServerShutdown - 处理服务器关闭
这些Hook确保了插件在各种情况下都能正常工作,包括:
  • 玩家意外断开连接
  • 服务器重启
  • 物品或实体被销毁
  • 插件重载
作者
pandaman
下载
0
类型
数字产品
有效期
无限
价格
198.00 CNY
查看
50
文件类型
cs
文件大小
53.2 KB
文件Hash
f7c5d173921f9454e82717f24a8af568
首次发布
最后更新
评分
0.00 星 0评价

来自pandaman的更多资源

分享资源

最新更新

  1. 1.0.2

    - 新增配置,支持为不同类型设置不同的标题背景色
  2. 1.0.1

    - 添加了聊天指令功能,允许玩家自定义提醒内容和提醒时间
标签