kill-storm repro rig for #35 (owens laser crash): parameterized damage hook + honest NEGATIVE
BT_MP_FORCE_DMG=<n> now sets the per-tick probe damage (plain =1 keeps the original amount) -- kill-storm rigs need lethal ticks. rig_killstorm.ps1: offset-port relay + owens shooter under BT_AUTOFIRE vs a respawning victim. Result: NEGATIVE, twice. The respawn cycle (death anim + warp + handshake) caps the harvest at 1-2 kill-teardown windows per 4-minute round, and none crashed. With July's 254-volley negative the conclusion firms up: the window needs the reporter's slow-machine timing, not more attempts here. The field net (crash self-report + join.old.log rotation + the sweep guards) means the next real occurrence names its own site. Refined theory recorded in the ledger: six-beam volley vs a target dying mid-volley, 515-class teardown race. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
35bdb505df
commit
184121c597
@@ -4853,7 +4853,14 @@ void
|
||||
continue;
|
||||
Damage dmg;
|
||||
dmg.damageType = Damage::ExplosiveDamageType;
|
||||
dmg.damageAmount = kShotDamage;
|
||||
// BT_MP_FORCE_DMG=<n> sets the per-tick damage (>1 --
|
||||
// kill-storm repro rigs, #35: hundreds of victim-death
|
||||
// teardown windows per mission); plain =1 keeps the
|
||||
// original probe amount.
|
||||
{
|
||||
float forced = (float)atof(getenv("BT_MP_FORCE_DMG"));
|
||||
dmg.damageAmount = (forced > 1.0f) ? forced : kShotDamage;
|
||||
}
|
||||
dmg.burstCount = 1;
|
||||
dmg.impactPoint = m->localOrigin.linearPosition;
|
||||
Entity::TakeDamageMessage td(
|
||||
|
||||
@@ -130,3 +130,18 @@ or at the moment of a KILL?
|
||||
- Gitea #35 updated twice (occurrence + trucks-vs-opponents discriminator).
|
||||
STILL OWED: Conn Man's join.log (the laser-crash stack); live games-night
|
||||
verification of tonight's five fixes.
|
||||
|
||||
## #35 kill-storm repro attempts (2026-07-27 00:45-01:05) -- NEGATIVE, insurance armed
|
||||
- Theory refined: the six-beam volley vs a target dying MID-VOLLEY (owens =
|
||||
the biggest simultaneous event burst; trucks never die/tear down; the 515
|
||||
class in the beam-hit/interest-teardown neighborhood).
|
||||
- BT_MP_FORCE_DMG parameterized (=<n> sets per-tick damage) + rig_killstorm.ps1
|
||||
(owens autofire vs a respawning victim). TWO 4-minute storms: the respawn
|
||||
cycle limits the harvest to 1-2 kill windows per run -- zero crashes, zero
|
||||
guard fires. Combined with July's 254-volley negative: the window needs a
|
||||
slow machine's timing (the Surface), not more volleys on this box.
|
||||
- FIELD NET now armed on three layers: the crash self-report (584+), join.bat
|
||||
keeping join.old.log, and the sweep guards self-identifying. The next field
|
||||
occurrence CANNOT be lost.
|
||||
- BEST NEXT MOVE: hand the reporter the storm rig -- his machine has the
|
||||
right timing profile. A one-bat package of rig_killstorm is feasible.
|
||||
|
||||
@@ -0,0 +1,48 @@
|
||||
# KILL-STORM repro rig (#35 owens-laser crash): offset ports (1520), owens
|
||||
# shooter under BT_AUTOFIRE with BT_MP_FORCE_DMG killing the victim replicant
|
||||
# every ~1s -- hundreds of mid-volley-kill teardown windows per mission.
|
||||
$repo = 'C:\git\bt411'
|
||||
$content = Join-Path $repo 'content'
|
||||
$scratch = 'C:\Users\EPILECTRIK\AppData\Local\Temp\claude\C--git-bt411\89ab96e9-6cf0-4555-939d-05bf3708745a\scratchpad'
|
||||
$exe = Join-Path $repo 'build\Release\btl4.exe'
|
||||
$relaylog = Join-Path $scratch 'ks_relay.log'
|
||||
$pidfile = Join-Path $scratch 'ks_pids.txt'
|
||||
|
||||
if (@(Get-NetTCPConnection -State Listen -LocalPort 1520 -ErrorAction SilentlyContinue).Count -gt 0) {
|
||||
"ABORT: port 1520 in use"; exit 1
|
||||
}
|
||||
Remove-Item $relaylog -ErrorAction SilentlyContinue
|
||||
$pids = @()
|
||||
|
||||
$relay = Start-Process -FilePath 'python' `
|
||||
-ArgumentList '-u', (Join-Path $repo 'tools\btconsole.py'), '--relay', '1520',
|
||||
(Join-Path $content '_KILLSTORM.EGG'), '--bind', '127.0.0.1', '--manual-launch' `
|
||||
-WorkingDirectory $content -PassThru `
|
||||
-RedirectStandardOutput $relaylog `
|
||||
-RedirectStandardError (Join-Path $scratch 'ks.err')
|
||||
$pids += $relay.Id
|
||||
Start-Sleep -Seconds 3
|
||||
"relay pid=$($relay.Id)"
|
||||
|
||||
$env:BT_START_INSIDE = '1'
|
||||
$env:BT_DEV_GAUGES = '1'
|
||||
$env:BT_RELAY = '127.0.0.1:1520'
|
||||
$env:BT_MATCHLOG = '0'
|
||||
$env:BT_LOG_APPEND = '1'
|
||||
|
||||
# SHOOTER: owens, autofire held, force-kill the victim replicant every ~1s
|
||||
$env:BT_LOG = 'ks_shooter.log'; $env:BT_SELF = '127.0.0.1:1502'
|
||||
$env:BT_AUTOFIRE = '1'; $env:BT_MP_FORCE_DMG = '400'
|
||||
$a = Start-Process -FilePath $exe -ArgumentList '-egg','_KILLSTORM.EGG','-net','1502' `
|
||||
-WorkingDirectory $content -PassThru
|
||||
$pids += $a.Id
|
||||
Start-Sleep -Seconds 2
|
||||
# VICTIM: plain
|
||||
Remove-Item Env:\BT_AUTOFIRE, Env:\BT_MP_FORCE_DMG -ErrorAction SilentlyContinue
|
||||
$env:BT_LOG = 'ks_victim.log'; $env:BT_SELF = '127.0.0.1:1602'
|
||||
$b = Start-Process -FilePath $exe -ArgumentList '-egg','_KILLSTORM.EGG','-net','1602' `
|
||||
-WorkingDirectory $content -PassThru
|
||||
$pids += $b.Id
|
||||
|
||||
Set-Content -Path $pidfile -Value $pids
|
||||
"shooter=$($a.Id) victim=$($b.Id)"
|
||||
Reference in New Issue
Block a user