新增拼手气功能。

This commit is contained in:
liuwei
2025-08-13 17:36:14 +08:00
parent cbceb71681
commit 07e2e35665
4 changed files with 870 additions and 0 deletions

199
plugins/lucky_pot/readme.md Normal file
View File

@@ -0,0 +1,199 @@
好,我给你整理一份 **“拼手气大奖池” Python 版多人积分消耗游戏设计文档**,你直接可以用它做开发。
我会从 **玩法逻辑 → 系统设计 → 数据结构 → 流程图 → 反刷积分策略 → 趣味化细节** 来写。
---
# 🎯 拼手气大奖池 — 游戏设计文档
## 1. 游戏定位
* **目标**:多人同时参与,通过一次性高额入场费 + 奖池抽水,快速消耗富余积分。
* **核心卖点**
* 开奖瞬间的刺激与悬念。
* 多人参与,竞争氛围浓。
* 奖池分配随机,能制造“欧皇”和“非酋”的话题性。
* **玩法周期**30\~60秒一局支持高频次参与。
---
## 2. 玩法规则
1. 游戏开始时,系统开放“大奖池”房间。
2. 玩家支付固定入场费100积分进入。
3. 到达房间人数上限可设10人或倒计时结束30秒房间封闭并开奖。
4. 系统收取奖池总额的抽水20%),剩余部分进行分配:
* 按随机比例分配给所有参与者(保证有输有赢)。
* 可设置“欧皇大奖”机制1人随机获得额外10\~30%积分。
5. 本局结束后,所有人的积分即时更新,可立即参与下一局。
---
## 3. 核心参数
| 参数 | 示例值 | 说明 |
| ------ | ------ | ------------ |
| 入场费 | 100 积分 | 所有人一致 |
| 最大人数 | 10 | 可动态调整 |
| 倒计时 | 30 秒 | 人数不到也开奖 |
| 抽水比例 | 20% | 系统留存 |
| 欧皇奖励概率 | 20% | 额外加成 |
| 分配算法 | 随机比例 | 保证总分配不超过奖池余额 |
---
## 4. 系统设计
### 4.1 模块划分
1. **用户积分模块**
* 获取当前玩家积分
* 增减积分(扣入场费/加奖励)
* 防止负数积分
2. **房间管理模块**
* 创建房间(状态:等待中/开奖中/已结束)
* 加入房间(扣除入场费)
* 倒计时触发开奖
* 人满提前开奖
3. **开奖模块**
* 计算奖池金额
* 扣除抽水
* 生成随机分配结果
* 欧皇额外加成
4. **交互模块**
* 文本 + Emoji 显示结果
* 倒计时提醒(⌛)
* 欧皇高光提示(🏆)
* 输家调侃提示(💔)
---
## 5. 数据结构设计
### 5.1 玩家信息
```python
{
"user_id": "U001",
"nickname": "张三",
"points": 1200
}
```
### 5.2 房间信息
```python
{
"room_id": "R20250813",
"status": "waiting", # waiting | drawing | finished
"entry_fee": 100,
"max_players": 10,
"players": ["U001", "U002", "U003"],
"start_time": 1690000000,
"countdown": 30
}
```
### 5.3 开奖结果
```python
{
"room_id": "R20250813",
"winner_list": [
{"user_id": "U001", "nickname": "张三", "reward": 420},
{"user_id": "U002", "nickname": "李四", "reward": 5}
],
"house_cut": 200 # 抽水金额
}
```
---
## 6. 游戏流程图
```
[创建房间]
[等待玩家加入] ← 玩家支付入场费
↓(人数满 或 倒计时结束)
[开奖计算] → 扣除抽水 → 欧皇加成 → 随机分配
[公布结果] → 更新积分
[进入下一局]
```
---
## 7. 反刷 & 防作弊策略
1. **冷却时间**:同一玩家连续参加需间隔 5 秒,防止脚本刷。
2. **最小积分门槛**:积分低于入场费无法参与。
3. **抽水**20% 或更多,确保积分总量持续下降。
4. **欧皇概率可控**:防止同一人连续中奖。
5. **结果随机种子**:结合时间戳+玩家ID防止预测。
---
## 8. 趣味化细节
* **倒计时提示**
```
⏳ 大奖池开奖倒计时 10 秒!快上车!
```
* **开奖动画**
```
🧧 开奖中...
💥💥💥
```
* **结果文案**
* 欧皇:
```
🏆 张三成为本轮欧皇!一把拿走 420 积分!
```
* 非酋:
```
💔 李四5积分到手... 这也太离谱了!
```
---
## 9. Python实现建议
* 数据存储SQLite方便调试或 Redis高并发
* 交互:命令行/群聊机器人QQ/微信)。
* 定时器:`threading.Timer` 或 `asyncio`。
* 奖池分配算法:
```python
import random
def distribute_prizes(players, total_points):
rewards = []
remaining = total_points
for i in range(len(players)-1):
share = random.randint(1, remaining - (len(players)-i-1))
rewards.append(share)
remaining -= share
rewards.append(remaining)
random.shuffle(rewards)
return list(zip(players, rewards))
```
---
如果你要做成可直接跑的 Python 版本,我可以帮你按这个文档直接写一个 **多人拼手气大奖池可执行程序**,带 emoji 文案和积分抽水逻辑。这样你可以马上在群里测试积分消耗效果。
你要我帮你直接写这个完整代码吗?这样你今晚就能跑起来测试。