#!/usr/bin/env bash # #134 SELF-KILL PENALTY verify: A self-destructs (BT_SELF_DAMAGE, inflictor = # SELF) with B standing off. The kill report now DISPATCHES for killer==victim # (the old BTPostKillScore filtered it) and the handler NEGATES the award. # PASS (A log/matchlog): "[score] *** KILL report ***" to A's OWN player; # SCORE type=2 with award < 0 and kills UNCHANGED (0); VehicleDead # killedBy=; death cycle START (respawn un-regressed). 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 ss_a.log ss_b.log ss_relay.log matchlog_*.txt bt_expert_egg MP.EGG SG.EGG sed -i "s/^map=.*/map=grass/; s/^time=.*/time=day/; s/^vehicle=.*/vehicle=madcat/" SG.EGG ( export BT_SELF_DAMAGE=40 export BT_DMG_LOG=1 BT_DEATH_LOG=1 BT_MP_LOG=1 BT_MATCHLOG=1 BT_SCORE_LOG=1 bt_launch ss_a.log SG.EGG 0x0C -net 1601 ) sleep 2 ( export BT_GOTO=enemy BT_GOTO_STOP=60 BT_KEY_NOFOCUS=1 export BT_DMG_LOG=1 BT_DEATH_LOG=1 BT_MP_LOG=1 BT_MATCHLOG=1 BT_SCORE_LOG=1 bt_launch ss_b.log SG.EGG 0x03 -net 1501 ) sleep 5 python ../tools/btconsole.py SG.EGG 127.0.0.1:1501 127.0.0.1:1601 > ss_relay.log 2>&1 & RELAY=$! sleep 100 kill $RELAY 2>/dev/null taskkill //F //IM btl4.exe > /dev/null 2>&1 sleep 3 echo "=== A self-kill report + death:" grep -aE "KILL report|VehicleDead\(-1\) dispatched|death cycle START" ss_a.log | head -6 echo "=== A SCORE lines (want type=2 award<0 kills=0):" grep -a "SCORE" matchlog_*.txt 2>/dev/null | grep "type=2" | head -4 echo "=== all SCORE traffic:" grep -a "SCORE" matchlog_*.txt 2>/dev/null | tail -8