master-server replay + trampler RE: protocol, hashes, footprints, map renderer

- master_scrape.py: live master-server (ger.hologryph.com) ClientMessage replay over the
  two-socket /login + /connect handshake (PlayFab ticket auth). Pulled compartment defs,
  shop prices, research tree, storage, characters, expedition -> extracted/master_*.json
- PlayFab confirmed auth-only for this title (Economy disabled); docs corrected
- trampler_hashes.py: blueprint hash algo MD5(UTF8(compact-JSON)); CompartmentsHash(#1) and
  ConnectionsHash(#3) verified & generatable from scratch
- walkerdto_to_blueprint.py: WalkerDto(expedition) -> WalkerBlueprintDto, enum int<->name,
  verified by storage->WS->storage round-trip
- render_trampler.py: per-floor map from CompartmentsDatabase cell footprints (rotation solved
  via overlap check) + doors/hatches from Connections + turret arcs + cargo C1-C8 in game order
- docs/MASTER_SERVER.md, docs/TRAMPLER.md; ghidra address-offset bug fixed (no -0x1000)
This commit is contained in:
DownloadPizza
2026-06-16 00:35:17 +02:00
parent 3df0797acc
commit fc6b270fa8
29 changed files with 61574 additions and 0 deletions

View File

@@ -0,0 +1,66 @@
TRAMPLER MAP (host crew walker, 70 parts) chassis=walker_compChassis_Long8_Metal_4x6_epb
axes: X=columns (-2..3), Z=rows (-3..4). origin-cell per compartment.
==== deck 3 (y=3) (2 compartments) ====
x:-2-1 0 1 2 3
z -3 . . . . . .
z -2 . . . . . .
z -1 . . . . . .
z 0 . . . . . .
z 1 . . . . . .
z 2 . . . . . .
z 3 . . W W . .
z 4 . . . . . .
==== deck 2 (y=2) (15 compartments) ====
x:-2-1 0 1 2 3
z -3 . . . . . .
z -2 . W D D W .
z -1 . D . . D .
z 0 . D . . D .
z 1 . . . . D .
z 2 . W D D W .
z 3 . . W W . .
z 4 . . . . . .
==== deck 1 (y=1) (24 compartments) ====
x:-2-1 0 1 2 3
z -3 . . . . . .
z -2 . C D D C .
z -1 . C . . D .
z 0 . C . . C .
z 1 A F D C c .
z 2 A + + + + A
z 3 . W D D W .
z 4 . . . T . .
==== deck 0 (y=0) (28 compartments) ====
x:-2-1 0 1 2 3
z -3 . . . S . .
z -2 . . c c . .
z -1 . K . . + A
z 0 . C R . C A
z 1 A + . . + A
z 2 A + E E + A
z 3 A + + + + A
z 4 . W . W . .
==== hull/chassis (y=-1) (1 compartments) ====
x:-2-1 0 1 2 3
z -3 . . . . . .
z -2 . . . . . .
z -1 . . . . . .
z 0 . . # . . .
z 1 . . . . . .
z 2 . . . . . .
z 3 . . . . . .
z 4 . . . . . .
LEGEND: #=Chassis R=Reactor E=Engine W=Weapon A=Armor C=Cargo c=Crew K=CaptainCrew D=Deck +=Corridor S=Special F=Crafting T=Steering
PER-FLOOR TYPES:
deck 3 (y=3) {'Weapon': 2}
deck 2 (y=2) {'Deck': 9, 'Weapon': 6}
deck 1 (y=1) {'Cargo': 6, 'Deck': 6, 'Corridor': 4, 'Armor': 3, 'Weapon': 2, 'Crew': 1, 'Crafting': 1, 'Steering': 1}
deck 0 (y=0) {'Corridor': 9, 'Armor': 8, 'Engine': 2, 'Crew': 2, 'Cargo': 2, 'Weapon': 2, 'Reactor': 1, 'CaptainCrew': 1, 'Special': 1}
hull/chassis (y=-1) {'Chassis': 1}