struck drawn segment's dzone, ALWAYS -- the cylinder embellishment removed
The open question ('what zone did 1995 designate for hull hits') was
already answered in the KB's #73 dig [T0+T1]: no software pick writer
exists -- the pod's pick was a dpl scene intersection, struck triangle
-> DCS segment -> its SKL-authored dzone; the cylinder lottery was only
ever the UNAIMED path (missiles/splash/rams). The live segpick dump
completes it with the authored data: the madcat's pickable skeleton is
18 segments -- hip, shoulders, guns, thighs, knees, ankles+toes, and
ONE hull piece (jointshakey -> dtorso). No ltorso/rtorso/utorso/rear/
door/searchlight segments exist. Aimed fire at any torso panel
authentically designates CENTER TORSO; the side/rear/upper panels strip
via the unaimed path.
Changes:
* the shared-carrier -> cylinder override (yesterday's embellishment)
is REMOVED: triangle hit -> that segment's dzone, period;
* SegAimPoint: the walker's hull anchor moves from the joint ORIGIN
(crotch gap -- rays sailed between the legs to the terrain sentinel)
to the carrier segment's cull center (the chest);
* [picktri]/[pickwin] diagnostics grew tri/seg/zone fields -- three
consecutive 'mystery' regressions in this stretch were the STALE-EXE
trap (CWD-relative cmake --build from content/ resolved to a
nonexistent dir and the old binary kept running) -- the harness doc's
warning, hit again.
Final zone-walk matrix (spinning target, real MP, full cycles):
limbs 55/70 in-zone (legs/feet 6/6; arm strays = hull/occlusion);
hull-family aims -> dtorso 56/69; victim consumption matches. The
night-10 field table now reads as this model's fingerprint: 'only LCT
gets hits' from aimed energy IS the pod -- one hull piece, dtorso.
What was actually broken and is now fixed: the sphere mis-picks
(rgun-from-a-dtorso-aim class), the unaimed path's 180-degree frame,
and the vertical scatter.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
33 lines
1.6 KiB
Bash
33 lines
1.6 KiB
Bash
#!/usr/bin/env bash
|
|
# #124 ZONE-WALK MATRIX -- the systematic per-panel targeting session (2-node,
|
|
# operator-watchable). Node B (right window) = the TARGET: spins in place
|
|
# (BT_SPIN_SELF), its paper doll shows every hit landing. Node A = the
|
|
# SHOOTER: BT_ZONE_WALK servo-aims the real boresight at each of B's zones'
|
|
# carrier segments in turn, settles, fires 3 laser pulses, advances. One
|
|
# B-revolution per ~24 s x 6 s/zone => every zone gets aimed shots from many
|
|
# aspects over a few minutes.
|
|
# READ: A's log [walk] ZONE/FIRE lines vs B's log [dmghit] zone= lines.
|
|
# The session STAYS UP for observation -- close the windows (or taskkill
|
|
# btl4.exe) when done; the relay dies with this script's 60-min tail.
|
|
set -x
|
|
. /c/git/bt411/scratchpad/night6/bench_common.sh
|
|
cd /c/git/bt411/content || exit 1
|
|
bt_assert_player_env
|
|
taskkill //F //IM btl4.exe > /dev/null 2>&1
|
|
sleep 2
|
|
rm -f zw_a.log zw_b.log
|
|
bt_expert_egg MP.EGG ZW.EGG
|
|
sed -i "s/^map=.*/map=grass/; s/^time=.*/time=day/; 0,/^vehicle=.*/s//vehicle=madcat/" ZW.EGG
|
|
|
|
# TARGET first (right/back window): spins, logs every damage application.
|
|
BT_SPIN_SELF=15 BT_DMG_LOG=1 BT_DEATH_LOG=1 BT_MP_LOG=1 BT_MATCHLOG=1 \
|
|
bt_launch zw_b.log ZW.EGG 0x0C -net 1601
|
|
sleep 2
|
|
# SHOOTER second (foreground -- owns the pick focus): the walker.
|
|
BT_ZONE_WALK=6 BT_PICK_LOG=1 BT_GOTO=enemy BT_GOTO_STOP=90 BT_KEY_NOFOCUS=1 \
|
|
BT_DMG_LOG=1 BT_RANGE_LOG=1 BT_MP_LOG=1 BT_MATCHLOG=1 \
|
|
bt_launch zw_a.log ZW.EGG 0x03 -net 1501
|
|
sleep 5
|
|
python ../tools/btconsole.py ZW.EGG 127.0.0.1:1501 127.0.0.1:1601 > zw_relay.log 2>&1 &
|
|
sleep 3600 # keep the relay's parent alive for the observation hour
|