docs: 验收技能跟上 SQLite 存档——预置存档改塞库行,加了别动共享端口的提醒
This commit is contained in:
1 parent
bc3ae96a38
commit
cb292f9f53
1 file changed
+11
-4
@@ -34,10 +34,13 @@ bench 里带调用计数器,计数变红说明轻量路径被改回重路径
|
|||||||
`run_in_background: true` 跑前台服务器,验完再停掉。
|
`run_in_background: true` 跑前台服务器,验完再停掉。
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# 1) 预置存档:想验"买得起"的路径,就先塞一份有钱的档。
|
# 1) 预置存档(SQLite,v2 起):想验"买得起"的路径,就先塞一行有钱的档。
|
||||||
# farm_id 直接映射到 <save-dir>/<farm_id>.json;字段缺失一律走默认值,
|
# python -c "
|
||||||
# 所以最小延迟 {version:2, state:{gold,level}} 就够。
|
# from farm.models import GameState
|
||||||
# 必须在同一条命令里 mkdir -p 好目录再写文件。
|
# from farm.storage import save_state
|
||||||
|
# st = GameState(); st.gold = 5000; st.level = 5
|
||||||
|
# save_state(st, '.e2e-saves/farm.db', 'boss')"
|
||||||
|
# 字段缺失一律走默认值;老 JSON 档也可以直接丢进 --save-dir,启动时自动迁移。
|
||||||
# 2) 起服务器(tick 小一点,3 秒一天)
|
# 2) 起服务器(tick 小一点,3 秒一天)
|
||||||
uv run main.py serve --port 8799 --tick 3 --save-dir .e2e-saves
|
uv run main.py serve --port 8799 --tick 3 --save-dir .e2e-saves
|
||||||
# 3) 用 RemoteFarm 驱动,跑完删掉脚本和 .e2e-saves/
|
# 3) 用 RemoteFarm 驱动,跑完删掉脚本和 .e2e-saves/
|
||||||
@@ -49,6 +52,10 @@ uv run main.py serve --port 8799 --tick 3 --save-dir .e2e-saves
|
|||||||
`while True: client.snapshot()` 会永远读到同一份旧数据——服务器在推进,
|
`while True: client.snapshot()` 会永远读到同一份旧数据——服务器在推进,
|
||||||
看起来却像卡死。非实时客户端必须自己调 `client.refresh()` 再读 `snapshot()`。
|
看起来却像卡死。非实时客户端必须自己调 `client.refresh()` 再读 `snapshot()`。
|
||||||
TUI/网页走 SSE 所以没这个问题。
|
TUI/网页走 SSE 所以没这个问题。
|
||||||
|
- **端口上可能有别人的服务器。** 8765 是默认端口,用户自己(或另一个 checkout)
|
||||||
|
起的实例可能正在上面跑、里面还有玩家进度。动手前先看 `/api/farms` 里有没有
|
||||||
|
不认识的活跃牧场;有就换端口验,**别 stop 它**。判断一个实例是不是本工作区
|
||||||
|
的代码,看它的存档目录在不在这个项目里(`saves/farm.db` 的 mtime 动不动)。
|
||||||
- **作物会缺水停长。** 天气随机消耗水分(晴 1 / 多云 0 / 干旱 2),
|
- **作物会缺水停长。** 天气随机消耗水分(晴 1 / 多云 0 / 干旱 2),
|
||||||
等成熟的循环里要盯水分补浇,否则 120 秒也等不到成熟。这也顺带证明了
|
等成熟的循环里要盯水分补浇,否则 120 秒也等不到成熟。这也顺带证明了
|
||||||
天气→浇水这条链真的在起作用。
|
天气→浇水这条链真的在起作用。
|
||||||
|
|||||||
Reference in new issue
Block a user