- 需要插件(必装)
-
原创 - RustSB Extensions - RustSB扩展
RustSB Extensions是RustSB.COM提供的Oxide扩展DLL,提供本站插件所需的大量扩展。 部分插件必须按照本扩展才能够正常运行。 功能 UI构建扩展方法。 成长型武器判断方法。 内置物品中文名API。 内置RustSBAuth,不再需要安装RustSBAuth插件。 内置图像管理系统,不再需要安装ImageLibrary插件。 玩家库存扩展方法。 玩家权限扩展方法。 其他扩展方法。 使用本扩展构建的插件将节省插件代码的复杂性,方便开发者快速扩展和维护。...rustsb.com
主要功能
关卡模式:配置设置通过所需的最低积分,以及每关递增的所需积分倍数
- 玩家需要在限时时间内达成积分,即可挑战成功
- 时限结束后未达到积分,挑战失败
- 无论成功失败,都记录1次游戏次数,影响到每日游戏次数限制
- 只有成功才会增加本局所得积分到个人总分和排名积分数据中,失败不计入积分
-
JSON:
"游戏设置": { "游戏网格大小": 5,//决定游戏消除网格的布局 "每多少关递增/减1倍游戏网格大小": 10,//结合上方配置,例:10关=6x6 20关=7x7...(最大15x15)也支持写负数代表递减(最小5x5) "每关时间限制(秒)": 120,//第一关开始的限时时间 "递增/减时间限制(秒)": 5,//正数代表每关递增时间,负数代表每关递减时间 "消除所需最少连续数量": 3,//一般不动,除非你是变态o(* ̄︶ ̄*)o "游戏物品类型数量": 6,//决定一关中出现的不同物品种类 "每多少关递增/减物品类型数量": 0,//与网格逻辑一致,根据关卡决定递增递减物品种类来增加难度 "每消除一次获得分数": 10,//积分相关详见下方介绍 "连击加分倍数": 1.5, "特殊消除加分倍数": 2.0, "通关要求积分": 100,//第一关开始的通关所需积分 "递增通关要求积分倍数": 2.0,//乘数,例如1=100 2=200 3=400... "每日挑战次数限制": 5,//普通玩家每日次数限制,成功失败和主动关闭页面都算1次 "权限挑战次数上限": 10//授权玩家的每日次数 }
挑战模式:此模式需要在配置文件底部设置,只能通过控制台指令为指定玩家发出挑战UI
- 此模式主要用于其他插件调用,可以在支持执行控制台指令的插件配置使用此功能,来实现:
- 制作某些物品需要完成一局消消乐
- 打开某些聊天指令需要完成一局消消乐
- 领取某些物品时需要完成一局消消乐
- 配置中可以设置无限个自定义挑战模式,包括本局时间限制,所需积分等
-
JSON:
"挑战设置": { "控制台指令设置": { "test": {//控制台指令中的{索引} "时限秒": 30, "要求积分": 50, "网格布局": 7, "物品类型数量": 7, "每日限制": 0,//写0不限次数,否则每日限制次数来防止玩家重复触发成功奖励 "奖励描述": "完成30秒内50分消消乐游戏,即可获得豪华大礼包!",//显示在UI描述中 "再来一次": true,//开启后玩家失败时可以重新挑战1次,仅1次 "成功后执行指令列表": [ "/admin",//带/前缀会执行聊天指令 "uu %STEAMID% 1"//执行控制台指令 ] } } }
核心功能
1. 游戏玩法
- 动态游戏难度:
- 网格难度:默认7x7网格布局,支持按照关卡动态设置
"游戏网格大小": 7,
"每多少关递增/减1倍游戏网格大小": 0,
- 写入正数,比如10,则代表:1-9关=7x7 10-19关=8x8 20-29关=9x9(最大15x15)
- 写入负数,比如-5,则代表:1-4关=7x7 5-9关=6x6 10-14=5x5(最小5x5)
- 限时难度:支持按关卡动态设置限时时间
"每关时间限制(秒)": 120,
"递增/减时间限制(秒)": -5,
- 配置第一关开始的基础限时秒数
- 在递增/减配置写入正数,代表每关增加X秒时间
- 写入负数,代表每关减少X秒时间
- 物品种类难度:支持按关卡动态设置消除物品种类(逻辑与动态网格设置一致)
"游戏物品类型数量": 10,
"每多少关递增/减物品类型数量": 0,
- 配置中写入第一关开始的基础物品种类数量,这决定在网格布局中出现几种物品
- 在每级配置写入正数,代表每间隔X关,增加1种物品
- 写入负数,代表没间隔X关,减少1种物品
- 网格难度:默认7x7网格布局,支持按照关卡动态设置
- 拖拽交换:拖动物品到相邻格子进行交换
- 自动消除:3个或以上相同图标自动消除
- 连击系统:连续消除有额外加分
- 特殊消除:4个以上连续消除获得更高倍数加分
- 倒计时:每局X秒时间限制(可配置)
- 视听特效:
- 消除成功音效
- 连击≥2次播放音效
- 连击提示使用不同颜色区分更高连击
2. 积分系统
- 实时计分:每次消除立即计算得分
- 连击加成:连击次数越多,加成越高
- 历史记录:记录玩家的最高分、总分数、游戏次数
- 关卡统计:可配置的每关递增最低积分要求,不满足积分通过失败,不给予积分奖励
- 每日统计:独立统计每日获得的分数
- 每周统计:独立统计每周获得的分数
3. 排行榜系统
- 每日排行榜:显示当日得分前10名玩家
- 每周排行榜:显示本周得分前10名玩家
- 高亮显示:当前玩家在排行榜中高亮显示
- 金银铜牌:前三名使用不同颜色标识
- 自动重置:每日/每周一,自动重置排行数据,关卡,领取记录
4. 奖励系统
- 积分阶梯奖励:达到指定分数可领取奖励,支持一次性领取模式或扣除积分购买模式
- 每日排名奖励:每日排行榜前X名可获得奖励,每天晚上9点开放领取
- 每周排名奖励:每周排行榜前X名可获得奖励,每周日晚9点开放领取
- 防重复领取:已领取的奖励会记录,防止重复领取
- 物品发放:支持发放任何游戏内物品(含皮肤)
5. UI功能
- 统一UI尺寸:所有界面统一800x600或800x800像素,视觉协调
- 拖拽系统:物品图标拖拽式交互,完美符合悄悄乐游戏逻辑
- 可视化反馈:拖拽时格子半透明显示,操作清晰可见
- 黑夜/白昼模式:支持两种UI配色方案
- 圆角设计:使用RustSB圆角功能,界面更美观
- 响应式布局:自动适配不同分辨率
- 滚动视图:排行榜支持滚动查看更多内容
- 游戏物品图标:使用Rust游戏内真实物品图标
6. 数据管理
- 自动保存:游戏数据定时自动保存
- 玩家数据:记录每个玩家的详细游戏数据
- 排行数据:保留前100名玩家的排行信息
- 奖励记录:记录玩家已领取的奖励
游戏物品类型
每局游戏会从所有RUST物品中随机选择6个不同的物品作为消除图标,确保每局游戏都有新鲜感。(销量3时会添加自定义物品作为游戏图像)
(销量5时会添加玩家steam头像和自定义图像作为游戏图像)
(销量7时会添加竞技模式)
计分规则
- 基础分数 = 消除数量 × 每消除一次获得分数
- 连击加成 = 基础分数 × (1 + 连击次数 × (连击加分倍数 - 1))
- 特殊消除 = 如果消除4个以上,再乘以特殊消除加分倍数
- 消除3个:10 × 3 = 30分
- 连击第2次消除3个:30 × 1.5 = 45分
- 消除5个(特殊消除):10 × 5 × 2.0 = 100分
基础规则
- 拖动物品:按住鼠标拖动任意物品
- 限制距离:只能拖动到相邻的上下左右一格位置作为可消除判断距离
- 松开判断:松开鼠标时自动判断是否可以形成3连消除
- 成功消除:如果可以消除,执行交换并消除匹配的图标
- 自动还原:如果无法消除,格子自动弹回原位
- 下落填充:消除后上方格子会下落,顶部会填充新格子
- 连锁消除:下落后又形成可消除组合则自动连锁消除
游戏结束
- 时间耗尽自动结束(失败)
- 手动点击关闭按钮结束(失败)
- 满足关卡积分结束(胜利)
- 结束后显示本局得分和统计信息
- 分数自动添加到玩家总分和排行榜
数据存储
插件数据存储在:oxide/data/XMMatchGame/PlayerGameData.json包含内容:
- 所有玩家的游戏数据
- 每日排行榜数据
- 每周排行榜数据
- 上次重置时间记录



权限
- xmmatchgame.use - 允许玩家使用消消乐游戏
- xmmatchgame.vip - VIP权限,每日额外X次挑战
- xmmatchgame.admin - 管理员权限,可使用控制台命令
指令
聊天指令
- /match - 打开游戏主菜单
控制台指令(管理员)
- XMMatchGameadd <玩家名/ID> <分数> - 为指定玩家添加分数
- xmmatch.challenge <配置索引> <玩家名/ID> - 为指定玩家发出挑战UI(配置文件设置)
- XMMatchGameresetcount <玩家名/ID> - 重置指定玩家每日关卡模式挑战次数
- XMMatchGameresetcount <玩家名/ID> <配置索引> - 重置指定玩家指定挑战模式次数
- XMMatchGameresetcount all - 重置所有玩家每日关卡模式挑战次数
- XMMatchGameresetcount all <配置索引> - 重置所有玩家指定挑战模式次数
配置
JSON:
{
"游戏设置": {
"游戏网格大小": 5,
"每多少关递增/减1倍游戏网格大小": 10,
"每关时间限制(秒)": 120,
"递增/减时间限制(秒)": -5,
"消除所需最少连续数量": 3,
"游戏物品类型数量": 6,
"每多少关递增/减物品类型数量": 0,
"每消除一次获得分数": 10,
"连击加分倍数": 1.5,
"特殊消除加分倍数": 2.0,
"通关要求积分": 100,
"递增通关要求积分倍数": 2.0,
"每日挑战次数限制": 5,
"权限挑战次数上限": 10
},
"奖励设置": {
"每日排名奖励": {
"1": [
{
"物品短名称": "scrap",
"数量": 1000,
"皮肤ID": 0,
"物品显示名称(留空则不重命名)": ""
},
{
"物品短名称": "scrap",
"数量": 1000,
"皮肤ID": 0,
"物品显示名称(留空则不重命名)": ""
}
],
"2": [
{
"物品短名称": "scrap",
"数量": 800,
"皮肤ID": 0,
"物品显示名称(留空则不重命名)": ""
}
],
"3": [
{
"物品短名称": "scrap",
"数量": 600,
"皮肤ID": 0,
"物品显示名称(留空则不重命名)": ""
}
]
},
"每周排名奖励": {
"1": [
{
"物品短名称": "rifle.ak",
"数量": 1,
"皮肤ID": 0,
"物品显示名称(留空则不重命名)": ""
}
],
"2": [
{
"物品短名称": "rifle.lr300",
"数量": 1,
"皮肤ID": 0,
"物品显示名称(留空则不重命名)": ""
}
],
"3": [
{
"物品短名称": "rifle.m39",
"数量": 1,
"皮肤ID": 0,
"物品显示名称(留空则不重命名)": ""
}
]
},
"积分奖励阶梯": {
"100": {
"奖励物品": [
{
"物品短名称": "scrap",
"数量": 50,
"皮肤ID": 0,
"物品显示名称(留空则不重命名)": ""
}
],
"领取扣除积分(true=购买模式,可重复;false=领取模式,仅一次)": false
},
"500": {
"奖励物品": [
{
"物品短名称": "scrap",
"数量": 200,
"皮肤ID": 0,
"物品显示名称(留空则不重命名)": ""
}
],
"领取扣除积分(true=购买模式,可重复;false=领取模式,仅一次)": false
}
}
},
"挑战设置": {
"控制台指令设置": {
"test": {
"时限秒": 30,
"要求积分": 50,
"网格布局": 7,
"物品类型数量": 7,
"每日限制": 0,
"奖励描述": "完成30秒内50分消消乐游戏,即可获得豪华大礼包!",
"再来一次": true,
"成功后执行指令列表": [
"/admin",
"uu %STEAMID% 1"
]
}
}
},
"UI设置": {
"默认UI模式(true=黑夜模式,false=白昼模式)": true,
"游戏面板大小": {
"x": 600.0,
"y": 700.0
},
"网格单元大小": 60
}
}