47 lines
1.7 KiB
Bash
47 lines
1.7 KiB
Bash
#!/bin/bash
|
|
# 보스 자동 검증 — 보스·페이즈마다 일정 시간 싸우게 두고(플레이어 무적 끔 · 가만히 서 있음) 스킬별 시전·명중을 요약한다.
|
|
# 사용: verify.sh "<코드:페이즈수:초> ..." 예) verify.sh "R1:4:75 C5:1:60"
|
|
# Play 는 이미 켜져 있어야 한다(감시자도 이 스크립트가 붙인다). 끝나면 보스전에서 나온다(Play 종료는 부르는 쪽이 한다).
|
|
source "C:/Users/sw/AppData/Local/Temp/claude/E--BurningTimes/3562a2c1-e88a-4143-b7ec-e74c317778d8/scratchpad/bt.sh"
|
|
OUT="$SP/verify"
|
|
mkdir -p "$OUT"
|
|
NAMES="$P/Assets/DataTables/MonsterSkillTable_BT.json"
|
|
|
|
now_t() {
|
|
ev probe 2>/dev/null | head -1 | grep -o " t=[0-9.]*" | cut -d= -f2
|
|
}
|
|
|
|
ev monitor_install >/dev/null
|
|
PILOT="${PILOT:-still}"
|
|
TAG="${TAG:-}"
|
|
for item in $1; do
|
|
code=$(echo "$item" | cut -d: -f1)
|
|
phases=$(echo "$item" | cut -d: -f2)
|
|
secs=$(echo "$item" | cut -d: -f3)
|
|
for ((p = 0; p < phases; p++)); do
|
|
ev arena tier 1 >/dev/null
|
|
ev arena enter "$code" >/dev/null
|
|
sleep 2
|
|
if [ "$p" -gt 0 ]; then
|
|
ev arena phase "$p" >/dev/null
|
|
sleep 3
|
|
fi
|
|
ev arena inv off >/dev/null
|
|
ev pilot_install $PILOT >/dev/null
|
|
start=$(now_t)
|
|
echo "[$(date +%H:%M:%S)] $code P$((p + 1)) 시작 t=$start (${secs}초)"
|
|
sleep "$secs"
|
|
{
|
|
echo "=== $code P$((p + 1)) · ${secs}초 · 시작 t=$start · 조종 $PILOT ==="
|
|
ev probe | sed -n '2p;4p;7p;8p'
|
|
python "$SP/summarize.py" "$SP/monitor.log" "$NAMES" 5 "$start" "$P/Assets/BurningTimes/Boss/Data/BossConfig.json"
|
|
errs
|
|
} > "$OUT/${code}_P$((p + 1))$TAG.txt" 2>&1
|
|
done
|
|
done
|
|
ev pilot_install off >/dev/null
|
|
ev arena inv on >/dev/null
|
|
ev arena tier 1 >/dev/null
|
|
ev arena exit >/dev/null
|
|
echo "[$(date +%H:%M:%S)] 검증 끝"
|