大富翁游戏插件(navgcn_monopoly)
论坛互动游戏插件:掷骰子在环形棋盘上移动,触发事件获得金币奖励,参与排行榜竞争。
项目 | 值 |
|---|---|
插件标识 |
|
插件名称 | 大富翁游戏 |
当前版本 | 1.0.23 |
适配论坛版本 | XIUNOX 1.1.x |
插件类型 | plugin |
一、插件介绍
1.1 功能概述
用户在个人中心进入大富翁游戏,通过掷骰子在环形棋盘上移动。落点格子按类型触发不同事件,产生金币收益或损失。金币对接系统积分体系(user.golds + CreditsService),可用于购买额外游戏次数与功能道具。全站用户按金币数量参与排行榜竞争,每笔金币变动自动写入系统 credits_log 流水,获得金币时发送站内通知。
1.2 核心玩法
环形棋盘:管理员自定义格子数量,不足时自动从已配格子池随机填充至最小格子数(默认 30),走完一圈回到起点获得过路奖励
3D 骰子:屏幕中央 CSS 3D 六面立方体翻滚动画,翻滚 3~5 圈后落定显示点数,再移动棋子
每日次数:每日赠送免费次数,用尽后可花费金币自定义购买额外次数(单条 UPDATE 同时校验余额与上限)
事件结算:13 种格子类型,落点自动结算金币收支、位置变化、道具发放;格子类型配置(金币范围/随机事件/任务列表)可在后台自定义
道具系统:3 种功能道具,在关键节点改变结算结果
排行竞争:金币排行榜,展示头像、昵称与个人当前排名
流水记录:每次掷骰的骰子点数、移动轨迹、事件类型与金币变化全量留档于游戏记录表
金币体系:金币以系统
user.golds为准,增删均通过CreditsService(行锁 + 自动写credits_log),并支持与论坛积分双向兑换站内通知:净获得金币时通过
notify_create()发送系统通知
1.3 棋盘格子类型
类型 | 标识 | 结算效果 |
|---|---|---|
起点 |
| 走完一圈回到起点时获得过路奖励 |
奖励 |
| 在配置区间内随机获得金币,双倍卡可翻倍 |
惩罚 |
| 在配置区间内随机扣除金币,余额不足时扣至归零,护盾可抵消 |
幸运 |
| 触发大额金币奖励 |
随机事件 |
| 从事件池(24 种内置/后台可编辑)随机抽取,金币可能增加或减少 |
前进 |
| 向前额外移动若干格(最多递归结算 1 层) |
后退 |
| 向后回退若干格 |
商店 |
| 随机发放一个道具 |
任务 |
| 提示参与论坛任务(任务列表后台可编辑) |
宝箱 |
| 高额奖励 + 50% 概率额外获得道具,双倍卡可翻倍 |
陷阱 |
| 高额罚款,护盾可抵消 |
休息站 |
| 恢复 1 次掷骰机会 |
兑换站 |
| 赌博式:50% 翻倍获得金币,50% 失去一半 |
1.4 道具说明
道具 | 标识 | 默认价格 | 默认日限 | 效果 |
|---|---|---|---|---|
遥控骰子 |
| 50 金币 | 3 次 | 掷骰时可指定本次点数(1–6) |
双倍卡 |
| 40 金币 | 5 次 | 落在奖励/宝箱格时收益翻倍,自动生效 |
护盾 |
| 30 金币 | 5 次 | 落在惩罚/陷阱格时免除本次损失,自动生效 |
道具的名称、说明、图标、价格、每日上限、排序与启用状态均可在后台调整。
1.5 前台页面
页面 | 路由 | 说明 |
|---|---|---|
游戏主页 |
| 棋盘、3D 骰子、掷骰子、我的道具、金币榜 |
棋盘说明 |
| 全部格子的位置、名称、类型与数值区间 |
道具商店 |
| 道具购买 |
排行榜 |
| 金币排行与个人排名 |
游戏记录 |
| 个人历史流水 |
1.6 后台管理
后台路径:插件管理 → 大富翁游戏 → 设置,共 5 个标签页。
标签页 | 管理内容 |
|---|---|
基础设置 | 每日免费次数、购买单价、每日购买上限、过路奖励、双向兑换比例、可玩用户组门槛、棋盘最小格子数、4 个显示开关 |
棋盘配置 | 格子的名称、类型、图标、数值区间、配色 |
事件配置 | 各类型的金币范围、随机事件列表、任务列表 |
道具商店 | 道具名称、说明、图标、价格、每日上限、排序、启用开关 |
数据统计 | 最近 14 天的参与人数、掷骰次数、金币发放与回收 |
1.7 基础设置项默认值
设置项 | 默认值 | 说明 |
|---|---|---|
| 5 | 每日免费掷骰次数 |
| 10 | 购买 1 次的金币单价 |
| 10 | 每日购买次数上限(0 = 不限) |
| 5 | 经过起点奖励金币 |
| 100 | 多少积分兑换 1 金币 |
| 100 | 1 金币兑换多少积分 |
| 0 | 最低参与用户组 gid(0 = 全部可玩) |
| 30 | 棋盘最小格子数(自动填充) |
| 1 | 在顶栏显示 |
| 1 | 在首页左侧栏显示 |
| 1 | 在首页右侧栏显示 |
| 1 | 在发现页显示 |
1.8 技术栈
层 | 技术 |
|---|---|
后端 | PHP 8.0+ / MySQL utf8mb4 / CreditsService 积分服务 / notify_create 通知 / CacheHelper 缓存 |
前端 | Bootstrap 5.3 + Tabler Icons + 原生 JavaScript(无 jQuery、无 Alpine.js)+ Web Audio API |
动效 | CSS 3D 骰子翻滚 + 角色行走动画 + 粒子爆发 + 金币雨 + 全屏闪光 + 背景飘浮粒子 |
音效 | Web Audio API 程序生成 8 种音效(骰子/脚步/奖励/惩罚/幸运/起点/购买/错误) |
二、文件结构
plugin/navgcn_monopoly/
├── conf.json # 插件配置(版本/hooks_rank)
├── install.php # 安装脚本(7 表/默认配置/初始棋盘/初始道具/类型配置)
├── uninstall.php # 卸载脚本(删表/删配置/清缓存)
├── upgrade.php # 升级脚本(幂等迁移)
├── setting.php # 后台设置(5 标签页 POST 处理)
├── readme.md # 本文档
├── icon.png # 插件图标
├── hook/
│ ├── model_inc_file.php # 注册 MonopolyService 到 model 加载列表
│ ├── model_route_table_end.php # 注册 5 个前台路由
│ ├── index_route_case_end.php # 路由分发入口(case monopoly)
│ ├── model_cron_daily_end.php # 每日定时任务(参与人数回填/预建统计行)
│ ├── lang_zh_cn_bbs.php # 中文语言包(139 键)
│ ├── header_link_after.htm # CSS 加载
│ ├── footer_js_after.htm # JS 加载
│ ├── header_nav_custom_after.htm # 顶栏导航入口
│ ├── sidebar_left_end.htm # 首页左侧栏入口
│ ├── sidebar_right_end.htm # 首页右侧栏入口
│ └── more_discover_items_after.htm # 发现页入口
├── model/
│ └── MonopolyService.php # 核心服务类(金币/棋盘/道具/记录/排行/统计/通知/兑换)
├── route/
│ └── monopoly.php # 前台路由(页面渲染 + AJAX API)
├── view/
│ ├── htm/admin/setting.htm # 后台设置页(5 标签页)
│ └── htm/monopoly/
│ ├── index.htm # 游戏主页
│ ├── board.htm # 棋盘说明
│ ├── shop.htm # 道具商店
│ ├── ranking.htm # 排行榜
│ └── records.htm # 游戏记录
└── static/
├── css/monopoly.css # 冒险旅途主题样式(含移动端适配)
└── js/monopoly.js # 前端脚本(音效/动画/AJAX/3D 骰子)四、数据库表
表名 | 用途 |
|---|---|
| 用户游戏数据(次数/位置/对局状态) |
| 用户道具持有 |
| 游戏记录流水 |
| 棋盘格子配置 |
| 道具商店配置 |
| 每日统计 |
| 格子类型配置(金币范围/随机事件/任务列表) |
系统表 credits_log 用于金币变动流水(经 CreditsService 自动写入),notify 表用于站内通知。




版本:v1.0.23
适用版本:1.1
开发者:cywxmz

