#!/bin/bash # 换算率标定批·新口径重测采集脚本(2026-09-23) # 前提:单关直入口口径退役 + 冒险条件口径生效 + L2 收紧/关间大奖励 10→5 已落 master—— # 首轮(直入口面、旧数值)读数作废,本脚本在冒险条件口径上全量重测。 # 10 次采集顺序执行:白板 + 6 个 OFAT 注入档冒险(na=100×双画像,同 seed0 配对) # + 3 个花费序战役(k=60×双画像)。产物合并 calibration.raw.jsonl(判定端 --from-raw 消费)。 set -u GODOT=/d/code/godot/Godot_v4.7.2-stable_win64_console.exe SLICE=/d/code/g-plan2-conversion-calibration/game QA=/d/code/g-plan2-conversion-calibration/production/qa/conversion-calibration mkdir -p "$QA" cd "$SLICE" || exit 1 run() { local name=$1; shift local t0=$(date +%s) "$GODOT" --headless --path . --script res://smoke/verifier_batch.gd -- "$@" > "$QA/$name.log" 2>&1 local rc=$? grep '^VJSON ' "$QA/$name.log" > "$QA/$name.vjson" local rows=$(wc -l < "$QA/$name.vjson") local errs=$(grep -cE 'SCRIPT ERROR|Parse Error' "$QA/$name.log") echo "[$(date +%H:%M:%S)] done $name rc=$rc rows=$rows errs=$errs $(( $(date +%s) - t0 ))s" } echo "=== 新口径重测开跑 $(date +%F' '%H:%M:%S) ===" run adv_base na=100 only=adventure seed0=8000 run adv_hp3 na=100 only=adventure seed0=8000 inject=max_hp:3 run adv_hp6 na=100 only=adventure seed0=8000 inject=max_hp:6 run adv_atk1 na=100 only=adventure seed0=8000 inject=atk:1 run adv_atk2 na=100 only=adventure seed0=8000 inject=atk:2 run adv_ac1 na=100 only=adventure seed0=8000 inject=armor_class:1 run adv_ac2 na=100 only=adventure seed0=8000 inject=armor_class:2 run camp_hp k=60 only=campaign seed0=8000 spend=hp_first run camp_atk k=60 only=campaign seed0=8000 spend=atk_first run camp_ac k=60 only=campaign seed0=8000 spend=armor_first cat "$QA"/adv_base.vjson "$QA"/adv_hp3.vjson "$QA"/adv_hp6.vjson "$QA"/adv_atk1.vjson "$QA"/adv_atk2.vjson \ "$QA"/adv_ac1.vjson "$QA"/adv_ac2.vjson "$QA"/camp_hp.vjson "$QA"/camp_atk.vjson "$QA"/camp_ac.vjson \ | sed 's/^VJSON //' > "$QA/calibration.raw.jsonl" echo "=== 合并完成:$(wc -l < "$QA/calibration.raw.jsonl") 局 → $QA/calibration.raw.jsonl ==="