- Created Chapter1-review.md with syntax, character definitions, and dialogue checks. - Created Chapter2-review.md with syntax, missing images, and logic errors. - Created Chapter2-Side-review.md addressing syntax, character definitions, and dialogue issues. - Added SUMMARY.md to summarize review findings and highlight critical issues. - Included new image assets for xiaowei and backup files. - Identified and documented several logic errors and suggestions for code cleanup across chapters.
161 lines
5.3 KiB
Markdown
161 lines
5.3 KiB
Markdown
# Chapter2.rpy 审阅报告
|
||
|
||
## 文件信息
|
||
- 文件路径: `game/Chapters/Chapter2/Chapter2.rpy`
|
||
- 行数: 440
|
||
- 包含场景: Chapter2_Scene1, C2S2 ~ C2S7 + C2S5_end
|
||
- 新增角色定义: `zhuchi` (主持人), `yang` (杨义涵)
|
||
|
||
---
|
||
|
||
## 语法错误
|
||
|
||
**无语法错误**。`menu` 语句、条件跳转、`if`/`else` 结构基本正确(详见下方逻辑错误部分)。
|
||
|
||
---
|
||
|
||
## 角色定义检查
|
||
|
||
| 角色 | 定义位置 | 使用情况 | 状态 |
|
||
|------|----------|----------|------|
|
||
| `me` | script.rpy:4 | 正常 | ✓ |
|
||
| `system_` | script.rpy:11 | 正常 | ✓ |
|
||
| `xingyu` | script.rpy:5 | 正常 | ✓ |
|
||
| `lhy` | script.rpy:6 | 正常 | ✓ |
|
||
| `yh` | script.rpy:14 | 正常 | ✓ |
|
||
| `xiaowei` | script.rpy:9 | 正常 | ✓ |
|
||
| `xiaowei_w` | script.rpy:10 | 正常 | ✓ |
|
||
| `me_w` | script.rpy:15 | 正常 | ✓ |
|
||
| `yutong` | script.rpy:13 | 正常 | ✓ |
|
||
| `zhuchi` | Chapter2.rpy:2 | 正常 | ✓ |
|
||
| `yang` | Chapter2.rpy:3 | 正常 | ✓ |
|
||
| `tongxue` | script.rpy:16 | 未在 Chapter2 使用 | — |
|
||
|
||
### yutong 角色使用
|
||
`yutong` 在 C2S3 (行194) 中被 `show` 显示为 sprite,但 `game/images/` 中**不存在 `yutong.png`**,游戏运行到此时会报错。详见下方"缺失资源"。
|
||
|
||
---
|
||
|
||
## 图像引用检查
|
||
|
||
### 🔴 缺失的图像文件
|
||
|
||
| 引用位置 | 图像名 | 文件 | 状态 |
|
||
|----------|--------|------|------|
|
||
| 行58 | `bg computer lab` | — | **缺失!** |
|
||
| 行130 | `bg computer lab door` | — | **缺失!** |
|
||
| 行194 | `yutong` (sprite) | — | **缺失!** |
|
||
| 行337 | `bg schoolgate evening` | — | **缺失!** |
|
||
| 行406 | `bg ryt room night` | — | **缺失!** |
|
||
|
||
### 已存在但未跟踪的资源
|
||
| 引用 | 文件 | Git 状态 |
|
||
|------|------|-----------|
|
||
| `bg auditorium` (行233) | `bg auditorium.png` | untracked |
|
||
| `bg rooftop` | `bg rooftop.png` | untracked |
|
||
| `bg xiaowei room night` | `bg xiaowei room night.png` | untracked |
|
||
|
||
---
|
||
|
||
## Flag 和变量检查
|
||
|
||
### Flag 字典
|
||
|
||
| Flag | 设置位置 | 读取位置 | 状态 |
|
||
|------|----------|----------|------|
|
||
| `flag["lhy_team"]` | 行44 (True) / 行48 (False) | 未读取 | ⚠️ 只写未读 |
|
||
| `flag["C2S1_think"]` | 行51 (False) | 未读取 | ⚠️ 只写未读 |
|
||
| `flag["competition_note"]` | C2Side1.rpy:75 (True) | 行237 `.get(...)` | ✓ |
|
||
|
||
### 统计变量修改
|
||
|
||
| 变量 | 修改位置 | 值 |
|
||
|------|----------|-----|
|
||
| `lhy_stats["affection"]` | 行43, 318 | +5, +1 |
|
||
| `xingyu_stats["affection"]` | 行47 | -5 (惩罚分支) |
|
||
| `yh_stats["affection"]` | 行175, 314 | +2, +1 |
|
||
| `yh_stats["understanding"]` | 行176 | +2 |
|
||
| `xiaowei_stats["affection"]` | 行173, 281, 367-378 | 根据选择 +1~3 |
|
||
| `xiaowei_stats["interactionFrequency"]` | 行174, 282, 398 | +2 × 2 |
|
||
| `xiaowei_stats["synergy"]` | 行397 | +3 |
|
||
| `xiaowei_stats["is_xiaowei_w"]` | 行283 | True |
|
||
| `yutong_stats["affection"]` | 行224, 429 | +2 × 2 |
|
||
| `yutong_stats["attention"]` | 行225, 430 | +2 × 2 |
|
||
| `tao_stats["humorSense"]` | 行330 | +2 |
|
||
| `tao_stats["selfAcceptance"]` | 行432 | +2 |
|
||
| `lzx_stats["infoOpenness"]` | 行431 | +1 |
|
||
|
||
所有 key 均在 script.rpy 中定义 ✓
|
||
|
||
---
|
||
|
||
## 逻辑错误
|
||
|
||
### 🔴 严重: C2S3 条件跳转无效 (行 178-181)
|
||
|
||
```renpy
|
||
if yutong_stats["affection"] >= 8 and yutong_stats["attention"] >= 12:
|
||
jump C2S3
|
||
|
||
label C2S3:
|
||
```
|
||
|
||
**问题**: `if` 语句没有 `else` 分支。条件为 False 时,代码将"掉入"下一行——而下一行正好是 `label C2S3:`。意味着 **无论条件真假,C2S3 都会执行**,条件形同虚设。
|
||
|
||
实际上,Chapter1 结束时 `yutong_stats["affection"]` = 8, `attention` = 12(恰好等于阈值),所以当前数据下条件始终为 True。但:
|
||
1. 如果后续修改 Chapter1 的数值,bug 就会暴露
|
||
2. 代码意图显然是"条件满足才进入 C2S3"
|
||
|
||
**修复**: 添加 else 跳转:
|
||
```renpy
|
||
if yutong_stats["affection"] >= 8 and yutong_stats["attention"] >= 12:
|
||
jump C2S3
|
||
else:
|
||
jump C2S4
|
||
```
|
||
|
||
### ⚠️ 2. `flag["lhy_team"]` 和 `flag["C2S1_think"]` 只写未读
|
||
|
||
- `flag["lhy_team"]` 在行44/48 被设置,但整个代码库中从未读取。如果未来章节需要使用,建议添加注释说明用途。
|
||
- `flag["C2S1_think"]` 同样只设置未使用。
|
||
|
||
---
|
||
|
||
## 奇怪/不当的对话
|
||
|
||
### 🔴 行63: 不当用词
|
||
|
||
```renpy
|
||
me "训练赛,对手是颜涵和杨天赐。一个音游龙👃,一个不知道是男娘还是男同的玩意儿。"
|
||
```
|
||
|
||
- emoji `👃` 在 Ren'Py 中可能无法正确渲染
|
||
- "男娘"和"男同"属于对同学不尊重的称呼,与主角"用幽默掩饰不自信"的人设不完全吻合。建议修改为更符合高中生日常表达的方式。
|
||
|
||
### ⚠️ 行301: 疑似错别字
|
||
|
||
```renpy
|
||
yang "我要和仁懿涛——"
|
||
```
|
||
|
||
"任懿涛"写成了"仁懿涛"。若是刻意设计(体现角色口误),建议加注释;否则应修正。
|
||
|
||
### ⚠️ 行326: 注释中的存疑台词
|
||
|
||
```renpy
|
||
# me "最终事件平息。比赛继续。但我鼻子里残留着韭菜盒子的味道,还有满场的笑声没散。"
|
||
```
|
||
|
||
这段被注释掉了。如果决定不用,建议直接删除而非保留注释。
|
||
|
||
---
|
||
|
||
## 清理建议
|
||
|
||
1. **补充 5 个缺失的图像文件**(见上方清单)
|
||
2. 修复 C2S3 条件跳转逻辑(行178-181)
|
||
3. 修改行63的不当用词
|
||
4. 确认行301的"仁懿涛"是否为刻意
|
||
5. 删除行325-326的注释代码
|
||
6. 为只写未读的 flag 添加注释说明用途,或标记为 `# TODO: 第X章使用`
|