fix(hunt): v2 九修 S1-S9 落地——10 人并发模拟迭代裁定(同阵容复测:去留 6/10→10/10)
研究闭环:v1 三轮 28 局四死因(失衡/社交真空/交互摩擦/观光羞辱)→ 四视角分析 → synthesis S1-S9 裁定 → 实施 → 同 10 人配置复测两轮 20 局。依据 research/hunt-sim/ (synthesis.md / metrics-v2.md / report.md),设计登记 23-hunt.md §16。 服务端 hunt-room.js: - S5 协作人声包:真人座位角色接线(杀熊/三连杀/旋风斩≥3 播角色句、greet 全座位); 满编真人房呼喊 2.5s 无 bot 应答 → 邻座角色代答 help_ack;喊话预算 10s 窗 2→3 - S7 难度重构:waveCounts 4 人房 ×4/3;alignPincers 第 3-5 波齐压拍(跨座位同种类 同秒进内圈,种子确定性保持);mobYielded bot 对人类防区怪让位 2s(只约束 bot, 不拦真人避免挥空真话说谎);gradeForEx 双轴评级(S=耐久≥9 且 ≥2 人各 6 杀, 单人带飞局上限 A) 客户端 game.js: - S1 WAVE 下滑恒出击(无怪=空挥真话),菜单收窄到波间休整窗(E3 修订)—— v1 误触菜单单人单局最多 14 次清零 - S2 冷却首拦才震 + 就绪 beat 轻叮(v1 全场 666 次乱滑连震) - S3 0 杀不播 kill_band0(「你还没开张」下架;复测 P08 0杀→12杀) - S4 看门狗重定义:本波出过手一级语音不触发、语音闲置每局 ≤1、一级降纯震 - S5③ help_call/help_ack 永不超时丢弃 - S6 后半平面 loop 低通 750Hz 第二线索(N/S 判读 63/69%→75/81%) - S8 教学作答步(T1-T3)下滑不再误跳 - S9 状态链按变化播(「固若金汤」复读归零) 测试同步:hunt-sim A1/A2/A12 断言更新(真人 greet/波次缩放/预算 3)、 playtest Block 3 按 S1 新语义改写(战斗中下滑=空挥 + 波间菜单) 回归:hunt-sim 16/16 + playtest 213 + guide 132 + engine-voice 19 全绿; balance-scan:挂机局 5/8 落 C/失守带(v1 恒满血)、optimal 单人带飞封顶 A 遗留:营地零损耗未破(18/20 局余10)——v3 头号,参数方案 report.md §5
This commit is contained in:
@@ -837,3 +837,21 @@ R1 起每轮的增量断言(修复回归)在各自设计文档的轮次小
|
||||
- 服务器不可达:TITLE 单击 → net_lost → net_gone → LOST 回大厅(明示失败,不静默死屏)。
|
||||
|
||||
**失败即不通过**:评级与 dur 不符(归因假话);服务器接受违规 act(冷却/方位/近战窗外命中);ev 与 snap 矛盾不收敛;bot 喊话压过/打断旁白(R1/R2 破);loop >3 路;教学狼扣耐久;失守局写入 best 排行榜。
|
||||
|
||||
### §24 补遗 · hunt v2 修订断言(2026-09-19,设计依据 [23-hunt.md](23-hunt.md) §16 / research/hunt-sim/)
|
||||
|
||||
- **S1 下滑语义**:WAVE 战斗态下滑(含弧内无怪)→ 恒发 act attack dir:S(空挥真话),
|
||||
菜单绝不打开;waveclear 后 8s 休整窗内下滑 → 菜单打开。(playtest Block 3 已按此改写)
|
||||
- **S2 冷却反馈**:同一冷却窗内第二次起的被拦滑动手势 → 无 error 震(仅首拦震);
|
||||
本窗被拦过 → 冷却就绪时刻恰一记 beat 震。
|
||||
- **S3/S9 语音纪律**:个人击杀 0 的局,kill_band0 在状态链与结算链均不出现;状态链
|
||||
连续两次上滑(无任何分档变化)→ 第二次不重复播报。
|
||||
- **S4 看门狗**:WAVE 内本波已有出手/击杀后闲置 10s → 无 gd_idle 语音(纯震);
|
||||
语音闲置每局 ≤1 次。
|
||||
- **S5 协作人声**:真人杀熊/三连杀 → 该座角色 kill 喊话广播;满编真人房(无 bot)
|
||||
callout 后 2.5s → 邻座角色 help_ack(priority);help_call/help_ack 待播不被
|
||||
2s 超时丢弃。
|
||||
- **S7 难度**:4 人房每波 spawn 数 = 3 人基准 ×4/3(waveCounts 口径);第 3-5 波
|
||||
存在同秒进内圈的跨座位齐压对;bot 在人类座位怪进内圈头 2s 内不出手该怪;
|
||||
ev end.grade 按 gradeForEx 双轴(S 需 ≥2 人各 6 杀)。
|
||||
- **S8 教学**:T1/T2/T3 作答步内下滑 → 不触发 tut_skip(T1 按 miss 答错处理)。
|
||||
|
||||
@@ -498,3 +498,44 @@ WAVE ──WS 断开──> 本地静默重连 ≤30s(net_lost) ──joined(res
|
||||
8. **巨兽 -2**:任务书"突入=耐久-1"为默认口径;第 3 波起加入暴熊(-2)作为重威胁,给击杀优先级一个明确信号(重 loop/重倒地音可辨),数值与播报(breach_heavy)配套,不改核心形态。
|
||||
9. **失守与入榜**:任务书"评级 S~C"隐含必完 5 波。裁定:耐久波内归零=失守终局(end_lose,无评级、不写 best,runs/totalKills 照记);胜利局才按 §3.6 评级写入 best——排行榜不被败局污染,失守有真话结算。
|
||||
10. **bot 强度调参(§7.2 数值修订,协议字段不变)**:初版严格按 §7.2 公式(反应带 eta≤2.2+rng×1.2、无空转、旋风斩 eta≤3≥3 必放)实测**零泄漏**——多种子仿真 3 bot 水准局余耐久恒 10(S),甚至真人全程挂机 2 bot 独守也恒 10,§3.4"3 bot 水准余 6-9"与"协作必要性"(§1.6 风险③)落空。根因是吞吐超配:3 猎人 1.2 杀/s vs 峰值到达 0.67 杀/s,冷却 2.5s 不构成约束。裁定修订为:反应带 **eta ≤ 2.0+rng×1.0**;出手决策加 **80% 空转概率**(500ms tick 内愣神,等效出手周期 ~4.5s);旋风斩 **eta≤2.5 ≥3 只且 60% 概率想起**。调后 24 种子扫描(`web/server/test/hunt-balance-scan.mjs`):挂机局 17/24 失守或余 ≤3(6 场失守,mean 3.3,C/失守口径 ✓);3 bot 水准局 17/24 余 6-9(mean 7.5,A/B 为主 ✓);真人最优仍 23/24 满耐久 S("比 bot 强"空间保留 ✓)。bot"不失误"语义保留(只打有目标的弧),弱化的是**反应速度与出手频率**(拟人迟钝),不是命中率。
|
||||
|
||||
## 16. v2 修订记录(2026-09-19,10 人并发模拟迭代;依据与数据见 research/hunt-sim/)
|
||||
|
||||
> 迭代章程 research/hunt-sim/00-plan.md;v1 诊断 analysis/01-04;裁定 synthesis.md(S1-S9);
|
||||
> 复测对比 metrics-v2.md(去留 6/10→10/10,弧错 22%→11%,N/S 可命中 63/69%→75/81%)。
|
||||
|
||||
1. **E3 修订(S1)**:WAVE 战斗态下滑**恒出击**(弧内无怪=空挥真话 atk_swish);
|
||||
模态菜单入口收窄到**波间休整窗**(waveclear 后 8s)与 LOBBY/END。原「无目标下滑=
|
||||
菜单」的语境折中废止——v1 实测多人战斗中误触菜单(最多单局 14 次),弹菜单+语音
|
||||
播报双重打断是退游死因之一。上滑无目标=状态链维持不变。
|
||||
2. **冷却反馈(S2)**:冷却内被拦只在**每个冷却窗首次**给 error 震(连拦静默);
|
||||
本窗被拦过则就绪时刻补一记 `beat` 轻震(无语音占用)。v1 实测全场 666 次乱滑连震。
|
||||
3. **kill_band0 下架(S3)**:个人击杀 0 时状态链/结算链**跳过**「你还没开张」
|
||||
(沉默优于羞辱;正向改写句列 TTS 批次)。0 杀玩家的去留反转(v2 P08:0杀→12杀)
|
||||
是本项最直接证据。
|
||||
4. **看门狗重定义(S4)**:WAVE 内本波有出手/击杀 → 一级语音永不触发;一级降纯震;
|
||||
语音闲置每局 ≤1 次;重教句只留在教学局。判定线=「耳朵在场」(等待是合法玩法)。
|
||||
5. **协作人声包(S5)**:①真人「扮演座位角色」(§3.3 既有设定)正式接线——杀熊/
|
||||
三连杀/旋风斩清 ≥3 时由该座角色播 kill/skill 句(服务端 creditKill/adjudicateSkill
|
||||
放开 slot.bot 限制);开局 greet 覆盖全部有角色座位;②满编真人房呼喊无 bot 可应 →
|
||||
2.5s 后由邻座真人角色代答 help_ack(服务端 pendingLines 兜底,v3 若加真人应答手势
|
||||
则替换);③help_call/help_ack 客户端**永不超时丢弃**(氛围句才受 R2 ≤2s 上限);
|
||||
④喊话全局预算 10s 窗 2→**3** 条。
|
||||
6. **后半平面第二线索(S6)**:身后 loop 在 ×0.6 响度之上叠加 **750Hz 低通**(音色
|
||||
发闷 ≠ 响度发闷)。N/S 轴从单线索变双线索,模拟实测可命中 63/69%→75/81%,新手
|
||||
自述「破案」。§8.3 的 pan 红线不变(方位仍由声像承载)。
|
||||
7. **难度与评级重构(S7)**:①波次量按座位缩放 `waveCounts`:4 人房 ×4/3(3 人房
|
||||
原值,§3.4 表为 3 人基准);②第 3-5 波插入**齐压拍** `alignPincers`:1-2 组跨座位
|
||||
同种类怪重定时到同秒进内圈(数量与 eta 不变、种子确定性保持;齐压在 startWave
|
||||
层应用,buildWaveScript 纯函数不动);③**bot 让位窗**:怪进内圈头 2s,bot 不与
|
||||
该防区人类座位抢(`mobYielded`,只约束 bot——对真人不可见不拦截,避免「挥空
|
||||
真话说谎」的暗墙;真人房的参与真空 v3 用分层匹配解决);④**评级双轴**
|
||||
`gradeForEx`:S = 耐久 ≥9 **且** ≥2 名猎人各 ≥6 个人击杀(单人带飞局上限 A)。
|
||||
8. **教学跳过保护(S8)**:作答步(T1/T2/T3)内下滑=答错处理,不再跳过教学;
|
||||
跳过仅在 T0/T4/完成等待态(v1 实测 P04 教学局手滑跳过、记恨三局)。
|
||||
9. **状态链按变化播(S9)**:耐久档/波次档/猎人数/击杀档与上次播报一致的分段跳过;
|
||||
全部无变化=仅 confirm 轻震(「营地固若金汤」复读投诉归零)。
|
||||
|
||||
**v3 头号遗留(未修,如实登记)**:营地零损耗未破(v2 复测 18/20 局余 10)——
|
||||
4 人房 ×4/3 + 齐压拍不足以穿透专家房吞吐(单人最多 34/51 杀)。下一档参数与
|
||||
分层匹配/保底猎物方案见 research/hunt-sim/report.md §5。
|
||||
|
||||
Reference in New Issue
Block a user