Files
MemRelay/projects/4111f53b-afa5-48e1-aaf8-d70a7edc0638/Checkpoint 2026-09-04 19-40-44 UTC [185f536cd2].md
T

49 lines
4.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
title: Checkpoint 2026-09-04 19:40:44 UTC [185f536cd2]
type: checkpoint
permalink: main/projects/4111f53b-afa5-48e1-aaf8-d70a7edc0638/checkpoint-2026-09-04-19-40-44-utc-185f536cd2
stable_id: c3d57a20-2881-4db2-ba98-572d030532ee
scope: project
memory_type: checkpoint
project_id: 4111f53b-afa5-48e1-aaf8-d70a7edc0638
usage_profile_id: 7aee455b-24cc-4008-bdaf-443721e6f939
status: active
revision: 1
request_id: ckpt-20260905-0340-round2-release
created_at: '2026-09-04T19:40:44.934835+00:00'
updated_at: '2026-09-04T19:40:44.934835+00:00'
tags:
- release
- population
- homecity-save
- workspace-persist
- aoebbs-notes
---
# 检查点 2026-09-05 03:40 — 第二轮修正完成并发布
## 完成内容(提交:58feaff 母城存档 / 64d4b89 人口与持久化 / edb9fa7 验收修正 / 07dbbe1 保存后原始值复位与差异合并 / 501488c 教程校对修正 / 502ae7d 收录教程笔记)
- 人口机制重做:起始上限 = civs.xml 根级 defaultpoplimit(200) + min(Σ Age0 链 PopulationCapExtra, defaultpopextralimit(50)),读取端防御性识别 PopulationLimit/ExtraLimit/LimitDelta/CapBonus(官方数据无实例)。写入:专属科技就地改;共用 Age0 科技(英国等)新建同形包装科技 Age0XxxXxx 并改 civs.xml agetech;硬上限为全局值。「人口与规则」页删除,人口编辑并入编辑器「人口上限」Tab。
- 暂存跨会话持久化:WorkspaceState/working.json,LoadAsync 恢复不再 ClearSession;ExportMod 以原版基线快照 + 累计改动导出 Additive Mod;差异页显示跨会话已暂存修改(StagedDiff 按 Key 合并,原版→当前各一条)。
- 存档编辑页(母城存档 sp_<Civ>_homecity.xml UTF-16LE + -v11.dat):类型 HomeCitySave* 前缀;备份注入写回(xml 校验和保留原值,同时写 .dat);写前整目录备份、恢复最近备份、游戏运行禁写;实验性提示。未实机验证。
- 保存后 EntityItem.CommitSaved 复位原始值;高级 XML 页与字段页双向刷新;卡牌/技能/战术 MarkSaved。
- 按钮位限制为 DE 每页 18 格(column 0–17),满则中文报错。FieldDefinitions 补人口子类型,删除幻觉字段。导出后清理与 xml 同名的 .xmb(DE xmb 优先)。
- 界面:顶栏重排、Ctrl+S、上下文右键菜单、树横向滚动/变体合并、AvalonEdit、按钮随状态启用。
- 教程笔记:references/aoebbs-tutorial/(16 份章节 md + 00-摘要与校对要点 155 条,标注官方/译文/站方实测/推断/未提及)。
## 验证
- Release 0 警告 0 错误;dotnet test 88/88;scripts/publish-wpf.ps1 已发布到 release/。
## 需用户实机确认
1. 共用 Age0 科技国家(英国)改人口 → 安装 Mod → 游戏内上限;官方无 civmods 示例,<civ> 节点匹配与根级 defaultpopextralimit 合并未验证。
2. 母城存档写回是否被游戏接受;失败用「恢复最近备份」。
3. age3-mod-status.json 自动登记是否被识别(教程/官方原文均未提及该文件,实现按游戏自写文件格式)。
- 验证手段:Startup/user.cfg 加 DebugOutputGameData,游戏把合并后数据写到 %TEMP%/Age of Empires 3 DE/Data,可 diff。候选功能:编辑器集成读取该目录做"验证 Mod 生效"。
## 给下个会话 / 坑
- 子代理若被切到 grok-4.6 会因 Other Models 额度停摆,需用 inherit 模型重启。
- browser-use 子代理无写文件工具;教程站匿名 403,只能走已登录的 Cursor 浏览器;用 CDP Runtime.evaluate 补白到 >26000 字符强制落盘到 ~/.cursor/browser-logs。
- 旧编辑器进程可能锁 bin/Release,编译用 -p:OutDir 指到 %TEMP%。
- ExportMod 仍会先删 Mod 的 Data/ 整目录(用户自放文件会丢)。
- mergeMode:官方只定义 modify/add/remove/replace 名称与缺省规则(匹配到→modify,否则 add);我们对改动节点写完整节点 replace,安全。
- 待办候选:DebugOutputGameData 验证功能;ExportMod 只删自己写的文件;存档页扩展卡组编辑。