- 需要插件(必装)
-
原创 - RustSB Extensions - RustSB扩展
RustSB Extensions是RustSB.COM提供的Oxide扩展DLL,提供本站插件所需的大量扩展。 部分插件必须按照本扩展才能够正常运行。 功能 UI构建扩展方法。 成长型武器判断方法。 内置物品中文名API。 内置RustSBAuth,不再需要安装RustSBAuth插件。 内置图像管理系统,不再需要安装ImageLibrary插件。 玩家库存扩展方法。 玩家权限扩展方法。 其他扩展方法。 使用本扩展构建的插件将节省插件代码的复杂性,方便开发者快速扩展和维护。...
rustsb.com
插件介绍
为促进清档开服日的玩家活跃度,每月榜首插件用于记录每个月首次触发各种游戏事件的玩家,并给予奖励,记录到UI榜单荣耀彰显!功能特点
- 记录不同事件类型的首位达成玩家
- 自动或手动重置存档数据
- 动态钩子订阅管理(性能优化)
- 可自定义奖励物品和执行指令
- UI榜单显示
- 聊天消息广播

支持的事件类型
- 拾取资源 - 首位拾取指定野外资源的玩家
- 获得物品 - 首位获得指定物品的玩家
- 使用物品 - 首位使用指定物品的玩家
- 使用指令 - 首位使用指定聊天指令的玩家
- 获得权限 - 首位获得指定权限的玩家
- 首个进服 - 本月首位进入服务器的玩家
- 在线时长 - 首位达到指定在线时长的玩家
- 击杀NPC - 首位击杀指定NPC的玩家
- 攻击武直 - 首位摧毁武装直升机的玩家
- 攻击坦克 - 首位摧毁坦克的玩家
- 钓鱼 - 首位钓到指定鱼类的玩家
- 砍树 - 首位砍树的玩家
- 挖矿 - 首位挖矿的玩家
- 收集种植农作物 - 首位收集指定农作物的玩家
- 摆放物品 - 首位摆放指定物品的玩家(如熔炉、箱子等)
- 玩家死亡 - 首位被其他玩家击杀的玩家(自杀不算)
- 组队 - 首位组队的队长
- 建造建筑 - 首位建造建筑块的玩家
- 摧毁建筑 - 首位摧毁他人建筑的玩家
工作原理
清档检测
插件通过检测服务器存档文件的创建时间来判断是否发生了清档:- 当"清档自动删档"设置为 true 时,插件会在加载时检查存档创建时间
- 如果检测到存档创建时间与上次记录不同,自动清空所有榜首记录
- 如果设置为 false,需要使用控制台指令 xmmonthly.reset 手动重置数据
- 确保每次清档后都是全新的竞争
动态钩子管理
为了优化服务器性能,插件采用动态钩子订阅机制:- 初始化时,只订阅未记录首位玩家的事件钩子
- 当某个事件类型记录首位玩家后,立即取消订阅该钩子
- 减少不必要的事件监听,提升服务器性能
在线时长特殊处理
在线时长事件的处理方式与其他事件不同:- 每分钟为所有在线玩家增加1分钟在线时长
- 当有玩家首次达到配置的在线分钟数时,记录该玩家
- 记录后删除所有玩家的临时在线时长数据
- 停止在线时长计时器
使用指令
玩家指令
/ybs- 打开每月榜首UI界面,查看所有已记录的首位玩家
控制台指令
xmmonthly.reset- 手动重置所有榜首数据(需要管理员权限)
配置
JSON:
{
"清档自动删档": true,
"拾取资源": {
"预制名": "assets/bundled/prefabs/autospawn/collectable/potato/potato-collectable.prefab",
"UI显示名": "拾取野外土豆",
"提示消息": "恭喜玩家<color=#ffad1f>{0}</color>成为本月新档首位拾取土豆玩家!\n获得奖励:",
"奖励物品": [
{
"物品名称": "木头",
"物品简称": "wood",
"物品皮肤": 0,
"物品数量": 100,
"执行指令": []
}
]
},
"获得物品": {
"获得物品简称": "stones",
"获得物品皮肤": 0,
"UI显示名": "获得石头",
"提示消息": "恭喜玩家<color=#ffad1f>{0}</color>成为本月新档首位获得石头玩家!\n获得奖励:",
"奖励物品": [
{
"物品名称": "木头",
"物品简称": "wood",
"物品皮肤": 0,
"物品数量": 100,
"执行指令": []
}
]
},
"使用物品": {
"物品简称": "pumpkin",
"物品皮肤": 0,
"UI显示名": "使用南瓜",
"提示消息": "恭喜玩家<color=#ffad1f>{0}</color>成为本月新档首位使用南瓜玩家!\n获得奖励:",
"奖励物品": [
{
"物品名称": "木头",
"物品简称": "wood",
"物品皮肤": 0,
"物品数量": 100,
"执行指令": []
}
]
},
"使用指令": {
"聊天指令": "wxzd",
"UI显示名": "使用无限子弹指令",
"提示消息": "恭喜玩家<color=#ffad1f>{0}</color>成为本月新档首位使用无限子弹指令玩家!\n获得奖励:",
"奖励物品": [
{
"物品名称": "木头",
"物品简称": "wood",
"物品皮肤": 0,
"物品数量": 100,
"执行指令": []
}
]
},
"获得权限": {
"权限名": "wxzd.use",
"UI显示名": "获得无限子弹权限",
"提示消息": "恭喜玩家<color=#ffad1f>{0}</color>成为本月新档首位获得无限子弹权限玩家!\n获得奖励:",
"奖励物品": [
{
"物品名称": "木头",
"物品简称": "wood",
"物品皮肤": 0,
"物品数量": 100,
"执行指令": []
}
]
},
"首个进服": {
"UI显示名": "首个进服玩家",
"提示消息": "恭喜玩家<color=#ffad1f>{0}</color>成为本月新档首位进服玩家!\n获得奖励:",
"奖励物品": [
{
"物品名称": "木头",
"物品简称": "wood",
"物品皮肤": 0,
"物品数量": 100,
"执行指令": []
}
]
},
"在线时长": {
"在线分钟": 5,
"UI显示名": "在线5分钟",
"提示消息": "恭喜玩家<color=#ffad1f>{0}</color>成为本月新档首位在线5分钟玩家!\n获得奖励:",
"奖励物品": [
{
"物品名称": "木头",
"物品简称": "wood",
"物品皮肤": 0,
"物品数量": 100,
"执行指令": []
}
]
},
"击杀NPC": {
"NPC名称或预制": "鱿鱼先生",
"UI显示名": "击杀鱿鱼先生",
"提示消息": "恭喜玩家<color=#ffad1f>{0}</color>成为本月新档首位击杀鱿鱼先生玩家!\n获得奖励:",
"奖励物品": [
{
"物品名称": "木头",
"物品简称": "wood",
"物品皮肤": 0,
"物品数量": 100,
"执行指令": []
}
]
},
"攻击武直": {
"武直血量要求": 10000.0,
"UI显示名": "摧毁武装直升机",
"提示消息": "恭喜玩家<color=#ffad1f>{0}</color>成为本月新档首位摧毁武装直升机玩家!\n获得奖励:",
"奖励物品": [
{
"物品名称": "木头",
"物品简称": "wood",
"物品皮肤": 0,
"物品数量": 100,
"执行指令": []
}
]
},
"攻击坦克": {
"坦克血量要求": 10000.0,
"UI显示名": "摧毁坦克",
"提示消息": "恭喜玩家<color=#ffad1f>{0}</color>成为本月新档首位摧毁坦克玩家!\n获得奖励:",
"奖励物品": [
{
"物品名称": "木头",
"物品简称": "wood",
"物品皮肤": 0,
"物品数量": 100,
"执行指令": []
}
]
},
"钓鱼": {
"鱼物品简称": "fish.anchovy",
"UI显示名": "钓到凤尾鱼",
"提示消息": "恭喜玩家<color=#ffad1f>{0}</color>成为本月新档首位钓到凤尾鱼玩家!\n获得奖励:",
"奖励物品": [
{
"物品名称": "木头",
"物品简称": "wood",
"物品皮肤": 0,
"物品数量": 100,
"执行指令": []
}
]
},
"砍树": {
"UI显示名": "砍树",
"提示消息": "恭喜玩家<color=#ffad1f>{0}</color>成为本月新档首位砍树玩家!\n获得奖励:",
"奖励物品": [
{
"物品名称": "木头",
"物品简称": "wood",
"物品皮肤": 0,
"物品数量": 100,
"执行指令": []
}
]
},
"挖矿": {
"UI显示名": "挖矿",
"提示消息": "恭喜玩家<color=#ffad1f>{0}</color>成为本月新档首位挖矿玩家!\n获得奖励:",
"奖励物品": [
{
"物品名称": "木头",
"物品简称": "wood",
"物品皮肤": 0,
"物品数量": 100,
"执行指令": []
}
]
},
"收集种植农作物": {
"物品简称": "pumpkin",
"UI显示名": "收集南瓜",
"提示消息": "恭喜玩家<color=#ffad1f>{0}</color>成为本月新档首位收集南瓜玩家!\n获得奖励:",
"奖励物品": [
{
"物品名称": "木头",
"物品简称": "wood",
"物品皮肤": 0,
"物品数量": 100,
"执行指令": []
}
]
},
"摆放物品": {
"物品简称": "furnace",
"UI显示名": "摆放熔炉",
"提示消息": "恭喜玩家<color=#ffad1f>{0}</color>成为本月新档首位摆放熔炉玩家!\n获得奖励:",
"奖励物品": [
{
"物品名称": "木头",
"物品简称": "wood",
"物品皮肤": 0,
"物品数量": 100,
"执行指令": []
}
]
},
"玩家死亡": {
"UI显示名": "首位死亡玩家",
"提示消息": "恭喜玩家<color=#ffad1f>{0}</color>成为本月新档首位死亡玩家!\n获得奖励:",
"奖励物品": [
{
"物品名称": "木头",
"物品简称": "wood",
"物品皮肤": 0,
"物品数量": 100,
"执行指令": []
}
]
},
"组队": {
"UI显示名": "首位组队",
"提示消息": "恭喜玩家<color=#ffad1f>{0}</color>成为本月新档首位组队玩家!\n获得奖励:",
"奖励物品": [
{
"物品名称": "木头",
"物品简称": "wood",
"物品皮肤": 0,
"物品数量": 100,
"执行指令": []
}
]
},
"建造建筑": {
"UI显示名": "建造建筑",
"提示消息": "恭喜玩家<color=#ffad1f>{0}</color>成为本月新档首位建造建筑玩家!\n获得奖励:",
"奖励物品": [
{
"物品名称": "木头",
"物品简称": "wood",
"物品皮肤": 0,
"物品数量": 100,
"执行指令": []
}
]
},
"摧毁建筑": {
"UI显示名": "摧毁建筑",
"提示消息": "恭喜玩家<color=#ffad1f>{0}</color>成为本月新档首位摧毁建筑玩家!\n获得奖励:",
"奖励物品": [
{
"物品名称": "木头",
"物品简称": "wood",
"物品皮肤": 0,
"物品数量": 100,
"执行指令": []
}
]
}
}