2026-03-01 21:15:17 +08:00
|
|
|
|
# 🎮 聊天室游戏开发进度
|
|
|
|
|
|
|
2026-03-03 19:29:43 +08:00
|
|
|
|
> 更新时间:2026-03-03
|
2026-03-01 21:15:17 +08:00
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## ✅ 已完成
|
|
|
|
|
|
|
|
|
|
|
|
### 🎲 百家乐(Baccarat)
|
|
|
|
|
|
|
|
|
|
|
|
- **类型**:定时自动开局(调度器每分钟检查,间隔可配置)
|
|
|
|
|
|
- **数据库**:`baccarat_rounds` + `baccarat_bets`
|
|
|
|
|
|
- **模型**:`BaccaratRound` / `BaccaratBet`
|
|
|
|
|
|
- **队列 Job**:`OpenBaccaratRoundJob` (开局) + `CloseBaccaratRoundJob` (摇骰结算)
|
|
|
|
|
|
- **事件**:`BaccaratRoundOpened` / `BaccaratRoundSettled`(PresenceChannel 广播)
|
|
|
|
|
|
- **控制器**:`BaccaratController`(`/baccarat/current` / `/baccarat/bet` / `/baccarat/history`)
|
|
|
|
|
|
- **前端**:`chat/partials/baccarat-panel.blade.php`(倒计时/押注/骰子动画/趋势)
|
|
|
|
|
|
- **货币来源**:`CurrencySource::BACCARAT_BET` / `BACCARAT_WIN`
|
|
|
|
|
|
- **后台配置**:`game_configs` 表,管理员可配置开关/间隔/赔率/押注范围
|
|
|
|
|
|
|
|
|
|
|
|
### 🎰 老虎机(Slot Machine)
|
|
|
|
|
|
|
|
|
|
|
|
- **类型**:玩家随时主动触发(即时游戏)
|
|
|
|
|
|
- **数据库**:`slot_machine_logs`
|
|
|
|
|
|
- **模型**:`SlotMachineLog`(8种带权重图案、判奖逻辑)
|
|
|
|
|
|
- **控制器**:`SlotMachineController`(`/slot/info` / `/slot/spin` / `/slot/history`)
|
|
|
|
|
|
- **赔率**:三7×100(全服广播)/ 三钻×50 / 三同×10 / 两同×2 / 三骷髅诅咒(扣双倍)
|
|
|
|
|
|
- **聊天通知**:中奖发私信通知;三7全服公屏广播
|
|
|
|
|
|
- **前端**:`chat/partials/slot-machine.blade.php`(三列滚轮动画/逐列停止/可拖动FAB)
|
|
|
|
|
|
- **货币来源**:`CurrencySource::SLOT_SPIN` / `SLOT_WIN` / `SLOT_CURSE`
|
|
|
|
|
|
- **后台配置**:`game_configs` 表,可配置每次消耗/每日次数上限/各赔率
|
|
|
|
|
|
|
|
|
|
|
|
### 📦 神秘箱子(Mystery Box)
|
|
|
|
|
|
|
2026-03-03 19:29:43 +08:00
|
|
|
|
- **类型**:系统定时自动投放 + 管理员手动投放(即时广播暗号,先到先得)
|
|
|
|
|
|
- **数据库**:`mystery_boxes`(箱子记录)+ `mystery_box_claims`(领取日志)
|
|
|
|
|
|
- **模型**:`MysteryBox` / `MysteryBoxClaim`
|
|
|
|
|
|
- **队列 Job**:`DropMysteryBoxJob`(投放 + 公屏广播暗号 + 派发 ExpireJob)/ `ExpireMysteryBoxJob`(到期处理)
|
|
|
|
|
|
- **控制器**:`MysteryBoxController`(`/mystery-box/status` 状态查询 / `/mystery-box/claim` 领取)
|
|
|
|
|
|
- **前端**:`chat/partials/mystery-box.blade.php`(5秒轮询检测 + 可拖动FAB + 快捷输入面板)
|
|
|
|
|
|
- **领取方式**:① 聊天框直接输入暗号发送(前端拦截,不发普通消息)② 点击悬浮FAB打开面板输入
|
|
|
|
|
|
- **箱子类型**:普通箱(500\~2000金)/ 稀有箱(5000\~20000金)/ 黑化箱(陷阱,倒扣200\~1000金)
|
|
|
|
|
|
- **货币来源**:`CurrencySource::MYSTERY_BOX` / `MYSTERY_BOX_TRAP`(含 `room_id` 流水记录)
|
|
|
|
|
|
- **后台配置**:`game_configs` 表,可配置开关/自动投放间隔/各奖励范围/陷阱概率;支持手动投放三种类型
|
2026-03-01 21:15:17 +08:00
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
2026-03-03 19:29:43 +08:00
|
|
|
|
## 🕐 待开发
|
|
|
|
|
|
|
2026-03-01 21:15:17 +08:00
|
|
|
|
### 🐎 赛马竞猜(Horse Racing)
|
|
|
|
|
|
|
|
|
|
|
|
**核心玩法**:定时举办赛马,用户押注马匹,按注池赔率结算,跑马过程 WebSocket 实时播报
|
|
|
|
|
|
|
|
|
|
|
|
**待开发清单:**
|
|
|
|
|
|
|
|
|
|
|
|
- [ ] 数据库:`horse_races`(场次)+ `horse_bets`(下注记录)
|
|
|
|
|
|
- [ ] 模型:`HorseRace` / `HorseBet`
|
|
|
|
|
|
- [ ] 队列 Job:`OpenHorseRaceJob`(开赛广播)+ `RunHorseRaceJob`(每秒播报马匹进度)+ `CloseHorseRaceJob`(结算)
|
|
|
|
|
|
- [ ] 事件:`HorseRaceOpened` / `HorseRaceProgress` / `HorseRaceSettled`(PresenceChannel)
|
|
|
|
|
|
- [ ] 控制器:`HorseRaceController`(当前场次/下注/历史)
|
|
|
|
|
|
- [ ] 调度器:按配置间隔开赛
|
|
|
|
|
|
- [ ] 前端:`chat/partials/horse-race.blade.php`(马匹赛道动画/实时进度条/注池赔率显示)
|
|
|
|
|
|
- [ ] 货币来源:`CurrencySource::HORSE_BET` / `HORSE_WIN`
|
|
|
|
|
|
- [ ] 配置参数:`interval_minutes` / `bet_window_seconds` / `race_duration` / `horse_count` / `min_bet` / `max_bet` / `house_take_percent`
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
### 🔮 神秘占卜(Fortune Telling)
|
|
|
|
|
|
|
|
|
|
|
|
**核心玩法**:每日免费占卜,系统生成玄学签文并给予当日加成;付费可多次
|
|
|
|
|
|
|
|
|
|
|
|
**待开发清单:**
|
|
|
|
|
|
|
|
|
|
|
|
- [ ] 数据库:`fortune_logs`(占卜记录,含签文和当日 buff 效果)
|
|
|
|
|
|
- [ ] 模型:`FortuneLog`
|
|
|
|
|
|
- [ ] 占卜库:预设 50+ 条签文(上上签/上签/中签/下签/大凶签),带对应加成描述
|
|
|
|
|
|
- [ ] 控制器:`FortuneTellingController`(`/fortune/today` 查今日 / `/fortune/tell` 占卜)
|
|
|
|
|
|
- [ ] 前端:`chat/partials/fortune-panel.blade.php`(卦象动画/签文卡片/今日加成状态)
|
|
|
|
|
|
- [ ] 每日限制:免费1次,额外次数扣金币
|
|
|
|
|
|
- [ ] Buff 系统(可选扩展):占卜结果影响当日经验/金币获取倍率(需修改自动存点逻辑)
|
|
|
|
|
|
- [ ] 货币来源:`CurrencySource::FORTUNE_COST`
|
|
|
|
|
|
- [ ] 配置参数:`free_count_per_day` / `extra_cost` / 各签概率
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## 📌 通用待办(所有游戏共用)
|
|
|
|
|
|
|
|
|
|
|
|
- [ ] 后台游戏管理页面(`/admin/game-configs`)显示各游戏实时统计数据
|
|
|
|
|
|
- [ ] 各游戏历史记录在后台可查(管理员视角)
|
|
|
|
|
|
- [ ] 生产环境部署:`php artisan db:seed --class=GameConfigSeeder`(初始化游戏配置)
|
|
|
|
|
|
- [ ] 百家乐/老虎机 全面测试(多用户并发下注)
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
2026-03-03 19:29:43 +08:00
|
|
|
|
## 🔧 已修复的 Bug
|
2026-03-01 21:15:17 +08:00
|
|
|
|
|
|
|
|
|
|
1. **百家乐广播频道**:`Channel` → `PresenceChannel`,解决前端收不到 WebSocket 事件
|
|
|
|
|
|
2. **百家乐余额检查**:`$user->gold` → `$user->jjb`(字段名错误)
|
|
|
|
|
|
3. **老虎机积分日志**:普通中奖/诅咒发私信通知;三7全服广播
|
|
|
|
|
|
4. **老虎机FAB**:支持拖动 + localStorage 位置持久化
|
|
|
|
|
|
5. **星海小博士随机事件**:改走 `UserCurrencyService.change()`,补写流水日志
|
|
|
|
|
|
6. **百家乐结算UI**:骰子改数字方块(跨平台);中奖/未中奖卡片重设计
|
2026-03-03 19:29:43 +08:00
|
|
|
|
7. **全部 FAB 拖动统一**:百家乐 FAB 改为 Alpine.js `baccaratFab()` 组件,与老虎机 `slotFab()` 完全一致,位置持久化存 localStorage
|
|
|
|
|
|
8. **Alpine.js 初始化顺序**:`frame.blade.php` 中 Alpine CDN 补加 `defer`,解决所有组件 `is not defined` 错误
|
|
|
|
|
|
9. **神秘箱子暗号领取**:改为主动尝试模式(不依赖5秒轮询),聊天框输入暗号即可触发领取;`claim()` 暗号统一转大写
|
|
|
|
|
|
10. **神秘箱子流水记录**:`change()` 调用补上 `room_id` 参数,确保积分统计页面可按房间筛选
|
|
|
|
|
|
11. **后台弹窗**:游戏管理页所有 `alert/confirm` 替换为全局 `window.adminDialog`(毛玻璃弹窗)
|