- 需要插件(必装)
-
原创 - RustSB Extensions - RustSB扩展
RustSB Extensions是RustSB.COM提供的Oxide扩展DLL,提供本站插件所需的大量扩展。 部分插件必须按照本扩展才能够正常运行。 功能 UI构建扩展方法。 成长型武器判断方法。 内置物品中文名API。 内置RustSBAuth,不再需要安装RustSBAuth插件。 内置图像管理系统,不再需要安装ImageLibrary插件。 玩家库存扩展方法。 玩家权限扩展方法。 其他扩展方法。 使用本扩展构建的插件将节省插件代码的复杂性,方便开发者快速扩展和维护。...rustsb.com
- 需要插件(可选)
-
汉化 - Zone Manager - 区域管理
Zone Manager - 区域管理是用于创建和管理游戏内区域的插件。 权限 zonemanager.zone - 允许使用聊天/控制台指令。 zonemanager.ignoreflag. - 允许绕过指定标志。替换为要绕过的标志。 请确保不要盲目地授予玩家任何忽略标志的权限! 如果您不确定授予忽略标志将产生什么效果,只需查看标志的作用,并授予忽略标志权限的玩家,那么玩家就能够绕过标志的影响。 聊天指令...rustsb.com
插件介绍
一个高度自定义的确认提示UI插件,可以为各种游戏行为添加确认提示框。以便一些重要场景提示玩家,让玩家确认重要信息,在确认之前会阻止执行类型操作,保护玩家误操作和安全性。功能特点
- 支持6种不同类型的确认提示
- 可自定义UI样式和文本
- 支持每日不再提示和永久不再提示选项
- 支持冷却时间设置
- 支持多种触发条件匹配方式
- 支持玩家设置自定义提醒内容和提醒时间
支持的确认类型
- 使用物品:物品中带有【打开】【食用】功能的,比如食物,礼盒,医疗箱
- 收集物品:捡起地上的掉落物(普通任意物品),拾取地上的实体(浆果矿石等)
- 击杀目标:写入npc短名或显示名
- 输入指令:比如当玩家输入/kit
- 获得权限:当玩家获得权限时可以提醒他权限的指令
- 进入区域:/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名称(击杀目标类型可用)
- %指令% - 显示指令名称(输入指令类型可用)
- %权限名% - 显示权限名称(获得权限类型可用)
- %区域% - 显示区域名称(进入区域类型可用)
触发条件说明
- 使用物品类型:
- 支持物品短名(shortname)
- 支持物品皮肤ID
- 支持物品ID
- 收集物品类型:
- 支持物品短名
- 支持实体短名
- 支持带点(.)和横线(-)的名称匹配
- 击杀目标类型:
- 支持NPC实体短名
- 自动获取并使用NPC显示名称
- 输入指令类型:
- 支持带斜杠(/)和不带斜杠的指令
- 支持完整指令匹配
- 获得权限类型:
- 支持权限名称匹配
- 进入区域类型:
- 支持区域ID匹配
- 需要配合ZoneManager插件使用
控制台命令
- confirmui.cleardata all - 清空所有存档数据
- confirmui.cleardata permanent - 清空永久不显示存档数据
- confirmui.cleardata daily - 清空今日不显示存档数据
- confirmui.cleardata cooldown - 清空默认冷却不显示存档数据
- confirmui.cleardata reminders - 清空玩家设置的指令提醒数据
权限
无需特殊权限指令
/tixing {内容} {时间分钟}例:/tixing 菜熟了快去收菜 1 - 设置一分钟后提醒自己收菜,时间到后会自动弹出UI
此指令没有权限,任何玩家均可使用
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 - 处理服务器关闭
- 玩家意外断开连接
- 服务器重启
- 物品或实体被销毁
- 插件重载