duoduo_dice 摇骰子(押大小)
Xiuno BBS X 插件,提供 3 颗骰子押大小玩法,豹子通杀,赔率 1:1。支持自定义投注金额、历史记录与盈亏排行榜,金币变动基于 xiunox 官方 CreditsService 积分体系,事务安全防并发。
功能特性
骰子判定:3 颗骰子点数和 4-10 为小、11-17 为大,严格区间判定
豹子通杀:3 颗骰子点数相同时,押大押小均判定为输,庄家通杀
赔率 1:1:押中返还本金并赢取同额盈利,收益即时入账
3D 骰子动画:
dice.css纯 CSS 3D 旋转动画,摇骰过程随机旋转、落定显示点数,移动端支持震动反馈投注金额:预设多档金额一键选择,支持「全押」;单次投注上下限可后台配置
历史记录:每次投注写入历史(最多保留 100 条),实时展示最近 20 条
盈亏排行榜:按累计盈亏排序实时刷新,正负盈利不同配色
侧栏快捷入口:首页侧栏展示入口卡片,未启用时自动隐藏
一键开关:后台可整体启用 / 禁用,禁用后前台入口与投注接口同步拦截
金币安全:投注扣款与派奖均经
CreditsService::sub/add,行锁事务保证并发下不超扣、不丢失,并记录积分日志
安装说明
将插件目录放入
plugin/duoduo_dice/进入后台「插件管理」找到「DD摇骰子」点击安装
安装时自动写入默认配置:
enabled默认开启、bet_options='10,50,100,500'、min_bet=10、max_bet=600卸载时自动删除
duoduo_dice_*配置项,不残留数据
插件仅使用 setting 表(kv 存储)保存配置与游戏数据,不建任何附加数据表,安装 / 卸载零副作用。
使用指南
后台配置
访问 /admin/plugin-setting-duoduo_dice,仅管理员组(gid=1,2)可进入,POST 操作经 CsrfService::check() CSRF 校验。
配置项 | 字段名 | 说明 |
|---|---|---|
启用状态 | enabled | 1=启用,0=禁用(默认启用) |
投注选项 | bet_options | 逗号分隔的投注金额档位(默认 |
最低投注 | min_bet | 单次投注下限(默认 10) |
最高投注 | max_bet | 单次投注上限(默认 600),自动不低于 min_bet |
保存后写入 kv 存储,下次请求即时生效。设置页另提供「清空游戏数据」:一键重置历史记录与排行榜。
前台行为
登录用户选择押大 / 押小,点选投注金额或「全押」,点击摇一摇
3D 骰子旋转落定后展示点数、大小与盈亏结果,余额与排行榜实时刷新
未登录用户引导跳转登录页;余额不足、超出投注区间均在提交前拦截并提示
未启用时前台页面显示「摇骰子功能已关闭」提示,侧栏入口同步隐藏
技术细节
拦截点 hook 列表
Hook 文件 | 触发位置 | 作用 |
|---|---|---|
index_route_case_start.php | 前台路由分发 | 注册 |
index_site_brief_post_after.htm | 首页侧栏 | 渲染摇骰子入口卡片,未启用时直接 return 不输出 |
骰子判定逻辑
roll.php 中实现:
mt_rand生成三颗 1-6 骰子点数,计算总和三者相等视为豹子(
$triple),直接判负否则押大命中区间 11-17,押小命中区间 4-10,命中即判胜
金币变动流程
roll.php 经 CreditsService 完成两笔原子操作:
投注:
$cs->sub($uid, 'golds', $bet, '摇骰子押注', -1)扣除投注额,余额不足自动拦截派奖:命中后
$cs->add($uid, 'golds', $bet * 2, '摇骰子中奖', -1)返还本金 + 盈利
两次操作均带积分日志(reason 摇骰子押注 / 摇骰子中奖),dailyLimit=-1 关闭每日次数限制,避免高频游戏被防刷规则误拦截;行锁保证并发投注下余额一致。
历史与排行
历史与排行均存储于 kv,历史最多保留 100 条,排行按盈亏降序截取前 10
玩家净盈利累计入榜,投注总额同步记录
兼容性
Xiuno BBS X 1.1+(
bbs_version: 1.1,声明type: plugin)PHP 8.x(intval 严格转换、in_array 严格模式)
Bootstrap 5(x-card、alert、btn、badge 等原生类)
Tabler Icons(ti ti-dice-* 图标,跟随主题自带图标库)
无 jQuery 依赖
依赖核心函数
_SESSION()、user_read()、kv_get/kv_set、url()、esc_html()与lib/CreditsService.php,需核心版本提供通过 hook 注入,核心代码无硬编码插件名,插件禁用后拦截行为自动失效
版本历史
1.1.0:金币变动全面改用 CreditsService(积分日志 / 事务 / 并发防刷),新增后台功能开关与侧栏快捷入口,修复投注扣款并发问题
版本 1.1.0 | 兼容 Xiuno 1.1+

版本:v1.1.0
适用版本:1.1
开发者:哆哆
