4.0 KiB
4.0 KiB
title, type, permalink, stable_id, scope, memory_type, project_id, usage_profile_id, status, revision, request_id, created_at, updated_at, tags
| title | type | permalink | stable_id | scope | memory_type | project_id | usage_profile_id | status | revision | request_id | created_at | updated_at | tags | |||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Checkpoint 2026-09-04 19:40:44 UTC [185f536cd2] | checkpoint | main/projects/4111f53b-afa5-48e1-aaf8-d70a7edc0638/checkpoint-2026-09-04-19-40-44-utc-185f536cd2 | c3d57a20-2881-4db2-ba98-572d030532ee | project | checkpoint | 4111f53b-afa5-48e1-aaf8-d70a7edc0638 | 7aee455b-24cc-4008-bdaf-443721e6f939 | active | 1 | ckpt-20260905-0340-round2-release | 2026-09-04T19:40:44.934835+00:00 | 2026-09-04T19:40:44.934835+00:00 |
|
检查点 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__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/。
需用户实机确认
- 共用 Age0 科技国家(英国)改人口 → 安装 Mod → 游戏内上限;官方无 civmods 示例, 节点匹配与根级 defaultpopextralimit 合并未验证。
- 母城存档写回是否被游戏接受;失败用「恢复最近备份」。
- 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 只删自己写的文件;存档页扩展卡组编辑。