【XIUNOX插件】摇骰子 v1.1.0 [复制链接]

一级用户组

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,行锁事务保证并发下不超扣、不丢失,并记录积分日志

安装说明

  1. 将插件目录放入 plugin/duoduo_dice/

  2. 进入后台「插件管理」找到「DD摇骰子」点击安装

  3. 安装时自动写入默认配置:enabled 默认开启、bet_options='10,50,100,500'min_bet=10max_bet=600

  4. 卸载时自动删除 duoduo_dice_* 配置项,不残留数据

插件仅使用 setting 表(kv 存储)保存配置与游戏数据,不建任何附加数据表,安装 / 卸载零副作用。

使用指南

后台配置

访问 /admin/plugin-setting-duoduo_dice,仅管理员组(gid=1,2)可进入,POST 操作经 CsrfService::check() CSRF 校验。

配置项

字段名

说明

启用状态

enabled

1=启用,0=禁用(默认启用)

投注选项

bet_options

逗号分隔的投注金额档位(默认 10,50,100,500),自动去重排序

最低投注

min_bet

单次投注下限(默认 10)

最高投注

max_bet

单次投注上限(默认 600),自动不低于 min_bet

保存后写入 kv 存储,下次请求即时生效。设置页另提供「清空游戏数据」:一键重置历史记录与排行榜。

前台行为

  • 登录用户选择押大 / 押小,点选投注金额或「全押」,点击摇一摇

  • 3D 骰子旋转落定后展示点数、大小与盈亏结果,余额与排行榜实时刷新

  • 未登录用户引导跳转登录页;余额不足、超出投注区间均在提交前拦截并提示

  • 未启用时前台页面显示「摇骰子功能已关闭」提示,侧栏入口同步隐藏

技术细节

拦截点 hook 列表

Hook 文件

触发位置

作用

index_route_case_start.php

前台路由分发

注册 duoduo_dice 路由,分发页面与 duoduo_dice-roll 投注接口

index_site_brief_post_after.htm

首页侧栏

渲染摇骰子入口卡片,未启用时直接 return 不输出

骰子判定逻辑

roll.php 中实现:

  1. mt_rand 生成三颗 1-6 骰子点数,计算总和

  2. 三者相等视为豹子($triple),直接判负

  3. 否则押大命中区间 11-17,押小命中区间 4-10,命中即判胜

金币变动流程

roll.phpCreditsService 完成两笔原子操作:

  • 投注:$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_seturl()esc_html()lib/CreditsService.php,需核心版本提供

  • 通过 hook 注入,核心代码无硬编码插件名,插件禁用后拦截行为自动失效

版本历史

1.1.0:金币变动全面改用 CreditsService(积分日志 / 事务 / 并发防刷),新增后台功能开关与侧栏快捷入口,修复投注扣款并发问题

版本 1.1.0 | 兼容 Xiuno 1.1+



摇骰子 截图



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

请登录后查看此内容
最新回复
  • 老张爱折腾 一级用户组
    这个插件有点意思,骰子动画和判定逻辑都做得挺细,豹子通杀这个设定很真实,玩起来有那味了。比较关心的是金币这块,用行锁事务防并发超扣的思路很稳,就是不知道以后赔率能不能也做成后台可配,现在 1:1 玩久了可能有点单调。移动端震动反馈这个细节好评。
    29分钟前

请先登录后再回复 登录