This commit is contained in:
2025-10-17 20:56:50 +08:00
commit 90094ccd5a
342 changed files with 144988 additions and 0 deletions

View File

@@ -0,0 +1,430 @@
# 游戏功能模块实现文档
## 概述
本文档记录了所有游戏功能模块的实现细节包括命令、参数、响应处理和UI展示。
---
## 一、每日功能模块
### 1. 队伍阵容 (TeamStatus.vue)
**组件位置**: `src/components/TeamStatus.vue`
**功能描述**: 显示和切换队伍阵容
**命令**:
- 获取队伍信息: `presetteam_getinfo`
- 参数: `{}`
- 响应: 存储在 `tokenStore.gameData.presetTeam`
- 切换队伍: `presetteam_saveteam`
- 参数: `{ teamId: number }`
- 响应: 更新当前使用的队伍ID
**数据结构**:
```javascript
{
useTeamId: number, // 当前使用的队伍ID (1-4)
teams: {
[teamId]: {
teamInfo: {
[position]: {
heroId: number,
level: number,
...
}
}
}
}
}
```
**UI显示**:
- 队伍选择器 (1-4按钮)
- 当前队伍阵容 (英雄头像列表)
- 刷新按钮
---
### 2. 每日任务 (DailyTaskStatus.vue)
**组件位置**: `src/components/DailyTaskStatus.vue`
**功能描述**: 显示每日任务完成状态
**命令**:
- 任务数据通过角色信息获取: `role_getroleinfo`
- 参数: `{}`
- 响应: 存储在 `tokenStore.gameData.roleInfo`
**UI显示**:
- 任务列表
- 完成状态标识
- 进度条
---
### 3. 咸将塔 (TowerStatus.vue)
**组件位置**: `src/components/TowerStatus.vue`
**功能描述**: 爬塔功能
**命令**:
- 获取塔信息: `tower_getinfo`
- 参数: `{}`
- 响应: 存储在 `tokenStore.gameData.roleInfo.role.tower`
- 开始爬塔: `fight_starttower`
- 参数: `{}`
- 响应: 爬塔结果
**数据结构**:
```javascript
{
tower: {
id: number, // 塔层ID (floor*10 + layer)
energy: number // 剩余体力
}
}
```
**UI显示**:
- 当前层数 (floor-layer)
- 剩余体力
- 爬塔按钮
---
### 4. 挂机时间
**组件位置**: `src/components/GameStatus.vue` (内联代码)
**功能描述**: 挂机时间管理
**命令**:
- 加钟: `system_mysharecallback`
- 参数: `{ isSkipShareCard: true, type: 2 }`
- 发送4次间隔300ms
- 领取奖励: `system_claimhangupreward`
- 参数: `{}`
- 配合分享回调使用
**数据结构**:
```javascript
{
hangUp: {
lastTime: number, // 开始挂机时间
hangUpTime: number, // 挂机总时长
remainingTime: number, // 剩余时间
elapsedTime: number // 已挂机时间
}
}
```
**UI显示**:
- 挂机倒计时
- 已挂机时间
- 加钟按钮
- 领取奖励按钮
---
### 5. 咸鱼大冲关
**组件位置**: `src/components/GameStatus.vue` (内联代码)
**功能描述**: 自动答题功能
**命令**:
- 开始答题: `study_startgame`
- 参数: `{}`
- 自动答题流程由 tokenStore 处理
**数据结构**:
```javascript
{
studyStatus: {
isAnswering: boolean,
isCompleted: boolean,
questionCount: number,
answeredCount: number,
status: string,
timestamp: number
}
}
```
**UI显示**:
- 答题状态标识
- 进度显示
- 一键答题按钮
---
### 6. 盐罐机器人
**组件位置**: `src/components/GameStatus.vue` (内联代码)
**功能描述**: 盐罐机器人管理
**命令**:
- 停止: `bottlehelper_stop`
- 参数: `{}`
- 启动: `bottlehelper_start`
- 参数: `{}`
**数据结构**:
```javascript
{
bottleHelpers: {
helperStopTime: number // 停止时间戳
}
}
```
**UI显示**:
- 运行状态
- 剩余时间倒计时
- 启动/重启按钮
---
## 二、俱乐部功能模块
### 1. 俱乐部签到
**组件位置**: `src/components/GameStatus.vue` (内联代码)
**功能描述**: 俱乐部每日签到
**命令**:
- 签到: `legion_signin`
- 参数: `{}`
- 响应: 更新角色信息
**数据结构**:
```javascript
{
statisticsTime: {
'legion:sign:in': number // 签到时间戳
}
}
```
**UI显示**:
- 签到状态
- 俱乐部名称
- 签到按钮
---
### 2. 俱乐部赛车 (CarManagement.vue)
**组件位置**: `src/components/CarManagement.vue`
**功能描述**: 赛车管理和比赛
**命令**: (需要查看CarManagement组件)
- 相关命令在该组件中定义
**UI显示**:
- 赛车信息
- 比赛状态
- 操作按钮
---
### 3. 俱乐部信息 (ClubInfo.vue)
**组件位置**: `src/components/ClubInfo.vue`
**功能描述**: 显示俱乐部详细信息
**命令**:
- 获取俱乐部信息: `legion_getinfo`
- 参数: `{}`
- 响应: 存储在 `tokenStore.gameData.legionInfo`
**数据结构**:
```javascript
{
legionInfo: {
info: {
id: number,
name: string,
level: number,
power: number,
leaderId: number,
members: { [roleId]: memberInfo }
}
}
}
```
**UI显示**:
- 俱乐部概览 (战力、段位、成员数等)
- 成员列表
- 盐场战绩
---
### 4. 俱乐部排位
**组件位置**: `src/components/GameStatus.vue` (内联代码)
**功能描述**: 俱乐部排位报名
**命令**:
- 报名排位: `legionmatch_rolesignup`
- 参数: `{}`
- 响应: 更新报名状态
**数据结构**:
```javascript
{
statistics: {
'last:legion:match:sign:up:time': number // 报名时间戳
}
}
```
**UI显示**:
- 报名状态
- 赛事说明
- 报名按钮
---
## 三、活动功能模块
### 1. 月度任务
**组件位置**: `src/components/GameStatus.vue` (内联代码)
**功能描述**: 月度钓鱼和竞技场任务管理
**命令**:
- 获取月度数据: `activity_get`
- 参数: `{}`
- 响应: 月度活动数据
- 钓鱼: `artifact_lottery`
- 参数: `{ lotteryNumber: number, newFree: true, type: 1 }`
- 免费3次后消耗资源
- 竞技场开始: `arena_startarea`
- 参数: `{}`
- 获取目标: `arena_getareatarget`
- 参数: `{ refresh: boolean }`
- 战斗: `fight_startareaarena`
- 参数: `{ targetId: number }`
**数据结构**:
```javascript
{
monthActivity: {
myMonthInfo: {
'2': { num: number } // 钓鱼次数
},
myArenaInfo: {
num: number // 竞技场次数
}
}
}
```
**目标值**:
- 钓鱼: 320次/月
- 竞技场: 240次/月
**UI显示**:
- 钓鱼进度
- 竞技场进度
- 剩余天数
- 补齐按钮
- 一键完成按钮
---
### 2. 咸将升级模块 (UpgradeModule.vue)
**组件位置**: `src/components/UpgradeModule.vue`
**功能描述**: 批量咸将升星和图鉴升级
**命令**:
- 咸将升星: `hero_heroupgradestar`
- 参数: `{ heroId: number }`
- 批量执行
- 图鉴升级: `book_upgrade`
- 参数: `{ heroId: number }`
- 批量执行
- 领取图鉴奖励: `book_claimpointreward`
- 参数: `{}`
- 可配置次数
**咸将ID范围**:
- 第一批: 101-120
- 第二批: 201-228
- 第三批: 301-314
**配置项**:
- 升星次数: 1-100
- 图鉴升级次数: 1-100
- 领取奖励: 开关
- 领取奖励次数: 1-100
**执行顺序**: 固定为先升星后图鉴
**UI显示**:
- 进度条
- 当前操作说明
- 配置项输入
- 开始升级按钮
---
## 四、身份牌 (IdentityCard.vue)
**组件位置**: `src/components/IdentityCard.vue`
**功能描述**: 显示玩家基本信息
**数据来源**: `tokenStore.gameData.roleInfo`
**UI显示**:
- 玩家头像
- 玩家名称
- 等级、战力等基本信息
- 嵌入式显示模式
---
## 重构方案
### 新的组件结构
```
GameStatus.vue (使用 n-tabs)
├── IdentityCard (常驻顶部)
├── Tab 1: 每日
│ ├── TeamStatus
│ ├── DailyTaskStatus
│ ├── TowerStatus
│ ├── HangUpStatus (新建组件)
│ ├── StudyStatus (新建组件)
│ └── BottleHelperStatus (新建组件)
├── Tab 2: 俱乐部
│ ├── LegionSigninStatus (新建组件)
│ ├── CarManagement
│ ├── ClubInfo
│ └── LegionMatchStatus (新建组件)
└── Tab 3: 活动
├── MonthlyTaskStatus (新建组件)
└── UpgradeModule
```
### 需要提取的内联组件
1. HangUpStatus - 挂机时间
2. StudyStatus - 咸鱼大冲关
3. BottleHelperStatus - 盐罐机器人
4. LegionSigninStatus - 俱乐部签到
5. LegionMatchStatus - 俱乐部排位
6. MonthlyTaskStatus - 月度任务
这些组件将保持原有的逻辑和UI仅从GameStatus.vue中分离出来。