62 lines
3.3 KiB
Markdown
62 lines
3.3 KiB
Markdown
# AA cycle / star settlement investigation
|
|
|
|
The reported King in Check win displayed zero consumed cycles and no completed
|
|
star conditions. This is not yet a verified complete fix.
|
|
|
|
## Confirmed evidence
|
|
|
|
- The original win report has 36 battle turns, `RoundCnt=0` and stage 30501021.
|
|
The cached native PVEGameStatistics had `totalBattleRounds=0`,
|
|
`challengeTurnCount=0`, `challengeTurnLeft=7`. A battle turn is not a cycle;
|
|
the meaning and wire mapping of the additional counters remain unverified.
|
|
- `finishChallengeBattle` copies `RoundCnt` into Peak `CyclesUsed` and never
|
|
supplies `FinishedTargetList`. This accounts for the displayed values, but
|
|
does not prove that the battle used zero cycles or earned no stars.
|
|
- The original start packet had `RoundsLimit=40`: Peak 104 was configured
|
|
through the separate ChallengeMaze table with the same numeric ID.
|
|
- Read-only captures from the running Client's ConstValueClientExcelTable
|
|
contain `ChallengePeak_Mob_Turn_Limit=6`,
|
|
`ChallengePeak_Boss_Turn_Limit=6`, and
|
|
`ChallengePeak_HardBoss_Turn_Limit=2`.
|
|
- Native BattleTargetConfigExcelTable rows referenced by the installed Peak
|
|
tables are preserved in `resources/PeakBattleConfig.json`, together with
|
|
Client version, GameAssembly SHA-256 and capture SHA-256. Boss targets
|
|
3003/3004/3005 have thresholds 6/4/2; 3000 is a death-count condition.
|
|
These are BattleTargetConfig rows, not ChallengeTargetConfig rows.
|
|
|
|
The ignored evidence directory is `battle_diagnostics/peak-cycle-20261019`.
|
|
`Player.native-tables.log` is the source for the new resource. Temporary
|
|
probes inspect named types/tables with bounded work per heartbeat. A missing
|
|
BattleTargetExcelTable was corrected to the observed
|
|
BattleTargetConfigExcelTable; no assembly-wide reflection is used.
|
|
|
|
## Changes made
|
|
|
|
- Peak start and restart use an explicit AA battle type and the native
|
|
normal/boss/hard limit, independent of the ChallengeMaze ID namespace.
|
|
- Rules reject a mismatching Client version, missing provenance, unknown
|
|
event or missing native limit. No guessed fallback is installed.
|
|
- Full PVEBattleResult requests are archived under `battle_diagnostics`,
|
|
including obfuscated and unknown protobuf fields that the aggregate damage
|
|
report does not retain. JSON is for inspection; binary preserves unknowns.
|
|
- `tools/peak_result_snapshot.lua` reads the six named native counters and
|
|
target lists for comparison with the next server packet. Its temporary
|
|
copy in scripts must be removed after reproduction.
|
|
|
|
Focused Peak configuration and battle capture tests pass; a game-server build
|
|
passes. This does not verify Client battle loading, cycle display, stars,
|
|
medals or persistence. The existing unconditional unlock/medal response in
|
|
GetChallengePeakData has not been rewritten in this patch.
|
|
|
|
## Pending Client reproduction
|
|
|
|
The user agreed to complete another AA battle and leave the result screen
|
|
open. Compare its full result packet with native counters before assigning
|
|
semantic names to obfuscated fields or calculating FinishedTargetList. Do not
|
|
derive cycles from TotalBattleTurns, subtract from a guessed initial counter,
|
|
or grant every target merely because EndStatus is WIN.
|
|
|
|
The Main chat is concurrently repairing login in the same workspace and
|
|
restarting the shared servers. Stop additional restarts from this chat while
|
|
that deployment is in progress; both builds included the Peak source changes.
|