- 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.
5.1 KiB
5.1 KiB
Chapter1.rpy 审阅报告
文件信息
- 文件路径:
game/Chapters/Chapter1.rpy - 行数: 429
- 包含场景: Chapter1_Scene1 ~ Chapter1_Scene4
- 跳转终点: Chapter2_Scene1(位于 Chapter2.rpy)
语法错误
无严重语法错误。Ren'Py 基本语法正常,scene/show/hide/jump 语句格式正确,$ Python 赋值语句语法正常。
角色定义检查
| 角色 | 定义位置 | 使用情况 | 状态 |
|---|---|---|---|
me |
script.rpy:4 | 正常 | ✓ |
system_ |
script.rpy:11 | 正常 | ✓ |
xingyu |
script.rpy:5 | 正常 | ✓ |
lhy |
script.rpy:6 | 正常 | ✓ |
lzx |
script.rpy:7 | 仅旁白引用,未使用 Character 发言 | ✓ |
tongxue |
script.rpy:16 | 正常 | ✓ |
yutong |
script.rpy:13 | 正常 | ✓ |
ganshi |
script.rpy:17 | 正常 | ✓ |
xiaowei |
script.rpy:9 | 正常 | ✓ |
xiaowei_w |
script.rpy:10 | 正常 | ✓ |
me_w |
script.rpy:15 | 正常 | ✓ |
mom |
script.rpy:12 | 正常 | ✓ |
yh |
script.rpy:14 | 正常 | ✓ |
"便利店主" |
行343(字符串字面量) | ⚠️ 见下方说明 | ✓ |
关于"便利店主"角色(行 343)
"便利店主" "小任,新品。尝尝,你们年轻人喜欢这个。"
此角色未在 script.rpy 中定义为 Character 对象,使用了内联字符串作为说话人。Ren'Py 允许此写法,会自动生成临时角色。但建议统一在 script.rpy 中定义,便于管理颜色、语速等属性。
图像引用检查
所有 show 命令引用的图像均在 game/images/ 目录中找到对应文件:
| 引用 | 文件 |
|---|---|
aunt normal |
aunt normal.png ✓ |
xingyu thinking/laughing/laughing big/laughing 2 |
对应 png 均存在 ✓ |
ryt dialogue normal/hit/embarrass pocket/embarrass pocket2/normal spec |
对应 png 均存在 ✓ |
lhy dialogue normal |
lhy dialogue normal.png ✓ |
yh camerabag |
yh camerabag.png ✓ |
xiaowei / xiaowei embarrass |
对应 png 均存在 ✓ |
所有背景图像文件均存在 ✓
Flag 和变量检查
统计变量修改
| 变量 | 修改位置 | 累计修改值 |
|---|---|---|
lhy_stats["affection"] |
行85, 153, 323 | +3, +5, +3 = +11 |
lhy_stats["trust"] |
行86, 154 | +2, +5 = +7 |
lhy_stats["empathy"] |
行155 | +3 |
xingyu_stats["affection"] |
行87, 320 | +3, +5 = +8 |
xingyu_stats["cooperation"] |
行88, 321 | +2, +5 = +7 |
xingyu_stats["helpfulness"] |
行322 | +3 |
tao_stats["humorSense"] |
行89 | +2 |
tao_stats["selfAcceptance"] |
行156, 326, 380 | +1, +2, +1 = +4 |
tao_stats["studyStress"] |
行157, 381 | +2, +1 = +3 |
lzx_stats["infoOpenness"] |
行90 | +1 |
yutong_stats["affection"] |
行193, 378, 397 | +3, +2, +3 = +8 |
yutong_stats["attention"] |
行194, 379, 398 | +5, +3, +4 = +12 |
yutong_stats["h_academicSupport"] |
行195 | +1 |
xiaowei_stats["affection"] |
行233, 412 | +4, +3 = +7 |
xiaowei_stats["interactionFrequency"] |
行234, 413 | +2, +3 = +5 |
xiaowei_stats["is_xiaowei_w"] |
行235 | 设为 False |
yh_stats["affection"] |
行324 | +3 |
yh_stats["understanding"] |
行325 | +2 |
所有修改的 stat key 均在 script.rpy 中定义 ✓
其他变量
gallery_photo4_unlocked = True(行73): 定义在 script.rpy:90 ✓game_day/game_period: 正常赋值 ✓
逻辑错误
⚠️ 1. hide ryt 冗余调用(行 128)
# 行125: #show ryt hit at center with dissolve ← 已被注释
# 行126: scene bg playground with dissolve ← scene 清空所有图像
# 行127: me "深吸一口气..." ← me 无 sprite 也能说话
# 行128: hide ryt with dissolve ← ryt 已不存在,无操作
show ryt 已被注释,且 scene 语句已清空场景,hide ryt 为无效操作。不会导致运行时错误,但可删除。
⚠️ 2. $ xiaowei_stats["is_xiaowei_w"] = False 冗余(行 235)
is_xiaowei_w 默认值已为 False(script.rpy:46),此处重新赋值无实际效果。虽不致命,但如果意图是"在特定剧情点重置该 flag",应确认逻辑正确性。
奇怪/不当的对话
无明显问题
Chapter1 的对话整体符合角色设定,叙事流畅,不存在明显不当内容。
小建议
- 行58:
me "你们先打,下次我一定来 {cps=3} {cps=20}——前提是我妈能接受她儿子在篮球场上挥洒青春而不是在车里背单词。"中{cps=3}后跟空格再{cps=20},在空格处会以 cps=20 显示,即瞬间且无声停顿后正常语速。符合预期停顿效果。
清理建议
- 删除无效注释行(如行61 的
#stop music fadeout 1.0、行125 的#show ryt hit...等) - 删除元数据注释(行71, 78, 165, 177, 182, 218, 243 中的
.lzx标注属于作者审阅标记,不应留在正式脚本中) - 将
"便利店主"统一定义为 Character 对象 - 删除行128 的冗余
hide ryt