From c7331bfcc5681678c413f3540aee67c6dc219ea4 Mon Sep 17 00:00:00 2001 From: troytt <47798984@qq.com> Date: Thu, 1 Oct 2026 10:13:10 +0000 Subject: [PATCH] test(client): capture-driven spawn regression across 9 map seeds (#539) Adds five fresh 1.13c join captures (d2webbot4, seeds 0x52e4e6ff, 0x4f05dacb, 0x7e5d403f, 0x72a1c4f0, 0x0c44f15e) and a test driving the real OnlineSession replay + MapService DRLG for every game fixture: rendered player/camera == server position, drawn pixel lies over the server sub-tile, cell walkable with no WALL/BLANK/INVALID, in the camp's main component reaching the waypoint, Blood Moor reveals don't switch the level, not-ready before a position, and LoadAct without areaId fails fast. --- tests/client/spawn-position-539.test.ts | 266 ++++++++++++++++++ .../10-d2gs-spawn-seed-0c44f15e.d2cap | 170 +++++++++++ .../10-d2gs-spawn-seed-4f05dacb.d2cap | 195 +++++++++++++ .../10-d2gs-spawn-seed-52e4e6ff.d2cap | 174 ++++++++++++ .../10-d2gs-spawn-seed-72a1c4f0.d2cap | 172 +++++++++++ .../10-d2gs-spawn-seed-7e5d403f.d2cap | 195 +++++++++++++ 6 files changed, 1172 insertions(+) create mode 100644 tests/client/spawn-position-539.test.ts create mode 100644 tests/fixtures/netproto/10-d2gs-spawn-seed-0c44f15e.d2cap create mode 100644 tests/fixtures/netproto/10-d2gs-spawn-seed-4f05dacb.d2cap create mode 100644 tests/fixtures/netproto/10-d2gs-spawn-seed-52e4e6ff.d2cap create mode 100644 tests/fixtures/netproto/10-d2gs-spawn-seed-72a1c4f0.d2cap create mode 100644 tests/fixtures/netproto/10-d2gs-spawn-seed-7e5d403f.d2cap diff --git a/tests/client/spawn-position-539.test.ts b/tests/client/spawn-position-539.test.ts new file mode 100644 index 0000000..9d03e48 --- /dev/null +++ b/tests/client/spawn-position-539.test.ts @@ -0,0 +1,266 @@ +/** + * Issue #539 regression: the local player must be rendered exactly at the server-assigned + * world position, on Rogue Encampment walkable floor, across many map seeds. + * + * Root cause (fixed): `subTileToWorldOrtho` / `subTileToScreen` projected unit sub-tiles on a + * 16×8 px lattice (`ORTHO_SUB_TILE_* / 2`) while the DT1 floor tiles are laid out on the 1.13c + * 160×80 px tile = 5×5 sub-tiles of 32×16 px lattice (`(x - y) * 16`, `(x + y) * 8`). The player + * sprite and the camera following it were drawn at half their distance from the level iso origin, + * i.e. on the palisade / forest outside the camp, while the server (and our DRLG collision) had + * the player standing on camp floor. + * + * The test drives the real `OnlineSession` replay path (D2GS S→C decode → ClientWorld → + * predictor → `MapService` DRLG from `0x03 LoadAct` → `ClientWorldSceneSource`) with live 1.13c + * captures (`tests/fixtures/netproto/*.d2cap`, one fresh game / map seed each) and compares the + * rendered result with ground truth decoded independently by `replayD2CapText`. + */ +import { readdirSync, readFileSync } from 'node:fs' +import { resolve } from 'node:path' +import { beforeAll, describe, expect, it } from 'vitest' +import '../../tools/lib/node-map-loader.ts' +import { replayD2CapText } from '../../tools/netproto-replay.ts' +import { + MapService, + getCollisionWorldSubTile, + isWalkableWorldSubTile, + localSubTileToOrtho, + orthoToLocalSubTile, + type LevelView, +} from '../../src/client/map/map-service.ts' +import { OnlineSession } from '../../src/client/session/online-session.ts' +import { createSettingsStore } from '../../src/client/settings/settings-store.ts' +import { + VIEWPORT_800x600, + screenToSubTile, + subTileToScreen, + subTileToWorldOrtho, + worldOrthoToSubTile, +} from '../../src/client/view/viewport-profile.ts' +import { COLLIDE_BLANK, COLLIDE_MASK_INVALID, COLLIDE_WALL } from '../../src/common/world/d2map.ts' + +const FIXTURE_DIR = resolve('tests/fixtures/netproto') +const ROGUE_ENCAMPMENT = 1 +/** Objects.txt id 119: Act 1 town waypoint (`waypoint`, Rogue Encampment). */ +const ACT1_TOWN_WAYPOINT_CLASS = 119 + +/** Every capture that enters a game (01..04 legacy fixtures + 10-d2gs-spawn-seed-* fresh games). */ +const SPAWN_FIXTURES = readdirSync(FIXTURE_DIR) + .filter(name => name.endsWith('.d2cap')) + .filter(name => replayD2CapText(readFileSync(resolve(FIXTURE_DIR, name), 'utf8')).world.mapSeed !== 0) + .sort() + +/** 4-connected walkable component labels over the LevelView sub-tile grid. */ +function labelWalkableComponents(view: LevelView): { readonly label: Int32Array; readonly sizes: number[] } { + const w = view.subWidth + const h = view.subHeight + const label = new Int32Array(w * h).fill(-1) + const sizes: number[] = [] + for (let start = 0; start < w * h; start++) { + if (view.blocked[start] !== 0 || label[start]! >= 0) continue + const id = sizes.length + let size = 0 + const stack = [start] + label[start] = id + while (stack.length > 0) { + const i = stack.pop()! + size++ + const x = i % w + const y = (i - x) / w + const neighbors = [ + x + 1 < w ? i + 1 : -1, + x > 0 ? i - 1 : -1, + y + 1 < h ? i + w : -1, + y > 0 ? i - w : -1, + ] + for (const n of neighbors) { + if (n < 0 || view.blocked[n] !== 0 || label[n]! >= 0) continue + label[n] = id + stack.push(n) + } + } + sizes.push(size) + } + return { label, sizes } +} + +describe('Issue #539: player spawn is rendered at the server position inside the Rogue Encampment', () => { + let mapService: MapService + + beforeAll(async () => { + mapService = await MapService.fromPackedDir(resolve('public/act-packs/tiles')) + }) + + it('has spawn captures from several distinct map seeds and town layouts', () => { + const seeds = new Set() + const layouts = new Set() + for (const name of SPAWN_FIXTURES) { + const world = replayD2CapText(readFileSync(resolve(FIXTURE_DIR, name), 'utf8')).world + seeds.add(world.mapSeed >>> 0) + const view = mapService.loadAct({ + act: world.act, + seed: world.mapSeed, + difficulty: world.difficulty as 0 | 1 | 2, + areaId: world.areaId, + }) + expect(view).not.toBeNull() + layouts.add(`${String(world.self.x - view!.subOriginX)},${String(world.self.y - view!.subOriginY)}`) + } + expect(seeds.size).toBeGreaterThanOrEqual(8) + // The Rogue Encampment preset orientation is seed-dependent; cover more than one variant. + expect(layouts.size).toBeGreaterThanOrEqual(3) + }) + + it('sub-tile projection uses the same 32×16 px lattice as the DT1 floor tiles', () => { + const view = { isoOriginX: 3280, isoOriginY: 0 } + for (const [x, y] of [ + [0, 0], + [5, 0], + [0, 5], + [137, 123], + [153, 68], + ] as const) { + const unit = subTileToWorldOrtho(x, y, view.isoOriginX, view.isoOriginY) + const tile = localSubTileToOrtho(view, x, y) + expect(unit).toEqual({ x: tile.x, y: tile.y }) + const back = worldOrthoToSubTile(unit.x, unit.y, view.isoOriginX, view.isoOriginY) + expect(back.x).toBeCloseTo(x, 9) + expect(back.y).toBeCloseTo(y, 9) + } + // One tile (5 sub-tiles) along +x is (80, 40) px, exactly one ORTHO cell. + expect(subTileToWorldOrtho(5, 0)).toEqual({ x: 80, y: 40 }) + // Screen picking is the exact inverse of screen projection around the camera. + const s = subTileToScreen(5737, 4523, 5730, 4520, VIEWPORT_800x600) + expect(s).toEqual({ x: 400 + (7 - 3) * 16, y: 300 + (7 + 3) * 8 }) + const p = screenToSubTile(s.x, s.y, 5730, 4520, VIEWPORT_800x600) + expect(p.x).toBeCloseTo(5737, 9) + expect(p.y).toBeCloseTo(4523, 9) + }) + + for (const name of SPAWN_FIXTURES) { + it(`${name}: rendered player == server position, on camp floor`, () => { + const text = readFileSync(resolve(FIXTURE_DIR, name), 'utf8') + // Independent ground truth: plain protocol replay into a bare ClientWorld. + const truth = replayD2CapText(text, { strict: true }).world + expect(truth.areaId).toBe(ROGUE_ENCAMPMENT) + expect(truth.self.x).toBeGreaterThan(0) + expect(truth.self.y).toBeGreaterThan(0) + + const session = new OnlineSession({ settingsStore: createSettingsStore(), mapService }) + session.loadD2CapReplay(text) + session.replayAllD2Cap() + // Let any rubber-band reconciliation settle; no movement commands are issued. + for (let i = 0; i < 50; i++) session.tick(40, 1000 + i * 40) + expect(session.disconnectReason).toBeNull() + + // The level the scene renders must be the one containing the server position (#539 root + // cause #2): AutomapView builds neighbouring levels (Blood Moor) for 0x07 reveals near the + // spawn, which used to switch MapService's "active" view — and therefore the rendered map. + const view = session.sceneSource.getLevelView() + expect(view).not.toBeNull() + expect(view!.areaId).toBe(ROGUE_ENCAMPMENT) + expect(view!.seed).toBe(truth.mapSeed >>> 0) + + const snap = session.sceneSource.buildFrameSnapshot() + expect(snap.worldReady).toBe(true) + expect(snap.levelId).toBe(ROGUE_ENCAMPMENT) + + // 1. Player / camera anchor == server position (no locally computed spawn). + expect(snap.playerSubTile.x).toBeCloseTo(truth.self.x, 6) + expect(snap.playerSubTile.y).toBeCloseTo(truth.self.y, 6) + expect(session.camera.subX).toBeCloseTo(truth.self.x, 6) + expect(session.camera.subY).toBeCloseTo(truth.self.y, 6) + expect(snap.playerLocalSubTile.x).toBeCloseTo(truth.self.x - view!.subOriginX, 6) + expect(snap.playerLocalSubTile.y).toBeCloseTo(truth.self.y - view!.subOriginY, 6) + + // 2. The pixel where the player sprite / camera is drawn lies over the server sub-tile in the + // tile lattice (old half-scale projection put it ~(68,61) sub-tiles away, on the palisade). + const under = orthoToLocalSubTile(view!, snap.playerWorld.x, snap.playerWorld.y) + expect(under.x).toBeCloseTo(snap.playerLocalSubTile.x, 6) + expect(under.y).toBeCloseTo(snap.playerLocalSubTile.y, 6) + const selfDrawable = snap.entities.unitDrawables.find( + u => u.unitKind === 'player' && u.unitId === truth.selfId, + ) + expect(selfDrawable).toBeDefined() + expect(selfDrawable!.worldX).toBeCloseTo(snap.playerWorld.x, 6) + expect(selfDrawable!.worldY).toBeCloseTo(snap.playerWorld.y, 6) + expect(snap.cameraTopLeft.x).toBeCloseTo(snap.playerWorld.x - snap.viewportProfile.width / 2, 6) + expect(snap.cameraTopLeft.y).toBeCloseTo(snap.playerWorld.y - snap.viewportProfile.height / 2, 6) + + // 3. The server sub-tile is walkable camp floor in the client DRLG collision. + const sx = Math.floor(truth.self.x) + const sy = Math.floor(truth.self.y) + expect(isWalkableWorldSubTile(view!, sx, sy)).toBe(true) + const mask = getCollisionWorldSubTile(view!, sx, sy) + expect(mask & (COLLIDE_WALL | COLLIDE_BLANK)).toBe(0) + expect(mask & COLLIDE_MASK_INVALID).not.toBe(COLLIDE_MASK_INVALID) + + // 4. Inside the camp: the player's walkable component is the level's main floor and reaches the + // town waypoint the server spawned for this game. + const { label, sizes } = labelWalkableComponents(view!) + const playerComp = label[(sy - view!.subOriginY) * view!.subWidth + (sx - view!.subOriginX)]! + expect(playerComp).toBeGreaterThanOrEqual(0) + expect(sizes[playerComp]).toBe(Math.max(...sizes)) + const waypoints = truth.getUnitsByType('object').filter(o => o.classId === ACT1_TOWN_WAYPOINT_CLASS) + expect(waypoints.length).toBe(1) + const wp = waypoints[0]! + let waypointReachable = false + for (let dy = -4; dy <= 4 && !waypointReachable; dy++) { + for (let dx = -4; dx <= 4 && !waypointReachable; dx++) { + const lx = wp.x + dx - view!.subOriginX + const ly = wp.y + dy - view!.subOriginY + if (lx < 0 || ly < 0 || lx >= view!.subWidth || ly >= view!.subHeight) continue + waypointReachable = label[ly * view!.subWidth + lx] === playerComp + } + } + expect(waypointReachable).toBe(true) + + // 5. Every other server unit is drawn over its own server sub-tile as well (same lattice). + for (const u of snap.entities.unitDrawables) { + const back = orthoToLocalSubTile(view!, u.worldX, u.worldY) + // `u.subX/subY` are level-local (`world - subOrigin`) after scene normalisation. + expect(back.x).toBeCloseTo(u.subX, 6) + expect(back.y).toBeCloseTo(u.subY, 6) + } + }) + } + + it('0x07 reveals of a neighbouring level (Blood Moor) do not switch the rendered level', () => { + // 04-d2gs-idle-60s spawns near the camp's north gate: the server reveals Blood Moor (area 2) + // rooms, AutomapView builds that LevelView and MapService's "active" view becomes area 2. + const text = readFileSync(resolve(FIXTURE_DIR, '04-d2gs-idle-60s.d2cap'), 'utf8') + const session = new OnlineSession({ settingsStore: createSettingsStore(), mapService }) + session.loadD2CapReplay(text) + session.replayAllD2Cap() + expect(session.world.getRevealedAreaIds()).toContain(2) + expect(mapService.getActiveLevelView()?.areaId).toBe(2) // precondition: the old hijack source + const view = session.sceneSource.getLevelView() + expect(view?.areaId).toBe(ROGUE_ENCAMPMENT) + expect(session.sceneSource.buildFrameSnapshot().levelId).toBe(ROGUE_ENCAMPMENT) + }) + + it('reports not-ready (never anchors the camera) before the server assigns a position', () => { + const text = readFileSync(resolve(FIXTURE_DIR, '10-d2gs-spawn-seed-52e4e6ff.d2cap'), 'utf8') + const truth = replayD2CapText(text, { strict: true }).world + const session = new OnlineSession({ settingsStore: createSettingsStore(), mapService }) + session.handleServerEvent({ type: 'LoadAct', act: truth.act, mapSeed: truth.mapSeed, areaId: ROGUE_ENCAMPMENT }) + const snap = session.sceneSource.buildFrameSnapshot() + expect(snap.worldReady).toBe(false) + expect(session.sceneSource.getLevelView()).toBeNull() + session.handleServerEvent({ + type: 'UnitReassign', + unitType: 'player', + id: truth.selfId, + at: { x: truth.self.x, y: truth.self.y }, + snap: true, + }) + expect(session.sceneSource.buildFrameSnapshot().worldReady).toBe(true) + expect(session.sceneSource.getLevelView()?.areaId).toBe(ROGUE_ENCAMPMENT) + }) + + it('fails fast on a 0x03 LoadAct without an areaId instead of defaulting to a town', () => { + const session = new OnlineSession({ settingsStore: createSettingsStore(), mapService }) + session.handleServerEvent({ type: 'LoadAct', act: 0, mapSeed: 0x52e4e6ff, areaId: 0 }) + expect(session.disconnectReason).toMatch(/LoadAct carried no areaId/) + expect(session.sceneSource.buildFrameSnapshot().worldReady).toBe(false) + }) +}) diff --git a/tests/fixtures/netproto/10-d2gs-spawn-seed-0c44f15e.d2cap b/tests/fixtures/netproto/10-d2gs-spawn-seed-0c44f15e.d2cap new file mode 100644 index 0000000..a25acb8 --- /dev/null +++ b/tests/fixtures/netproto/10-d2gs-spawn-seed-0c44f15e.d2cap @@ -0,0 +1,170 @@ +{"format":"d2cap-v1","createdAt":"2026-10-01T09:54:48.288Z","server":"101.37.117.183 (via=mixed)","account":"","character":"WebBotFour","scenario":"join"} +{"t":1790848483284,"conn":"bnet","dir":"c2s","hex":"01","packetName":"BNCS_GREETING"} +{"t":1790848483284,"conn":"bnet","dir":"c2s","hex":"ff503a000000000036385849505832440d000000090400007f000001e0010000090400000904000055534100556e697465642053746174657300","packetId":80,"packetName":"SID_AUTH_INFO"} +{"t":1790848483332,"conn":"bnet","dir":"s2c","hex":"ff2508003ca38d09","packetId":37,"packetName":"SID_PING"} +{"t":1790848483332,"conn":"bnet","dir":"c2s","hex":"ff2508003ca38d09","packetId":37,"packetName":"SID_PING"} +{"t":1790848483375,"conn":"bnet","dir":"s2c","hex":"ff5065000000000021e99b317a00000000d8b1d80027dd0149583836766572312e6d707100413d3338343535383136333420423d38383038323335383020433d31333633393337313033203420413d412d5320423d422d4320433d432d4120413d412d4200","packetId":80,"packetName":"SID_AUTH_INFO"} +{"t":1790848483376,"conn":"bnet","dir":"c2s","hex":"ff518b00c4a1dfac000d0001cabe867602000000000000001000000006000000cbba000000000000dedb8ee0b6fbf4cd555415862ce7e8f95dbce0ff100000000a000000f015eb00000000002c9916a8cb282eed7b0753488b2b00b16e00dfd047616d652e6578652030332f30392f31302030343a31303a353120363134343000576562506c6179657200","packetId":81,"packetName":"SID_AUTH_CHECK"} +{"t":1790848483422,"conn":"bnet","dir":"s2c","hex":"ff5109000000000000","packetId":81,"packetName":"SID_AUTH_CHECK"} +{"t":1790848483423,"conn":"bnet","dir":"c2s","hex":"ff3a2a00c4a1dfac21e99b31910dfd82781e4a5ea07277813d9cbbee0648b6026432776562626f743400","packetId":58,"packetName":"SID_LOGONRESPONSE2"} +{"t":1790848483733,"conn":"bnet","dir":"s2c","hex":"ff590400","packetId":89,"packetName":"SID_SETEMAIL"} +{"t":1790848483775,"conn":"bnet","dir":"s2c","hex":"ff3a080000000000","packetId":58,"packetName":"SID_LOGONRESPONSE2"} +{"t":1790848483776,"conn":"bnet","dir":"c2s","hex":"ff3e2600c4a1dfac525199d4373ab72365215f0d733d5a6663020f9753616e63747561727900","packetId":62,"packetName":"SID_LOGONREALMEX"} +{"t":1790848483819,"conn":"bnet","dir":"s2c","hex":"ff3e5600c4a1dfac00000000000000007a000000652575b717e1000021e99b310000000000000000505832440d0000000000000000000000560940b14074c43d40df58fde610db6f5cfe483a6432776562626f743400","packetId":62,"packetName":"SID_LOGONREALMEX"} +{"t":1790848484277,"conn":"realm","dir":"c2s","hex":"01","packetName":"MCP_GREETING"} +{"t":1790848484278,"conn":"realm","dir":"c2s","hex":"4d0001c4a1dfac00000000000000007a00000021e99b310000000000000000505832440d0000000000000000000000560940b14074c43d40df58fde610db6f5cfe483a6432776562626f743400","packetId":1,"packetName":"MCP_STARTUP"} +{"t":1790848484326,"conn":"realm","dir":"s2c","hex":"07000100000000","packetId":1,"packetName":"MCP_STARTUP"} +{"t":1790848484327,"conn":"realm","dir":"c2s","hex":"07001908000000","packetId":25,"packetName":"MCP_CHARLIST2"} +{"t":1790848484372,"conn":"realm","dir":"s2c","hex":"3c00190800010000000100ffffff7f576562426f74466f7572008d80ffffffffff2dff4fffffff07ffffffffffffffffffffff01e080808001ffff00","packetId":25,"packetName":"MCP_CHARLIST2"} +{"t":1790848484373,"conn":"realm","dir":"c2s","hex":"0e0007576562426f74466f757200","packetId":7,"packetName":"MCP_CHARLOGON"} +{"t":1790848484417,"conn":"realm","dir":"s2c","hex":"07000700000000","packetId":7,"packetName":"MCP_CHARLOGON"} +{"t":1790848484419,"conn":"realm","dir":"c2s","hex":"21000301000000000001ff0877626d38336a38000064322d626f74206a6f696e00","packetId":3,"packetName":"MCP_CREATEGAME"} +{"t":1790848484464,"conn":"realm","dir":"s2c","hex":"0d000301000100010000000000","packetId":3,"packetName":"MCP_CREATEGAME"} +{"t":1790848484465,"conn":"realm","dir":"c2s","hex":"0e0004020077626d38336a380000","packetId":4,"packetName":"MCP_JOINGAME"} +{"t":1790848484511,"conn":"realm","dir":"s2c","hex":"15000402004a000000652575b72f71f81d00000000","packetId":4,"packetName":"MCP_JOINGAME"} +{"t":1790848484715,"conn":"game","dir":"s2c","hex":"af01","packetId":175} +{"t":1790848484716,"conn":"game","dir":"c2s","hex":"682f71f81d4a00060d000000ed4d5650b453354200576562426f74466f7572000000000000","packetId":104} +{"t":1790848484785,"conn":"game","dir":"s2c","hex":"0100040030000101","packetId":1} +{"t":1790848484786,"conn":"game","dir":"s2c","hex":"00","packetId":0} +{"t":1790848484786,"conn":"game","dir":"s2c","hex":"02","packetId":2} +{"t":1790848484786,"conn":"game","dir":"c2s","hex":"6b","packetId":107} +{"t":1790848484786,"conn":"game","dir":"c2s","hex":"6db245e3f60000000000000000","packetId":109} +{"t":1790848484866,"conn":"game","dir":"s2c","hex":"590100000006576562426f74466f757200000000000000000000","packetId":89} +{"t":1790848484866,"conn":"game","dir":"s2c","hex":"aa00010000000c6959f9ff1f","packetId":170} +{"t":1790848484866,"conn":"game","dir":"s2c","hex":"760001000000","packetId":118} +{"t":1790848484866,"conn":"game","dir":"s2c","hex":"940901000000000001020001010001d90001da0001db0001dc0001050001030001","packetId":148} +{"t":1790848484866,"conn":"game","dir":"s2c","hex":"22000001000000db0001cd00","packetId":34} +{"t":1790848484866,"conn":"game","dir":"s2c","hex":"22000001000000d90001cd00","packetId":34} +{"t":1790848484867,"conn":"game","dir":"s2c","hex":"5e01010101010101010101010101010101010101010101010101010101010101010101010101","packetId":94} +{"t":1790848484867,"conn":"game","dir":"s2c","hex":"28060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","packetId":40} +{"t":1790848484867,"conn":"game","dir":"s2c","hex":"29000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","packetId":41} +{"t":1790848484867,"conn":"game","dir":"s2c","hex":"0b0001000000","packetId":11} +{"t":1790848484867,"conn":"game","dir":"s2c","hex":"5f01000000","packetId":95} +{"t":1790848484867,"conn":"game","dir":"s2c","hex":"1d0014","packetId":29} +{"t":1790848484867,"conn":"game","dir":"s2c","hex":"1d0119","packetId":29} +{"t":1790848484867,"conn":"game","dir":"s2c","hex":"1d0214","packetId":29} +{"t":1790848484867,"conn":"game","dir":"s2c","hex":"1d0314","packetId":29} +{"t":1790848484867,"conn":"game","dir":"s2c","hex":"1e070032","packetId":30} +{"t":1790848484867,"conn":"game","dir":"s2c","hex":"1e090019","packetId":30} +{"t":1790848484867,"conn":"game","dir":"s2c","hex":"1e0b005f","packetId":30} +{"t":1790848484867,"conn":"game","dir":"s2c","hex":"1d0c01","packetId":29} +{"t":1790848484867,"conn":"game","dir":"s2c","hex":"9c0e1410010000001000a2006508008006170302","packetId":156} +{"t":1790848484869,"conn":"game","dir":"s2c","hex":"9c0e1410020000001000a2006508028006170302","packetId":156} +{"t":1790848484869,"conn":"game","dir":"s2c","hex":"9c0e1410030000001000a2006508048006170302","packetId":156} +{"t":1790848484869,"conn":"game","dir":"s2c","hex":"9c0e1410040000001000a2006508068006170302","packetId":156} +{"t":1790848484869,"conn":"game","dir":"s2c","hex":"9c041410050000001000a2006500724237370602","packetId":156} +{"t":1790848484869,"conn":"game","dir":"s2c","hex":"9c041410060000001000a2006500529236370602","packetId":156} +{"t":1790848484869,"conn":"game","dir":"s2c","hex":"9d061e0507000000000100000011008200658408b046270782800003e33f","packetId":157} +{"t":1790848484870,"conn":"game","dir":"s2c","hex":"9d0620060800000000010000001100820065a40a20563706828000010606ff01","packetId":157} +{"t":1790848484870,"conn":"game","dir":"s2c","hex":"230001000000010000ffffffff","packetId":35} +{"t":1790848484870,"conn":"game","dir":"s2c","hex":"230001000000000000ffffffff","packetId":35} +{"t":1790848484870,"conn":"game","dir":"s2c","hex":"1d0014","packetId":29} +{"t":1790848484870,"conn":"game","dir":"s2c","hex":"1d0119","packetId":29} +{"t":1790848484870,"conn":"game","dir":"s2c","hex":"1d0214","packetId":29} +{"t":1790848484870,"conn":"game","dir":"s2c","hex":"1d0314","packetId":29} +{"t":1790848484870,"conn":"game","dir":"s2c","hex":"1e070032","packetId":30} +{"t":1790848484870,"conn":"game","dir":"s2c","hex":"1e090019","packetId":30} +{"t":1790848484870,"conn":"game","dir":"s2c","hex":"1e0b005f","packetId":30} +{"t":1790848484870,"conn":"game","dir":"s2c","hex":"1d0c01","packetId":29} +{"t":1790848484870,"conn":"game","dir":"s2c","hex":"9532800cc01700000000000000","packetId":149} +{"t":1790848484870,"conn":"game","dir":"s2c","hex":"03005ef1440c010036170d50","packetId":3} +{"t":1790848484870,"conn":"game","dir":"s2c","hex":"53020000000000000000","packetId":83} +{"t":1790848484870,"conn":"game","dir":"s2c","hex":"074004a80301","packetId":7} +{"t":1790848484870,"conn":"game","dir":"s2c","hex":"073804a00301","packetId":7} +{"t":1790848484870,"conn":"game","dir":"s2c","hex":"073804a80301","packetId":7} +{"t":1790848484870,"conn":"game","dir":"s2c","hex":"074004a00301","packetId":7} +{"t":1790848484870,"conn":"game","dir":"s2c","hex":"074804a00301","packetId":7} +{"t":1790848484870,"conn":"game","dir":"s2c","hex":"073804b00301","packetId":7} +{"t":1790848484870,"conn":"game","dir":"s2c","hex":"074004a80301","packetId":7} +{"t":1790848484870,"conn":"game","dir":"s2c","hex":"074804a80301","packetId":7} +{"t":1790848484870,"conn":"game","dir":"s2c","hex":"074004b00301","packetId":7} +{"t":1790848484870,"conn":"game","dir":"s2c","hex":"074804b00301","packetId":7} +{"t":1790848484870,"conn":"game","dir":"s2c","hex":"1500010000006115641201","packetId":21} +{"t":1790848484871,"conn":"game","dir":"s2c","hex":"7e00000000","packetId":126} +{"t":1790848484871,"conn":"game","dir":"s2c","hex":"8f0000000000000000000000000000000000000000000000000000000000000000","packetId":143} +{"t":1790848484871,"conn":"game","dir":"s2c","hex":"ac060000009a003a155912800e01","packetId":172} +{"t":1790848484871,"conn":"game","dir":"s2c","hex":"aa01060000000c6959f9ff1f","packetId":170} +{"t":1790848484871,"conn":"game","dir":"s2c","hex":"6d060000003a15591280","packetId":109} +{"t":1790848484871,"conn":"game","dir":"s2c","hex":"51020d0000002500341560120200","packetId":81} +{"t":1790848484871,"conn":"game","dir":"s2c","hex":"0e020d000000030002000000","packetId":14} +{"t":1790848484871,"conn":"game","dir":"s2c","hex":"ac0500000098003b157112800e01","packetId":172} +{"t":1790848484871,"conn":"game","dir":"s2c","hex":"aa01050000000c6959f9ff1f","packetId":170} +{"t":1790848484871,"conn":"game","dir":"s2c","hex":"6d050000003b15711280","packetId":109} +{"t":1790848484871,"conn":"game","dir":"s2c","hex":"ac0400000093003c159612800e01","packetId":172} +{"t":1790848484871,"conn":"game","dir":"s2c","hex":"aa01040000000c6959f9ff1f","packetId":170} +{"t":1790848484871,"conn":"game","dir":"s2c","hex":"6d040000003c15961280","packetId":109} +{"t":1790848484871,"conn":"game","dir":"s2c","hex":"51020c00000025003f158d120200","packetId":81} +{"t":1790848484871,"conn":"game","dir":"s2c","hex":"0e020c000000030002000000","packetId":14} +{"t":1790848484871,"conn":"game","dir":"s2c","hex":"51020b0000002500371573120200","packetId":81} +{"t":1790848484871,"conn":"game","dir":"s2c","hex":"0e020b000000030002000000","packetId":14} +{"t":1790848484871,"conn":"game","dir":"s2c","hex":"ac070000009b005a156b12800e01","packetId":172} +{"t":1790848484871,"conn":"game","dir":"s2c","hex":"aa01070000000c6959f9ff1f","packetId":170} +{"t":1790848484871,"conn":"game","dir":"s2c","hex":"6d070000005a156b1280","packetId":109} +{"t":1790848484871,"conn":"game","dir":"s2c","hex":"5102110000000b015a1565120000","packetId":81} +{"t":1790848484871,"conn":"game","dir":"s2c","hex":"5102100000002500421553120200","packetId":81} +{"t":1790848484876,"conn":"game","dir":"s2c","hex":"0e0210000000030002000000","packetId":14} +{"t":1790848484876,"conn":"game","dir":"s2c","hex":"51020f000000250050156a120200","packetId":81} +{"t":1790848484876,"conn":"game","dir":"s2c","hex":"0e020f000000030002000000","packetId":14} +{"t":1790848484876,"conn":"game","dir":"s2c","hex":"51020e0000002400601558120000","packetId":81} +{"t":1790848484876,"conn":"game","dir":"s2c","hex":"a800010000000b69acfc0f","packetId":168} +{"t":1790848484876,"conn":"game","dir":"s2c","hex":"1d0c01","packetId":29} +{"t":1790848484876,"conn":"game","dir":"s2c","hex":"1d0014","packetId":29} +{"t":1790848484876,"conn":"game","dir":"s2c","hex":"1d0214","packetId":29} +{"t":1790848484876,"conn":"game","dir":"s2c","hex":"ac03000000960073156212800e01","packetId":172} +{"t":1790848484876,"conn":"game","dir":"s2c","hex":"aa01030000000c6959f9ff1f","packetId":170} +{"t":1790848484876,"conn":"game","dir":"s2c","hex":"6d030000007315621280","packetId":109} +{"t":1790848484876,"conn":"game","dir":"s2c","hex":"ac0200000098008c1562128010112000","packetId":172} +{"t":1790848484876,"conn":"game","dir":"s2c","hex":"aa01020000000c6959f9ff1f","packetId":170} +{"t":1790848484876,"conn":"game","dir":"s2c","hex":"6d020000008c15621280","packetId":109} +{"t":1790848484876,"conn":"game","dir":"s2c","hex":"51020a00000077007b1551120200","packetId":81} +{"t":1790848484876,"conn":"game","dir":"s2c","hex":"0e020a000000030102000000","packetId":14} +{"t":1790848484876,"conn":"game","dir":"s2c","hex":"5102090000002500731549120200","packetId":81} +{"t":1790848484876,"conn":"game","dir":"s2c","hex":"0e0209000000030002000000","packetId":14} +{"t":1790848484876,"conn":"game","dir":"s2c","hex":"51020800000025006e155d120200","packetId":81} +{"t":1790848484876,"conn":"game","dir":"s2c","hex":"0e0208000000030002000000","packetId":14} +{"t":1790848484876,"conn":"game","dir":"s2c","hex":"5102070000002500871552120200","packetId":81} +{"t":1790848484876,"conn":"game","dir":"s2c","hex":"0e0207000000030002000000","packetId":14} +{"t":1790848484876,"conn":"game","dir":"s2c","hex":"ac0100000098005b1594128010110800","packetId":172} +{"t":1790848484876,"conn":"game","dir":"s2c","hex":"aa01010000000c6959f9ff1f","packetId":170} +{"t":1790848484876,"conn":"game","dir":"s2c","hex":"6d010000005b15941280","packetId":109} +{"t":1790848484876,"conn":"game","dir":"s2c","hex":"5102060000004e00531573120000","packetId":81} +{"t":1790848484876,"conn":"game","dir":"s2c","hex":"5102050000002500611593120200","packetId":81} +{"t":1790848484876,"conn":"game","dir":"s2c","hex":"0e0205000000030002000000","packetId":14} +{"t":1790848484877,"conn":"game","dir":"s2c","hex":"5102040000002300541590120000","packetId":81} +{"t":1790848484877,"conn":"game","dir":"s2c","hex":"5102030000002700651572120000","packetId":81} +{"t":1790848484877,"conn":"game","dir":"s2c","hex":"51020200000081016c1571120000","packetId":81} +{"t":1790848484877,"conn":"game","dir":"s2c","hex":"51020100000025007c1575120200","packetId":81} +{"t":1790848484877,"conn":"game","dir":"s2c","hex":"0e0201000000030002000000","packetId":14} +{"t":1790848484877,"conn":"game","dir":"s2c","hex":"1d0014","packetId":29} +{"t":1790848484877,"conn":"game","dir":"s2c","hex":"1d0119","packetId":29} +{"t":1790848484877,"conn":"game","dir":"s2c","hex":"1d0214","packetId":29} +{"t":1790848484877,"conn":"game","dir":"s2c","hex":"1d0314","packetId":29} +{"t":1790848484877,"conn":"game","dir":"s2c","hex":"1e070032","packetId":30} +{"t":1790848484877,"conn":"game","dir":"s2c","hex":"1e090019","packetId":30} +{"t":1790848484877,"conn":"game","dir":"s2c","hex":"1e0b005f","packetId":30} +{"t":1790848484877,"conn":"game","dir":"s2c","hex":"1d0c01","packetId":29} +{"t":1790848484877,"conn":"game","dir":"s2c","hex":"4800000100000000000000","packetId":72} +{"t":1790848484877,"conn":"game","dir":"s2c","hex":"04","packetId":4} +{"t":1790848484877,"conn":"game","dir":"s2c","hex":"4800000100000000000000","packetId":72} +{"t":1790848484877,"conn":"game","dir":"s2c","hex":"5b24000100000006576562426f74466f75720000000000000100ffff0000000000000000","packetId":91} +{"t":1790848484877,"conn":"game","dir":"s2c","hex":"65010000000000","packetId":101} +{"t":1790848484877,"conn":"game","dir":"s2c","hex":"8d01000000ffff","packetId":141} +{"t":1790848484877,"conn":"game","dir":"s2c","hex":"5a02040000000000576562426f74466f75720000000000006432776562626f743400000000000000","packetId":90} +{"t":1790848485744,"conn":"game","dir":"s2c","hex":"8a0107000000","packetId":138} +{"t":1790848485745,"conn":"game","dir":"s2c","hex":"6706000000013b1553120100074b0005","packetId":103} +{"t":1790848485745,"conn":"game","dir":"s2c","hex":"6d040000003c15961280","packetId":109} +{"t":1790848485745,"conn":"game","dir":"s2c","hex":"6707000000015c1569120100074b0005","packetId":103} +{"t":1790848486065,"conn":"game","dir":"s2c","hex":"6703000000017a1563120100074b0005","packetId":103} +{"t":1790848486585,"conn":"game","dir":"s2c","hex":"8a0107000000","packetId":138} +{"t":1790848486585,"conn":"game","dir":"s2c","hex":"6707000000015d1568120100074b0005","packetId":103} +{"t":1790848486704,"conn":"game","dir":"s2c","hex":"260400020000000001005b61646d696e6973747261746f725d00ff63385b443247535d202d204e6f20636f6d6d65726369616c20707572706f736520697320616c6c6f77656421ff633400","packetId":38} +{"t":1790848486705,"conn":"game","dir":"s2c","hex":"260400020000000001005b61646d696e6973747261746f725d0048656c6c6f20776f726c642100","packetId":38} +{"t":1790848486705,"conn":"game","dir":"s2c","hex":"260400020000000001005b61646d696e6973747261746f725d00ff633954686520576f726c64204576656e7420656e61626c6573206f6e2074686973207365727665722e20546865206b6579206974656d20697320224b6579222eff633100","packetId":38} +{"t":1790848487064,"conn":"game","dir":"s2c","hex":"8a0107000000","packetId":138} +{"t":1790848487064,"conn":"game","dir":"s2c","hex":"6707000000015e1567120100074b0005","packetId":103} +{"t":1790848487064,"conn":"game","dir":"s2c","hex":"6d060000003b15531280","packetId":109} +{"t":1790848487464,"conn":"game","dir":"s2c","hex":"8a0107000000","packetId":138} +{"t":1790848487465,"conn":"game","dir":"s2c","hex":"6d070000005e15671280","packetId":109} +{"t":1790848487465,"conn":"game","dir":"s2c","hex":"2c01070000001200","packetId":44} +{"t":1790848487465,"conn":"game","dir":"s2c","hex":"965f80b00a32893032","packetId":150} +{"t":1790848487986,"conn":"game","dir":"c2s","hex":"69","packetId":105} diff --git a/tests/fixtures/netproto/10-d2gs-spawn-seed-4f05dacb.d2cap b/tests/fixtures/netproto/10-d2gs-spawn-seed-4f05dacb.d2cap new file mode 100644 index 0000000..5dd1d00 --- /dev/null +++ b/tests/fixtures/netproto/10-d2gs-spawn-seed-4f05dacb.d2cap @@ -0,0 +1,195 @@ +{"format":"d2cap-v1","createdAt":"2026-10-01T09:54:19.287Z","server":"101.37.117.183 (via=mixed)","account":"","character":"WebBotFour","scenario":"join"} +{"t":1790848453198,"conn":"bnet","dir":"c2s","hex":"01","packetName":"BNCS_GREETING"} +{"t":1790848453199,"conn":"bnet","dir":"c2s","hex":"ff503a000000000036385849505832440d000000090400007f000001e0010000090400000904000055534100556e697465642053746174657300","packetId":80,"packetName":"SID_AUTH_INFO"} +{"t":1790848453246,"conn":"bnet","dir":"s2c","hex":"ff250800b72d8d09","packetId":37,"packetName":"SID_PING"} +{"t":1790848453246,"conn":"bnet","dir":"c2s","hex":"ff250800b72d8d09","packetId":37,"packetName":"SID_PING"} +{"t":1790848453292,"conn":"bnet","dir":"s2c","hex":"ff50650000000000f9f219007700000000d8b1d80027dd0149583836766572312e6d707100413d3338343535383136333420423d38383038323335383020433d31333633393337313033203420413d412d5320423d422d4320433d432d4120413d412d4200","packetId":80,"packetName":"SID_AUTH_INFO"} +{"t":1790848453294,"conn":"bnet","dir":"c2s","hex":"ff518b005a54deac000d0001cabe867602000000000000001000000006000000cbba00000000000076e06ee976c85a85f2e228e06d348b857acbbaf3100000000a000000f015eb00000000006022db01626d118aba6b1ae2702f52f13387b3da47616d652e6578652030332f30392f31302030343a31303a353120363134343000576562506c6179657200","packetId":81,"packetName":"SID_AUTH_CHECK"} +{"t":1790848453338,"conn":"bnet","dir":"s2c","hex":"ff5109000000000000","packetId":81,"packetName":"SID_AUTH_CHECK"} +{"t":1790848453340,"conn":"bnet","dir":"c2s","hex":"ff3a2a005a54deacf9f219005779cb502a51f6c3b12e8fabd3719d54c2abcfe96432776562626f743400","packetId":58,"packetName":"SID_LOGONRESPONSE2"} +{"t":1790848453384,"conn":"bnet","dir":"s2c","hex":"ff590400","packetId":89,"packetName":"SID_SETEMAIL"} +{"t":1790848453471,"conn":"bnet","dir":"s2c","hex":"ff3a080000000000","packetId":58,"packetName":"SID_LOGONRESPONSE2"} +{"t":1790848453472,"conn":"bnet","dir":"c2s","hex":"ff3e26005a54deaca78c40549a0d3556af014968570def14a0fde66b53616e63747561727900","packetId":62,"packetName":"SID_LOGONREALMEX"} +{"t":1790848453517,"conn":"bnet","dir":"s2c","hex":"ff3e56005a54deac000000000000000077000000652575b717e10000f9f219000000000000000000505832440d00000000000000000000006fb284156dea9d2aca58a12a15da4ec2afd587986432776562626f743400","packetId":62,"packetName":"SID_LOGONREALMEX"} +{"t":1790848454940,"conn":"realm","dir":"c2s","hex":"01","packetName":"MCP_GREETING"} +{"t":1790848454941,"conn":"realm","dir":"c2s","hex":"4d00015a54deac000000000000000077000000f9f219000000000000000000505832440d00000000000000000000006fb284156dea9d2aca58a12a15da4ec2afd587986432776562626f743400","packetId":1,"packetName":"MCP_STARTUP"} +{"t":1790848454991,"conn":"realm","dir":"s2c","hex":"07000100000000","packetId":1,"packetName":"MCP_STARTUP"} +{"t":1790848454991,"conn":"realm","dir":"c2s","hex":"07001908000000","packetId":25,"packetName":"MCP_CHARLIST2"} +{"t":1790848455039,"conn":"realm","dir":"s2c","hex":"3c00190800010000000100ffffff7f576562426f74466f7572008d80ffffffffff2dff4fffffff07ffffffffffffffffffffff01e080808001ffff00","packetId":25,"packetName":"MCP_CHARLIST2"} +{"t":1790848455040,"conn":"realm","dir":"c2s","hex":"0e0007576562426f74466f757200","packetId":7,"packetName":"MCP_CHARLOGON"} +{"t":1790848455087,"conn":"realm","dir":"s2c","hex":"07000700000000","packetId":7,"packetName":"MCP_CHARLOGON"} +{"t":1790848455088,"conn":"realm","dir":"c2s","hex":"21000301000000000001ff0877626d38336966000064322d626f74206a6f696e00","packetId":3,"packetName":"MCP_CREATEGAME"} +{"t":1790848455137,"conn":"realm","dir":"s2c","hex":"0d000301000100010000000000","packetId":3,"packetName":"MCP_CREATEGAME"} +{"t":1790848455138,"conn":"realm","dir":"c2s","hex":"0e0004020077626d383369660000","packetId":4,"packetName":"MCP_JOINGAME"} +{"t":1790848455189,"conn":"realm","dir":"s2c","hex":"150004020047000000652575b7f283b52e00000000","packetId":4,"packetName":"MCP_JOINGAME"} +{"t":1790848455697,"conn":"game","dir":"s2c","hex":"af01","packetId":175} +{"t":1790848455698,"conn":"game","dir":"c2s","hex":"68f283b52e4700060d000000ed4d5650b453354200576562426f74466f7572000000000000","packetId":104} +{"t":1790848455784,"conn":"game","dir":"s2c","hex":"0100040030000101","packetId":1} +{"t":1790848455784,"conn":"game","dir":"s2c","hex":"00","packetId":0} +{"t":1790848455784,"conn":"game","dir":"s2c","hex":"02","packetId":2} +{"t":1790848455784,"conn":"game","dir":"c2s","hex":"6b","packetId":107} +{"t":1790848455784,"conn":"game","dir":"c2s","hex":"6d68d4e2f60000000000000000","packetId":109} +{"t":1790848455864,"conn":"game","dir":"s2c","hex":"590100000006576562426f74466f757200000000000000000000","packetId":89} +{"t":1790848455865,"conn":"game","dir":"s2c","hex":"aa00010000000c6959f9ff1f","packetId":170} +{"t":1790848455865,"conn":"game","dir":"s2c","hex":"760001000000","packetId":118} +{"t":1790848455865,"conn":"game","dir":"s2c","hex":"940901000000000001020001010001d90001da0001db0001dc0001050001030001","packetId":148} +{"t":1790848455865,"conn":"game","dir":"s2c","hex":"22000001000000db0001cd00","packetId":34} +{"t":1790848455865,"conn":"game","dir":"s2c","hex":"22000001000000d90001cd00","packetId":34} +{"t":1790848455865,"conn":"game","dir":"s2c","hex":"5e01010101010101010101010101010101010101010101010101010101010101010101010101","packetId":94} +{"t":1790848455866,"conn":"game","dir":"s2c","hex":"28060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","packetId":40} +{"t":1790848455866,"conn":"game","dir":"s2c","hex":"29000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","packetId":41} +{"t":1790848455866,"conn":"game","dir":"s2c","hex":"0b0001000000","packetId":11} +{"t":1790848455866,"conn":"game","dir":"s2c","hex":"5f01000000","packetId":95} +{"t":1790848455866,"conn":"game","dir":"s2c","hex":"1d0014","packetId":29} +{"t":1790848455866,"conn":"game","dir":"s2c","hex":"1d0119","packetId":29} +{"t":1790848455866,"conn":"game","dir":"s2c","hex":"1d0214","packetId":29} +{"t":1790848455866,"conn":"game","dir":"s2c","hex":"1d0314","packetId":29} +{"t":1790848455866,"conn":"game","dir":"s2c","hex":"1e070032","packetId":30} +{"t":1790848455866,"conn":"game","dir":"s2c","hex":"1e090019","packetId":30} +{"t":1790848455866,"conn":"game","dir":"s2c","hex":"1e0b005f","packetId":30} +{"t":1790848455866,"conn":"game","dir":"s2c","hex":"1d0c01","packetId":29} +{"t":1790848455866,"conn":"game","dir":"s2c","hex":"9c0e1410010000001000a2006508008006170302","packetId":156} +{"t":1790848455868,"conn":"game","dir":"s2c","hex":"9c0e1410020000001000a2006508028006170302","packetId":156} +{"t":1790848455868,"conn":"game","dir":"s2c","hex":"9c0e1410030000001000a2006508048006170302","packetId":156} +{"t":1790848455868,"conn":"game","dir":"s2c","hex":"9c0e1410040000001000a2006508068006170302","packetId":156} +{"t":1790848455868,"conn":"game","dir":"s2c","hex":"9c041410050000001000a2006500724237370602","packetId":156} +{"t":1790848455868,"conn":"game","dir":"s2c","hex":"9c041410060000001000a2006500529236370602","packetId":156} +{"t":1790848455868,"conn":"game","dir":"s2c","hex":"9d061e0507000000000100000011008200658408b046270782800003e33f","packetId":157} +{"t":1790848455869,"conn":"game","dir":"s2c","hex":"9d0620060800000000010000001100820065a40a20563706828000010606ff01","packetId":157} +{"t":1790848455869,"conn":"game","dir":"s2c","hex":"230001000000010000ffffffff","packetId":35} +{"t":1790848455869,"conn":"game","dir":"s2c","hex":"230001000000000000ffffffff","packetId":35} +{"t":1790848455869,"conn":"game","dir":"s2c","hex":"1d0014","packetId":29} +{"t":1790848455869,"conn":"game","dir":"s2c","hex":"1d0119","packetId":29} +{"t":1790848455869,"conn":"game","dir":"s2c","hex":"1d0214","packetId":29} +{"t":1790848455869,"conn":"game","dir":"s2c","hex":"1d0314","packetId":29} +{"t":1790848455869,"conn":"game","dir":"s2c","hex":"1e070032","packetId":30} +{"t":1790848455869,"conn":"game","dir":"s2c","hex":"1e090019","packetId":30} +{"t":1790848455869,"conn":"game","dir":"s2c","hex":"1e0b005f","packetId":30} +{"t":1790848455869,"conn":"game","dir":"s2c","hex":"1d0c01","packetId":29} +{"t":1790848455869,"conn":"game","dir":"s2c","hex":"9532800cc01700000000000000","packetId":149} +{"t":1790848455869,"conn":"game","dir":"s2c","hex":"0300cbda054f01009ae94549","packetId":3} +{"t":1790848455869,"conn":"game","dir":"s2c","hex":"53020000000000000000","packetId":83} +{"t":1790848455869,"conn":"game","dir":"s2c","hex":"076804500401","packetId":7} +{"t":1790848455869,"conn":"game","dir":"s2c","hex":"076004480401","packetId":7} +{"t":1790848455869,"conn":"game","dir":"s2c","hex":"076004500401","packetId":7} +{"t":1790848455869,"conn":"game","dir":"s2c","hex":"076804480401","packetId":7} +{"t":1790848455869,"conn":"game","dir":"s2c","hex":"077004480401","packetId":7} +{"t":1790848455869,"conn":"game","dir":"s2c","hex":"076004580401","packetId":7} +{"t":1790848455869,"conn":"game","dir":"s2c","hex":"076804500401","packetId":7} +{"t":1790848455869,"conn":"game","dir":"s2c","hex":"077004500401","packetId":7} +{"t":1790848455869,"conn":"game","dir":"s2c","hex":"076804580401","packetId":7} +{"t":1790848455869,"conn":"game","dir":"s2c","hex":"077004580401","packetId":7} +{"t":1790848455869,"conn":"game","dir":"s2c","hex":"1500010000001516931501","packetId":21} +{"t":1790848455869,"conn":"game","dir":"s2c","hex":"7e00000000","packetId":126} +{"t":1790848455869,"conn":"game","dir":"s2c","hex":"8f0000000000000000000000000000000000000000000000000000000000000000","packetId":143} +{"t":1790848455870,"conn":"game","dir":"s2c","hex":"ac080000009a00ee158815800e01","packetId":172} +{"t":1790848455870,"conn":"game","dir":"s2c","hex":"aa01080000000c6959f9ff1f","packetId":170} +{"t":1790848455870,"conn":"game","dir":"s2c","hex":"6d08000000ee15881580","packetId":109} +{"t":1790848455870,"conn":"game","dir":"s2c","hex":"5102130000002500f61582150200","packetId":81} +{"t":1790848455870,"conn":"game","dir":"s2c","hex":"0e0213000000030002000000","packetId":14} +{"t":1790848455870,"conn":"game","dir":"s2c","hex":"5102120000002500e8158f150200","packetId":81} +{"t":1790848455870,"conn":"game","dir":"s2c","hex":"0e0212000000030002000000","packetId":14} +{"t":1790848455870,"conn":"game","dir":"s2c","hex":"5102110000007700071676150200","packetId":81} +{"t":1790848455870,"conn":"game","dir":"s2c","hex":"0e0211000000030102000000","packetId":14} +{"t":1790848455870,"conn":"game","dir":"s2c","hex":"ac070000009800f515b0158010116800","packetId":172} +{"t":1790848455870,"conn":"game","dir":"s2c","hex":"aa01070000000c6959f9ff1f","packetId":170} +{"t":1790848455870,"conn":"game","dir":"s2c","hex":"6d07000000f515b01580","packetId":109} +{"t":1790848455870,"conn":"game","dir":"s2c","hex":"5102100000002400f51596150000","packetId":81} +{"t":1790848455870,"conn":"game","dir":"s2c","hex":"51020f0000004e000716a1150000","packetId":81} +{"t":1790848455870,"conn":"game","dir":"s2c","hex":"51020e0000002500f015a2150200","packetId":81} +{"t":1790848455870,"conn":"game","dir":"s2c","hex":"0e020e000000030002000000","packetId":14} +{"t":1790848455870,"conn":"game","dir":"s2c","hex":"51020d0000002500041699150200","packetId":81} +{"t":1790848455870,"conn":"game","dir":"s2c","hex":"0e020d000000030002000000","packetId":14} +{"t":1790848455870,"conn":"game","dir":"s2c","hex":"51020c00000025001a168a150200","packetId":81} +{"t":1790848455874,"conn":"game","dir":"s2c","hex":"0e020c000000030002000000","packetId":14} +{"t":1790848455874,"conn":"game","dir":"s2c","hex":"ac06000000940050167d15800e01","packetId":172} +{"t":1790848455874,"conn":"game","dir":"s2c","hex":"aa01060000000c6959f9ff1f","packetId":170} +{"t":1790848455874,"conn":"game","dir":"s2c","hex":"6d0600000050167d1580","packetId":109} +{"t":1790848455874,"conn":"game","dir":"s2c","hex":"51020b0000002500491681150200","packetId":81} +{"t":1790848455874,"conn":"game","dir":"s2c","hex":"0e020b000000030002000000","packetId":14} +{"t":1790848455874,"conn":"game","dir":"s2c","hex":"51020a0000002500561678150200","packetId":81} +{"t":1790848455874,"conn":"game","dir":"s2c","hex":"0e020a000000030002000000","packetId":14} +{"t":1790848455874,"conn":"game","dir":"s2c","hex":"51020900000025003b1680150200","packetId":81} +{"t":1790848455874,"conn":"game","dir":"s2c","hex":"0e0209000000030002000000","packetId":14} +{"t":1790848455874,"conn":"game","dir":"s2c","hex":"ac050000009300f215c915800e01","packetId":172} +{"t":1790848455874,"conn":"game","dir":"s2c","hex":"aa01050000000c6959f9ff1f","packetId":170} +{"t":1790848455874,"conn":"game","dir":"s2c","hex":"6d05000000f215c91580","packetId":109} +{"t":1790848455874,"conn":"game","dir":"s2c","hex":"5102080000002500f315bc150200","packetId":81} +{"t":1790848455874,"conn":"game","dir":"s2c","hex":"0e0208000000030002000000","packetId":14} +{"t":1790848455874,"conn":"game","dir":"s2c","hex":"5102070000002500eb15cc150200","packetId":81} +{"t":1790848455874,"conn":"game","dir":"s2c","hex":"0e0207000000030002000000","packetId":14} +{"t":1790848455874,"conn":"game","dir":"s2c","hex":"ac0a0000009b000e169a15800e01","packetId":172} +{"t":1790848455874,"conn":"game","dir":"s2c","hex":"aa010a0000000c6959f9ff1f","packetId":170} +{"t":1790848455874,"conn":"game","dir":"s2c","hex":"6d0a0000000e169a1580","packetId":109} +{"t":1790848455874,"conn":"game","dir":"s2c","hex":"ac0900000096002b169b15800e01","packetId":172} +{"t":1790848455874,"conn":"game","dir":"s2c","hex":"aa01090000000c6959f9ff1f","packetId":170} +{"t":1790848455874,"conn":"game","dir":"s2c","hex":"6d090000002b169b1580","packetId":109} +{"t":1790848455874,"conn":"game","dir":"s2c","hex":"51021800000025002a1696150200","packetId":81} +{"t":1790848455874,"conn":"game","dir":"s2c","hex":"0e0218000000030002000000","packetId":14} +{"t":1790848455874,"conn":"game","dir":"s2c","hex":"51021700000027001916a1150000","packetId":81} +{"t":1790848455874,"conn":"game","dir":"s2c","hex":"5102160000000b010e1694150000","packetId":81} +{"t":1790848455874,"conn":"game","dir":"s2c","hex":"51021500000025001c16b0150200","packetId":81} +{"t":1790848455874,"conn":"game","dir":"s2c","hex":"0e0215000000030002000000","packetId":14} +{"t":1790848455874,"conn":"game","dir":"s2c","hex":"51021400000081012016a0150000","packetId":81} +{"t":1790848455874,"conn":"game","dir":"s2c","hex":"a800010000000b69acfc0f","packetId":168} +{"t":1790848455875,"conn":"game","dir":"s2c","hex":"1d0c01","packetId":29} +{"t":1790848455875,"conn":"game","dir":"s2c","hex":"1d0014","packetId":29} +{"t":1790848455875,"conn":"game","dir":"s2c","hex":"1d0214","packetId":29} +{"t":1790848455875,"conn":"game","dir":"s2c","hex":"ac0400000098003d16aa158010114800","packetId":172} +{"t":1790848455875,"conn":"game","dir":"s2c","hex":"aa01040000000c6959f9ff1f","packetId":170} +{"t":1790848455875,"conn":"game","dir":"s2c","hex":"6d040000003d16aa1580","packetId":109} +{"t":1790848455875,"conn":"game","dir":"s2c","hex":"51020600000023004716b0150000","packetId":81} +{"t":1790848455875,"conn":"game","dir":"s2c","hex":"51020500000025005416b4150200","packetId":81} +{"t":1790848455875,"conn":"game","dir":"s2c","hex":"0e0205000000030002000000","packetId":14} +{"t":1790848455875,"conn":"game","dir":"s2c","hex":"ac0300000098002016d5158010116800","packetId":172} +{"t":1790848455875,"conn":"game","dir":"s2c","hex":"aa01030000000c6959f9ff1f","packetId":170} +{"t":1790848455875,"conn":"game","dir":"s2c","hex":"6d030000002016d51580","packetId":109} +{"t":1790848455875,"conn":"game","dir":"s2c","hex":"ac0200000098001016c3158010116800","packetId":172} +{"t":1790848455875,"conn":"game","dir":"s2c","hex":"aa01020000000c6959f9ff1f","packetId":170} +{"t":1790848455876,"conn":"game","dir":"s2c","hex":"6d020000001016c31580","packetId":109} +{"t":1790848455876,"conn":"game","dir":"s2c","hex":"ac0100000098002d16c5158010114800","packetId":172} +{"t":1790848455876,"conn":"game","dir":"s2c","hex":"aa01010000000c6959f9ff1f","packetId":170} +{"t":1790848455876,"conn":"game","dir":"s2c","hex":"6d010000002d16c51580","packetId":109} +{"t":1790848455876,"conn":"game","dir":"s2c","hex":"51020400000025002516d6150200","packetId":81} +{"t":1790848455876,"conn":"game","dir":"s2c","hex":"0e0204000000030002000000","packetId":14} +{"t":1790848455876,"conn":"game","dir":"s2c","hex":"51020300000025001416c2150200","packetId":81} +{"t":1790848455876,"conn":"game","dir":"s2c","hex":"0e0203000000030002000000","packetId":14} +{"t":1790848455876,"conn":"game","dir":"s2c","hex":"51020200000025003116d1150200","packetId":81} +{"t":1790848455876,"conn":"game","dir":"s2c","hex":"0e0202000000030002000000","packetId":14} +{"t":1790848455876,"conn":"game","dir":"s2c","hex":"51020100000025004016d2150200","packetId":81} +{"t":1790848455876,"conn":"game","dir":"s2c","hex":"0e0201000000030002000000","packetId":14} +{"t":1790848455876,"conn":"game","dir":"s2c","hex":"1d0014","packetId":29} +{"t":1790848455876,"conn":"game","dir":"s2c","hex":"1d0119","packetId":29} +{"t":1790848455876,"conn":"game","dir":"s2c","hex":"1d0214","packetId":29} +{"t":1790848455876,"conn":"game","dir":"s2c","hex":"1d0314","packetId":29} +{"t":1790848455876,"conn":"game","dir":"s2c","hex":"1e070032","packetId":30} +{"t":1790848455876,"conn":"game","dir":"s2c","hex":"1e090019","packetId":30} +{"t":1790848455876,"conn":"game","dir":"s2c","hex":"1e0b005f","packetId":30} +{"t":1790848455876,"conn":"game","dir":"s2c","hex":"1d0c01","packetId":29} +{"t":1790848455876,"conn":"game","dir":"s2c","hex":"4800000100000000000000","packetId":72} +{"t":1790848455876,"conn":"game","dir":"s2c","hex":"04","packetId":4} +{"t":1790848455876,"conn":"game","dir":"s2c","hex":"4800000100000000000000","packetId":72} +{"t":1790848455876,"conn":"game","dir":"s2c","hex":"5b24000100000006576562426f74466f75720000000000000100ffff0000000000000000","packetId":91} +{"t":1790848455876,"conn":"game","dir":"s2c","hex":"65010000000000","packetId":101} +{"t":1790848455876,"conn":"game","dir":"s2c","hex":"8d01000000ffff","packetId":141} +{"t":1790848455876,"conn":"game","dir":"s2c","hex":"5a02040000000000576562426f74466f75720000000000006432776562626f743400000000000000","packetId":90} +{"t":1790848456503,"conn":"game","dir":"s2c","hex":"260400020000000001005b61646d696e6973747261746f725d00ff63385b443247535d202d204e6f20636f6d6d65726369616c20707572706f736520697320616c6c6f77656421ff633400","packetId":38} +{"t":1790848456504,"conn":"game","dir":"s2c","hex":"260400020000000001005b61646d696e6973747261746f725d0048656c6c6f20776f726c642100","packetId":38} +{"t":1790848456504,"conn":"game","dir":"s2c","hex":"260400020000000001005b61646d696e6973747261746f725d00ff633954686520576f726c64204576656e7420656e61626c6573206f6e2074686973207365727665722e20546865206b6579206974656d20697320224b6579222eff633100","packetId":38} +{"t":1790848456743,"conn":"game","dir":"s2c","hex":"8a010a000000","packetId":138} +{"t":1790848456743,"conn":"game","dir":"s2c","hex":"670800000001ee1589150100074b0005","packetId":103} +{"t":1790848456743,"conn":"game","dir":"s2c","hex":"670500000001f215c2150100074b0005","packetId":103} +{"t":1790848456743,"conn":"game","dir":"s2c","hex":"670a00000001101698150100074b0005","packetId":103} +{"t":1790848456743,"conn":"game","dir":"s2c","hex":"6709000000012916a3150100074b0005","packetId":103} +{"t":1790848456983,"conn":"game","dir":"s2c","hex":"6d08000000ee15891580","packetId":109} +{"t":1790848457383,"conn":"game","dir":"s2c","hex":"670600000001541681150100074b0005","packetId":103} +{"t":1790848457583,"conn":"game","dir":"s2c","hex":"8a010a000000","packetId":138} +{"t":1790848457583,"conn":"game","dir":"s2c","hex":"670a00000001111697150100074b0005","packetId":103} +{"t":1790848458063,"conn":"game","dir":"s2c","hex":"8a010a000000","packetId":138} +{"t":1790848458063,"conn":"game","dir":"s2c","hex":"670a00000001121696150100074b0005","packetId":103} +{"t":1790848458263,"conn":"game","dir":"s2c","hex":"6d05000000f215c21580","packetId":109} +{"t":1790848458463,"conn":"game","dir":"s2c","hex":"8a010a000000","packetId":138} +{"t":1790848458463,"conn":"game","dir":"s2c","hex":"6d0a0000001216961580","packetId":109} +{"t":1790848458463,"conn":"game","dir":"s2c","hex":"2c010a0000001200","packetId":44} +{"t":1790848458463,"conn":"game","dir":"s2c","hex":"965f800a8bc98a8a49","packetId":150} +{"t":1790848458984,"conn":"game","dir":"c2s","hex":"69","packetId":105} diff --git a/tests/fixtures/netproto/10-d2gs-spawn-seed-52e4e6ff.d2cap b/tests/fixtures/netproto/10-d2gs-spawn-seed-52e4e6ff.d2cap new file mode 100644 index 0000000..2e39125 --- /dev/null +++ b/tests/fixtures/netproto/10-d2gs-spawn-seed-52e4e6ff.d2cap @@ -0,0 +1,174 @@ +{"format":"d2cap-v1","createdAt":"2026-10-01T09:53:56.881Z","server":"101.37.117.183 (via=mixed)","account":"","character":"WebBotFour","scenario":"join"} +{"t":1790848431018,"conn":"bnet","dir":"c2s","hex":"01","packetName":"BNCS_GREETING"} +{"t":1790848431019,"conn":"bnet","dir":"c2s","hex":"ff503a000000000036385849505832440d000000090400007f000001e0010000090400000904000055534100556e697465642053746174657300","packetId":80,"packetName":"SID_AUTH_INFO"} +{"t":1790848431066,"conn":"bnet","dir":"s2c","hex":"ff25080013d78c09","packetId":37,"packetName":"SID_PING"} +{"t":1790848431066,"conn":"bnet","dir":"c2s","hex":"ff25080013d78c09","packetId":37,"packetName":"SID_PING"} +{"t":1790848431111,"conn":"bnet","dir":"s2c","hex":"ff506500000000003a64205d7500000000d8b1d80027dd0149583836766572312e6d707100413d3338343535383136333420423d38383038323335383020433d31333633393337313033203420413d412d5320423d422d4320433d432d4120413d412d4200","packetId":80,"packetName":"SID_AUTH_INFO"} +{"t":1790848431112,"conn":"bnet","dir":"c2s","hex":"ff518b00bdeddeac000d0001cabe867602000000000000001000000006000000cbba0000000000000ecdf78c407f562b7dcb0863e95cfc66f6a62cbe100000000a000000f015eb0000000000b3c5dd01105cff0489126724ed5e27f0b05e52d747616d652e6578652030332f30392f31302030343a31303a353120363134343000576562506c6179657200","packetId":81,"packetName":"SID_AUTH_CHECK"} +{"t":1790848431158,"conn":"bnet","dir":"s2c","hex":"ff5109000000000000","packetId":81,"packetName":"SID_AUTH_CHECK"} +{"t":1790848431159,"conn":"bnet","dir":"c2s","hex":"ff3a2a00bdeddeac3a64205d8c55811b15cf13f56052dc84ef05afec000ee4706432776562626f743400","packetId":58,"packetName":"SID_LOGONRESPONSE2"} +{"t":1790848431205,"conn":"bnet","dir":"s2c","hex":"ff590400","packetId":89,"packetName":"SID_SETEMAIL"} +{"t":1790848431293,"conn":"bnet","dir":"s2c","hex":"ff3a080000000000","packetId":58,"packetName":"SID_LOGONRESPONSE2"} +{"t":1790848431294,"conn":"bnet","dir":"c2s","hex":"ff3e2600bdeddeac9340e49f9aec6dd7295f958b5d3fd8801270d7f353616e63747561727900","packetId":62,"packetName":"SID_LOGONREALMEX"} +{"t":1790848431342,"conn":"bnet","dir":"s2c","hex":"ff3e5600bdeddeac000000000000000075000000652575b717e100003a64205d0000000000000000505832440d00000000000000000000009a0d0af0f9f4d70645ce0dfb26c56872ad6bb1f16432776562626f743400","packetId":62,"packetName":"SID_LOGONREALMEX"} +{"t":1790848431805,"conn":"realm","dir":"c2s","hex":"01","packetName":"MCP_GREETING"} +{"t":1790848431806,"conn":"realm","dir":"c2s","hex":"4d0001bdeddeac0000000000000000750000003a64205d0000000000000000505832440d00000000000000000000009a0d0af0f9f4d70645ce0dfb26c56872ad6bb1f16432776562626f743400","packetId":1,"packetName":"MCP_STARTUP"} +{"t":1790848431869,"conn":"realm","dir":"s2c","hex":"07000100000000","packetId":1,"packetName":"MCP_STARTUP"} +{"t":1790848431870,"conn":"realm","dir":"c2s","hex":"07001908000000","packetId":25,"packetName":"MCP_CHARLIST2"} +{"t":1790848431932,"conn":"realm","dir":"s2c","hex":"3c00190800010000000100ffffff7f576562426f74466f7572008480ffffffffffffffffffffff07ffffffffffffffffffffff01e180808001ffff00","packetId":25,"packetName":"MCP_CHARLIST2"} +{"t":1790848431933,"conn":"realm","dir":"c2s","hex":"0e0007576562426f74466f757200","packetId":7,"packetName":"MCP_CHARLOGON"} +{"t":1790848431996,"conn":"realm","dir":"s2c","hex":"07000700000000","packetId":7,"packetName":"MCP_CHARLOGON"} +{"t":1790848431997,"conn":"realm","dir":"c2s","hex":"21000301000000000001ff0877626d38336872000064322d626f74206a6f696e00","packetId":3,"packetName":"MCP_CREATEGAME"} +{"t":1790848432062,"conn":"realm","dir":"s2c","hex":"0d000301000100010000000000","packetId":3,"packetName":"MCP_CREATEGAME"} +{"t":1790848432063,"conn":"realm","dir":"c2s","hex":"0e0004020077626d383368720000","packetId":4,"packetName":"MCP_JOINGAME"} +{"t":1790848432125,"conn":"realm","dir":"s2c","hex":"150004020046000000652575b717d5c93f00000000","packetId":4,"packetName":"MCP_JOINGAME"} +{"t":1790848432316,"conn":"game","dir":"s2c","hex":"af01","packetId":175} +{"t":1790848432317,"conn":"game","dir":"c2s","hex":"6817d5c93f4600060d000000ed4d5650b453354200576562426f74466f7572000000000000","packetId":104} +{"t":1790848432381,"conn":"game","dir":"s2c","hex":"0100040030000101","packetId":1} +{"t":1790848432381,"conn":"game","dir":"s2c","hex":"00","packetId":0} +{"t":1790848432381,"conn":"game","dir":"s2c","hex":"02","packetId":2} +{"t":1790848432381,"conn":"game","dir":"c2s","hex":"6b","packetId":107} +{"t":1790848432382,"conn":"game","dir":"c2s","hex":"6dfe78e2f60000000000000000","packetId":109} +{"t":1790848432461,"conn":"game","dir":"s2c","hex":"590100000006576562426f74466f757200000000000000000000","packetId":89} +{"t":1790848432461,"conn":"game","dir":"s2c","hex":"aa00010000000c6959f9ff1f","packetId":170} +{"t":1790848432462,"conn":"game","dir":"s2c","hex":"760001000000","packetId":118} +{"t":1790848432462,"conn":"game","dir":"s2c","hex":"22000001000000db0001cd00","packetId":34} +{"t":1790848432462,"conn":"game","dir":"s2c","hex":"22000001000000d90001cd00","packetId":34} +{"t":1790848432462,"conn":"game","dir":"s2c","hex":"5e01010101010101010101010101010101010101010101010101010101010101010101010101","packetId":94} +{"t":1790848432462,"conn":"game","dir":"s2c","hex":"28060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","packetId":40} +{"t":1790848432463,"conn":"game","dir":"s2c","hex":"29000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","packetId":41} +{"t":1790848432463,"conn":"game","dir":"s2c","hex":"5e01010101010101010101010101010101010101010101010101010101010101010101010101","packetId":94} +{"t":1790848432463,"conn":"game","dir":"s2c","hex":"28060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","packetId":40} +{"t":1790848432464,"conn":"game","dir":"s2c","hex":"29000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","packetId":41} +{"t":1790848432464,"conn":"game","dir":"s2c","hex":"0b0001000000","packetId":11} +{"t":1790848432464,"conn":"game","dir":"s2c","hex":"5f01000000","packetId":95} +{"t":1790848432464,"conn":"game","dir":"s2c","hex":"1d0014","packetId":29} +{"t":1790848432464,"conn":"game","dir":"s2c","hex":"1d0119","packetId":29} +{"t":1790848432464,"conn":"game","dir":"s2c","hex":"1d0214","packetId":29} +{"t":1790848432464,"conn":"game","dir":"s2c","hex":"1d0314","packetId":29} +{"t":1790848432464,"conn":"game","dir":"s2c","hex":"1e070032","packetId":30} +{"t":1790848432464,"conn":"game","dir":"s2c","hex":"1e090019","packetId":30} +{"t":1790848432464,"conn":"game","dir":"s2c","hex":"1e0b005f","packetId":30} +{"t":1790848432464,"conn":"game","dir":"s2c","hex":"1d0c01","packetId":29} +{"t":1790848432464,"conn":"game","dir":"s2c","hex":"9d061e0501000000000100000011208200658408b046270782800003e33f","packetId":157} +{"t":1790848432466,"conn":"game","dir":"s2c","hex":"9d0620060200000000010000001120820065a40a20563706828000010606ff01","packetId":157} +{"t":1790848432466,"conn":"game","dir":"s2c","hex":"9c0e1410030000001020a2006508008006170302","packetId":156} +{"t":1790848432466,"conn":"game","dir":"s2c","hex":"9c0e1410040000001020a2006508028006170302","packetId":156} +{"t":1790848432466,"conn":"game","dir":"s2c","hex":"9c0e1410050000001020a2006508048006170302","packetId":156} +{"t":1790848432466,"conn":"game","dir":"s2c","hex":"9c0e1410060000001020a2006508068006170302","packetId":156} +{"t":1790848432466,"conn":"game","dir":"s2c","hex":"9c041410070000001020a2006500724237370602","packetId":156} +{"t":1790848432466,"conn":"game","dir":"s2c","hex":"9c041410080000001020a2006500529236370602","packetId":156} +{"t":1790848432466,"conn":"game","dir":"s2c","hex":"23000100000001000000000000","packetId":35} +{"t":1790848432466,"conn":"game","dir":"s2c","hex":"23000100000000000000000000","packetId":35} +{"t":1790848432466,"conn":"game","dir":"s2c","hex":"1d0014","packetId":29} +{"t":1790848432466,"conn":"game","dir":"s2c","hex":"1d0119","packetId":29} +{"t":1790848432466,"conn":"game","dir":"s2c","hex":"1d0214","packetId":29} +{"t":1790848432466,"conn":"game","dir":"s2c","hex":"1d0314","packetId":29} +{"t":1790848432466,"conn":"game","dir":"s2c","hex":"1e070032","packetId":30} +{"t":1790848432466,"conn":"game","dir":"s2c","hex":"1e090019","packetId":30} +{"t":1790848432466,"conn":"game","dir":"s2c","hex":"1e0b005f","packetId":30} +{"t":1790848432466,"conn":"game","dir":"s2c","hex":"1d0c01","packetId":29} +{"t":1790848432466,"conn":"game","dir":"s2c","hex":"9532800cc01700000000000000","packetId":149} +{"t":1790848432466,"conn":"game","dir":"s2c","hex":"0300ffe6e452010059a5a3ba","packetId":3} +{"t":1790848432466,"conn":"game","dir":"s2c","hex":"53020000000000000000","packetId":83} +{"t":1790848432466,"conn":"game","dir":"s2c","hex":"071803100401","packetId":7} +{"t":1790848432466,"conn":"game","dir":"s2c","hex":"071003080401","packetId":7} +{"t":1790848432466,"conn":"game","dir":"s2c","hex":"071003100401","packetId":7} +{"t":1790848432466,"conn":"game","dir":"s2c","hex":"071803080401","packetId":7} +{"t":1790848432466,"conn":"game","dir":"s2c","hex":"072003080401","packetId":7} +{"t":1790848432466,"conn":"game","dir":"s2c","hex":"071003180401","packetId":7} +{"t":1790848432467,"conn":"game","dir":"s2c","hex":"071803100401","packetId":7} +{"t":1790848432467,"conn":"game","dir":"s2c","hex":"072003100401","packetId":7} +{"t":1790848432467,"conn":"game","dir":"s2c","hex":"071803180401","packetId":7} +{"t":1790848432467,"conn":"game","dir":"s2c","hex":"072003180401","packetId":7} +{"t":1790848432467,"conn":"game","dir":"s2c","hex":"150001000000990f6c1401","packetId":21} +{"t":1790848432467,"conn":"game","dir":"s2c","hex":"7e00000000","packetId":126} +{"t":1790848432470,"conn":"game","dir":"s2c","hex":"8f0000000000000000000000000000000000000000000000000000000000000000","packetId":143} +{"t":1790848432470,"conn":"game","dir":"s2c","hex":"ac060000009a00720f6114800e01","packetId":172} +{"t":1790848432471,"conn":"game","dir":"s2c","hex":"aa01060000000c6959f9ff1f","packetId":170} +{"t":1790848432471,"conn":"game","dir":"s2c","hex":"6d06000000720f611480","packetId":109} +{"t":1790848432471,"conn":"game","dir":"s2c","hex":"51020d00000025006c0f68140200","packetId":81} +{"t":1790848432471,"conn":"game","dir":"s2c","hex":"0e020d000000030002000000","packetId":14} +{"t":1790848432471,"conn":"game","dir":"s2c","hex":"ac050000009800730f79148010114000","packetId":172} +{"t":1790848432471,"conn":"game","dir":"s2c","hex":"aa01050000000c6959f9ff1f","packetId":170} +{"t":1790848432471,"conn":"game","dir":"s2c","hex":"6d05000000730f791480","packetId":109} +{"t":1790848432471,"conn":"game","dir":"s2c","hex":"ac040000009300740f9e14800e01","packetId":172} +{"t":1790848432471,"conn":"game","dir":"s2c","hex":"aa01040000000c6959f9ff1f","packetId":170} +{"t":1790848432471,"conn":"game","dir":"s2c","hex":"6d04000000740f9e1480","packetId":109} +{"t":1790848432471,"conn":"game","dir":"s2c","hex":"51020c0000002500770f95140200","packetId":81} +{"t":1790848432471,"conn":"game","dir":"s2c","hex":"0e020c000000030002000000","packetId":14} +{"t":1790848432471,"conn":"game","dir":"s2c","hex":"51020b00000025006f0f7b140200","packetId":81} +{"t":1790848432471,"conn":"game","dir":"s2c","hex":"0e020b000000030002000000","packetId":14} +{"t":1790848432471,"conn":"game","dir":"s2c","hex":"ac070000009b00920f7314800e01","packetId":172} +{"t":1790848432471,"conn":"game","dir":"s2c","hex":"aa01070000000c6959f9ff1f","packetId":170} +{"t":1790848432471,"conn":"game","dir":"s2c","hex":"6d07000000920f731480","packetId":109} +{"t":1790848432471,"conn":"game","dir":"s2c","hex":"5102110000000b01920f6d140000","packetId":81} +{"t":1790848432471,"conn":"game","dir":"s2c","hex":"51021000000025007a0f5b140200","packetId":81} +{"t":1790848432471,"conn":"game","dir":"s2c","hex":"0e0210000000030002000000","packetId":14} +{"t":1790848432471,"conn":"game","dir":"s2c","hex":"51020f0000002500880f72140200","packetId":81} +{"t":1790848432471,"conn":"game","dir":"s2c","hex":"0e020f000000030002000000","packetId":14} +{"t":1790848432471,"conn":"game","dir":"s2c","hex":"51020e0000002400980f60140000","packetId":81} +{"t":1790848432471,"conn":"game","dir":"s2c","hex":"a800010000000b69acfc0f","packetId":168} +{"t":1790848432472,"conn":"game","dir":"s2c","hex":"1d0c01","packetId":29} +{"t":1790848432472,"conn":"game","dir":"s2c","hex":"1d0014","packetId":29} +{"t":1790848432472,"conn":"game","dir":"s2c","hex":"1d0214","packetId":29} +{"t":1790848432472,"conn":"game","dir":"s2c","hex":"ac030000009600ab0f6a14800e01","packetId":172} +{"t":1790848432472,"conn":"game","dir":"s2c","hex":"aa01030000000c6959f9ff1f","packetId":170} +{"t":1790848432472,"conn":"game","dir":"s2c","hex":"6d03000000ab0f6a1480","packetId":109} +{"t":1790848432472,"conn":"game","dir":"s2c","hex":"ac020000009800c40f6a148010114000","packetId":172} +{"t":1790848432472,"conn":"game","dir":"s2c","hex":"aa01020000000c6959f9ff1f","packetId":170} +{"t":1790848432472,"conn":"game","dir":"s2c","hex":"6d02000000c40f6a1480","packetId":109} +{"t":1790848432472,"conn":"game","dir":"s2c","hex":"51020a0000007700b30f59140200","packetId":81} +{"t":1790848432472,"conn":"game","dir":"s2c","hex":"0e020a000000030102000000","packetId":14} +{"t":1790848432472,"conn":"game","dir":"s2c","hex":"5102090000002500ab0f51140200","packetId":81} +{"t":1790848432472,"conn":"game","dir":"s2c","hex":"0e0209000000030002000000","packetId":14} +{"t":1790848432472,"conn":"game","dir":"s2c","hex":"5102080000002500a60f65140200","packetId":81} +{"t":1790848432472,"conn":"game","dir":"s2c","hex":"0e0208000000030002000000","packetId":14} +{"t":1790848432472,"conn":"game","dir":"s2c","hex":"5102070000002500bf0f5a140200","packetId":81} +{"t":1790848432472,"conn":"game","dir":"s2c","hex":"0e0207000000030002000000","packetId":14} +{"t":1790848432472,"conn":"game","dir":"s2c","hex":"ac010000009800930f9c148010110800","packetId":172} +{"t":1790848432472,"conn":"game","dir":"s2c","hex":"aa01010000000c6959f9ff1f","packetId":170} +{"t":1790848432472,"conn":"game","dir":"s2c","hex":"6d01000000930f9c1480","packetId":109} +{"t":1790848432472,"conn":"game","dir":"s2c","hex":"5102060000004e008b0f7b140000","packetId":81} +{"t":1790848432472,"conn":"game","dir":"s2c","hex":"5102050000002500990f9b140200","packetId":81} +{"t":1790848432472,"conn":"game","dir":"s2c","hex":"0e0205000000030002000000","packetId":14} +{"t":1790848432472,"conn":"game","dir":"s2c","hex":"51020400000023008c0f98140000","packetId":81} +{"t":1790848432472,"conn":"game","dir":"s2c","hex":"51020300000027009d0f7a140000","packetId":81} +{"t":1790848432472,"conn":"game","dir":"s2c","hex":"5102020000008101a40f79140000","packetId":81} +{"t":1790848432472,"conn":"game","dir":"s2c","hex":"5102010000002500b40f7d140200","packetId":81} +{"t":1790848432472,"conn":"game","dir":"s2c","hex":"0e0201000000030002000000","packetId":14} +{"t":1790848432472,"conn":"game","dir":"s2c","hex":"1d0014","packetId":29} +{"t":1790848432472,"conn":"game","dir":"s2c","hex":"1d0119","packetId":29} +{"t":1790848432472,"conn":"game","dir":"s2c","hex":"1d0214","packetId":29} +{"t":1790848432472,"conn":"game","dir":"s2c","hex":"1d0314","packetId":29} +{"t":1790848432472,"conn":"game","dir":"s2c","hex":"1e070032","packetId":30} +{"t":1790848432472,"conn":"game","dir":"s2c","hex":"1e090019","packetId":30} +{"t":1790848432472,"conn":"game","dir":"s2c","hex":"1e0b005f","packetId":30} +{"t":1790848432472,"conn":"game","dir":"s2c","hex":"1d0c01","packetId":29} +{"t":1790848432472,"conn":"game","dir":"s2c","hex":"4800000100000000000000","packetId":72} +{"t":1790848432473,"conn":"game","dir":"s2c","hex":"04","packetId":4} +{"t":1790848432473,"conn":"game","dir":"s2c","hex":"4800000100000000000000","packetId":72} +{"t":1790848432473,"conn":"game","dir":"s2c","hex":"5b24000100000006576562426f74466f75720000000000000100ffff0000000000000000","packetId":91} +{"t":1790848432473,"conn":"game","dir":"s2c","hex":"65010000000000","packetId":101} +{"t":1790848432473,"conn":"game","dir":"s2c","hex":"8d01000000ffff","packetId":141} +{"t":1790848432473,"conn":"game","dir":"s2c","hex":"5a02040000000000576562426f74466f75720000000000006432776562626f743400000000000000","packetId":90} +{"t":1790848433341,"conn":"game","dir":"s2c","hex":"8a0107000000","packetId":138} +{"t":1790848433341,"conn":"game","dir":"s2c","hex":"670600000001730f5b140100074b0005","packetId":103} +{"t":1790848433341,"conn":"game","dir":"s2c","hex":"6d04000000740f9e1480","packetId":109} +{"t":1790848433341,"conn":"game","dir":"s2c","hex":"670700000001940f71140100074b0005","packetId":103} +{"t":1790848433341,"conn":"game","dir":"s2c","hex":"670300000001b20f6b140100074b0005","packetId":103} +{"t":1790848434181,"conn":"game","dir":"s2c","hex":"8a0107000000","packetId":138} +{"t":1790848434181,"conn":"game","dir":"s2c","hex":"670700000001950f70140100074b0005","packetId":103} +{"t":1790848434341,"conn":"game","dir":"s2c","hex":"260400020000000001005b61646d696e6973747261746f725d00ff63385b443247535d202d204e6f20636f6d6d65726369616c20707572706f736520697320616c6c6f77656421ff633400","packetId":38} +{"t":1790848434341,"conn":"game","dir":"s2c","hex":"260400020000000001005b61646d696e6973747261746f725d0048656c6c6f20776f726c642100","packetId":38} +{"t":1790848434341,"conn":"game","dir":"s2c","hex":"260400020000000001005b61646d696e6973747261746f725d00ff633954686520576f726c64204576656e7420656e61626c6573206f6e2074686973207365727665722e20546865206b6579206974656d20697320224b6579222eff633100","packetId":38} +{"t":1790848434621,"conn":"game","dir":"s2c","hex":"8a0107000000","packetId":138} +{"t":1790848434621,"conn":"game","dir":"s2c","hex":"670700000001960f6f140100074b0005","packetId":103} +{"t":1790848434661,"conn":"game","dir":"s2c","hex":"6d06000000730f5b1480","packetId":109} +{"t":1790848435060,"conn":"game","dir":"s2c","hex":"8a0107000000","packetId":138} +{"t":1790848435060,"conn":"game","dir":"s2c","hex":"6d07000000960f6f1480","packetId":109} +{"t":1790848435060,"conn":"game","dir":"s2c","hex":"2c01070000001200","packetId":44} +{"t":1790848435381,"conn":"game","dir":"s2c","hex":"6d03000000b20f6b1480","packetId":109} +{"t":1790848435860,"conn":"game","dir":"s2c","hex":"8a0107000000","packetId":138} +{"t":1790848435860,"conn":"game","dir":"s2c","hex":"965f80cc07368a4c36","packetId":150} +{"t":1790848436580,"conn":"game","dir":"c2s","hex":"69","packetId":105} diff --git a/tests/fixtures/netproto/10-d2gs-spawn-seed-72a1c4f0.d2cap b/tests/fixtures/netproto/10-d2gs-spawn-seed-72a1c4f0.d2cap new file mode 100644 index 0000000..efd6c8a --- /dev/null +++ b/tests/fixtures/netproto/10-d2gs-spawn-seed-72a1c4f0.d2cap @@ -0,0 +1,172 @@ +{"format":"d2cap-v1","createdAt":"2026-10-01T09:54:38.662Z","server":"101.37.117.183 (via=mixed)","account":"","character":"WebBotFour","scenario":"join"} +{"t":1790848473749,"conn":"bnet","dir":"c2s","hex":"01","packetName":"BNCS_GREETING"} +{"t":1790848473750,"conn":"bnet","dir":"c2s","hex":"ff503a000000000036385849505832440d000000090400007f000001e0010000090400000904000055534100556e697465642053746174657300","packetId":80,"packetName":"SID_AUTH_INFO"} +{"t":1790848473798,"conn":"bnet","dir":"s2c","hex":"ff250800ff7d8d09","packetId":37,"packetName":"SID_PING"} +{"t":1790848473798,"conn":"bnet","dir":"c2s","hex":"ff250800ff7d8d09","packetId":37,"packetName":"SID_PING"} +{"t":1790848473842,"conn":"bnet","dir":"s2c","hex":"ff506500000000000a570e577900000000d8b1d80027dd0149583836766572312e6d707100413d3338343535383136333420423d38383038323335383020433d31333633393337313033203420413d412d5320423d422d4320433d432d4120413d412d4200","packetId":80,"packetName":"SID_AUTH_INFO"} +{"t":1790848473844,"conn":"bnet","dir":"c2s","hex":"ff518b008284dfac000d0001cabe867602000000000000001000000006000000cbba0000000000000f52bab8af420566967c71336e3deb0c80085bb0100000000a000000f015eb00000000002af04169fde7159f064d4caf3a7732562269639247616d652e6578652030332f30392f31302030343a31303a353120363134343000576562506c6179657200","packetId":81,"packetName":"SID_AUTH_CHECK"} +{"t":1790848473890,"conn":"bnet","dir":"s2c","hex":"ff5109000000000000","packetId":81,"packetName":"SID_AUTH_CHECK"} +{"t":1790848473892,"conn":"bnet","dir":"c2s","hex":"ff3a2a008284dfac0a570e578fd9c7cc8c061b46464cc4f6324df220bffae9bd6432776562626f743400","packetId":58,"packetName":"SID_LOGONRESPONSE2"} +{"t":1790848474198,"conn":"bnet","dir":"s2c","hex":"ff590400","packetId":89,"packetName":"SID_SETEMAIL"} +{"t":1790848474241,"conn":"bnet","dir":"s2c","hex":"ff3a080000000000","packetId":58,"packetName":"SID_LOGONRESPONSE2"} +{"t":1790848474242,"conn":"bnet","dir":"c2s","hex":"ff3e26008284dfacc481e3c8c57b4ce4a4702bfc8cdb4c254e402c5b53616e63747561727900","packetId":62,"packetName":"SID_LOGONREALMEX"} +{"t":1790848474286,"conn":"bnet","dir":"s2c","hex":"ff3e56008284dfac000000000000000079000000652575b717e100000a570e570000000000000000505832440d0000000000000000000000c8a6fd14b0d970b217078b5b5ec77ef4847d7c1e6432776562626f743400","packetId":62,"packetName":"SID_LOGONREALMEX"} +{"t":1790848474712,"conn":"realm","dir":"c2s","hex":"01","packetName":"MCP_GREETING"} +{"t":1790848474713,"conn":"realm","dir":"c2s","hex":"4d00018284dfac0000000000000000790000000a570e570000000000000000505832440d0000000000000000000000c8a6fd14b0d970b217078b5b5ec77ef4847d7c1e6432776562626f743400","packetId":1,"packetName":"MCP_STARTUP"} +{"t":1790848474762,"conn":"realm","dir":"s2c","hex":"07000100000000","packetId":1,"packetName":"MCP_STARTUP"} +{"t":1790848474762,"conn":"realm","dir":"c2s","hex":"07001908000000","packetId":25,"packetName":"MCP_CHARLIST2"} +{"t":1790848474810,"conn":"realm","dir":"s2c","hex":"3c00190800010000000100ffffff7f576562426f74466f7572008d80ffffffffff2dff4fffffff07ffffffffffffffffffffff01e080808001ffff00","packetId":25,"packetName":"MCP_CHARLIST2"} +{"t":1790848474811,"conn":"realm","dir":"c2s","hex":"0e0007576562426f74466f757200","packetId":7,"packetName":"MCP_CHARLOGON"} +{"t":1790848474859,"conn":"realm","dir":"s2c","hex":"07000700000000","packetId":7,"packetName":"MCP_CHARLOGON"} +{"t":1790848474860,"conn":"realm","dir":"c2s","hex":"21000301000000000001ff0877626d38336979000064322d626f74206a6f696e00","packetId":3,"packetName":"MCP_CREATEGAME"} +{"t":1790848474909,"conn":"realm","dir":"s2c","hex":"0d000301000100010000000000","packetId":3,"packetName":"MCP_CREATEGAME"} +{"t":1790848474910,"conn":"realm","dir":"c2s","hex":"0e0004020077626d383369790000","packetId":4,"packetName":"MCP_JOINGAME"} +{"t":1790848474958,"conn":"realm","dir":"s2c","hex":"150004020049000000652575b71dacba5200000000","packetId":4,"packetName":"MCP_JOINGAME"} +{"t":1790848475151,"conn":"game","dir":"s2c","hex":"af01","packetId":175} +{"t":1790848475152,"conn":"game","dir":"c2s","hex":"681dacba524900060d000000ed4d5650b453354200576562426f74466f7572000000000000","packetId":104} +{"t":1790848475264,"conn":"game","dir":"s2c","hex":"0100040030000101","packetId":1} +{"t":1790848475264,"conn":"game","dir":"s2c","hex":"00","packetId":0} +{"t":1790848475264,"conn":"game","dir":"s2c","hex":"02","packetId":2} +{"t":1790848475264,"conn":"game","dir":"c2s","hex":"6b","packetId":107} +{"t":1790848475265,"conn":"game","dir":"c2s","hex":"6d8120e3f60000000000000000","packetId":109} +{"t":1790848475345,"conn":"game","dir":"s2c","hex":"590100000006576562426f74466f757200000000000000000000","packetId":89} +{"t":1790848475345,"conn":"game","dir":"s2c","hex":"aa00010000000c6959f9ff1f","packetId":170} +{"t":1790848475345,"conn":"game","dir":"s2c","hex":"760001000000","packetId":118} +{"t":1790848475345,"conn":"game","dir":"s2c","hex":"940901000000000001020001010001d90001da0001db0001dc0001050001030001","packetId":148} +{"t":1790848475345,"conn":"game","dir":"s2c","hex":"22000001000000db0001cd00","packetId":34} +{"t":1790848475345,"conn":"game","dir":"s2c","hex":"22000001000000d90001cd00","packetId":34} +{"t":1790848475345,"conn":"game","dir":"s2c","hex":"5e01010101010101010101010101010101010101010101010101010101010101010101010101","packetId":94} +{"t":1790848475346,"conn":"game","dir":"s2c","hex":"28060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","packetId":40} +{"t":1790848475346,"conn":"game","dir":"s2c","hex":"29000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","packetId":41} +{"t":1790848475346,"conn":"game","dir":"s2c","hex":"0b0001000000","packetId":11} +{"t":1790848475346,"conn":"game","dir":"s2c","hex":"5f01000000","packetId":95} +{"t":1790848475346,"conn":"game","dir":"s2c","hex":"1d0014","packetId":29} +{"t":1790848475346,"conn":"game","dir":"s2c","hex":"1d0119","packetId":29} +{"t":1790848475346,"conn":"game","dir":"s2c","hex":"1d0214","packetId":29} +{"t":1790848475346,"conn":"game","dir":"s2c","hex":"1d0314","packetId":29} +{"t":1790848475346,"conn":"game","dir":"s2c","hex":"1e070032","packetId":30} +{"t":1790848475346,"conn":"game","dir":"s2c","hex":"1e090019","packetId":30} +{"t":1790848475346,"conn":"game","dir":"s2c","hex":"1e0b005f","packetId":30} +{"t":1790848475346,"conn":"game","dir":"s2c","hex":"1d0c01","packetId":29} +{"t":1790848475346,"conn":"game","dir":"s2c","hex":"9c0e1410010000001000a2006508008006170302","packetId":156} +{"t":1790848475347,"conn":"game","dir":"s2c","hex":"9c0e1410020000001000a2006508028006170302","packetId":156} +{"t":1790848475347,"conn":"game","dir":"s2c","hex":"9c0e1410030000001000a2006508048006170302","packetId":156} +{"t":1790848475347,"conn":"game","dir":"s2c","hex":"9c0e1410040000001000a2006508068006170302","packetId":156} +{"t":1790848475347,"conn":"game","dir":"s2c","hex":"9c041410050000001000a2006500724237370602","packetId":156} +{"t":1790848475348,"conn":"game","dir":"s2c","hex":"9c041410060000001000a2006500529236370602","packetId":156} +{"t":1790848475348,"conn":"game","dir":"s2c","hex":"9d061e0507000000000100000011008200658408b046270782800003e33f","packetId":157} +{"t":1790848475348,"conn":"game","dir":"s2c","hex":"9d0620060800000000010000001100820065a40a20563706828000010606ff01","packetId":157} +{"t":1790848475349,"conn":"game","dir":"s2c","hex":"230001000000010000ffffffff","packetId":35} +{"t":1790848475349,"conn":"game","dir":"s2c","hex":"230001000000000000ffffffff","packetId":35} +{"t":1790848475349,"conn":"game","dir":"s2c","hex":"1d0014","packetId":29} +{"t":1790848475349,"conn":"game","dir":"s2c","hex":"1d0119","packetId":29} +{"t":1790848475349,"conn":"game","dir":"s2c","hex":"1d0214","packetId":29} +{"t":1790848475349,"conn":"game","dir":"s2c","hex":"1d0314","packetId":29} +{"t":1790848475349,"conn":"game","dir":"s2c","hex":"1e070032","packetId":30} +{"t":1790848475349,"conn":"game","dir":"s2c","hex":"1e090019","packetId":30} +{"t":1790848475349,"conn":"game","dir":"s2c","hex":"1e0b005f","packetId":30} +{"t":1790848475349,"conn":"game","dir":"s2c","hex":"1d0c01","packetId":29} +{"t":1790848475349,"conn":"game","dir":"s2c","hex":"9532800cc01700000000000000","packetId":149} +{"t":1790848475349,"conn":"game","dir":"s2c","hex":"0300f0c4a17201000db75ab9","packetId":3} +{"t":1790848475349,"conn":"game","dir":"s2c","hex":"53020000000000000000","packetId":83} +{"t":1790848475349,"conn":"game","dir":"s2c","hex":"077803980301","packetId":7} +{"t":1790848475349,"conn":"game","dir":"s2c","hex":"077003900301","packetId":7} +{"t":1790848475349,"conn":"game","dir":"s2c","hex":"077003980301","packetId":7} +{"t":1790848475349,"conn":"game","dir":"s2c","hex":"077803900301","packetId":7} +{"t":1790848475349,"conn":"game","dir":"s2c","hex":"078003900301","packetId":7} +{"t":1790848475349,"conn":"game","dir":"s2c","hex":"077003a00301","packetId":7} +{"t":1790848475349,"conn":"game","dir":"s2c","hex":"077803980301","packetId":7} +{"t":1790848475349,"conn":"game","dir":"s2c","hex":"078003980301","packetId":7} +{"t":1790848475349,"conn":"game","dir":"s2c","hex":"077803a00301","packetId":7} +{"t":1790848475349,"conn":"game","dir":"s2c","hex":"078003a00301","packetId":7} +{"t":1790848475349,"conn":"game","dir":"s2c","hex":"1500010000007911141201","packetId":21} +{"t":1790848475349,"conn":"game","dir":"s2c","hex":"7e00000000","packetId":126} +{"t":1790848475349,"conn":"game","dir":"s2c","hex":"8f0000000000000000000000000000000000000000000000000000000000000000","packetId":143} +{"t":1790848475349,"conn":"game","dir":"s2c","hex":"ac060000009a0052110912800e01","packetId":172} +{"t":1790848475349,"conn":"game","dir":"s2c","hex":"aa01060000000c6959f9ff1f","packetId":170} +{"t":1790848475349,"conn":"game","dir":"s2c","hex":"6d060000005211091280","packetId":109} +{"t":1790848475349,"conn":"game","dir":"s2c","hex":"51020d00000025004c1110120200","packetId":81} +{"t":1790848475349,"conn":"game","dir":"s2c","hex":"0e020d000000030002000000","packetId":14} +{"t":1790848475350,"conn":"game","dir":"s2c","hex":"ac050000009800531121128010116000","packetId":172} +{"t":1790848475350,"conn":"game","dir":"s2c","hex":"aa01050000000c6959f9ff1f","packetId":170} +{"t":1790848475350,"conn":"game","dir":"s2c","hex":"6d050000005311211280","packetId":109} +{"t":1790848475350,"conn":"game","dir":"s2c","hex":"ac04000000930054114612800e01","packetId":172} +{"t":1790848475350,"conn":"game","dir":"s2c","hex":"aa01040000000c6959f9ff1f","packetId":170} +{"t":1790848475350,"conn":"game","dir":"s2c","hex":"6d040000005411461280","packetId":109} +{"t":1790848475350,"conn":"game","dir":"s2c","hex":"51020c000000250057113d120200","packetId":81} +{"t":1790848475350,"conn":"game","dir":"s2c","hex":"0e020c000000030002000000","packetId":14} +{"t":1790848475350,"conn":"game","dir":"s2c","hex":"51020b00000025004f1123120200","packetId":81} +{"t":1790848475350,"conn":"game","dir":"s2c","hex":"0e020b000000030002000000","packetId":14} +{"t":1790848475350,"conn":"game","dir":"s2c","hex":"ac070000009b0072111b12800e01","packetId":172} +{"t":1790848475350,"conn":"game","dir":"s2c","hex":"aa01070000000c6959f9ff1f","packetId":170} +{"t":1790848475350,"conn":"game","dir":"s2c","hex":"6d0700000072111b1280","packetId":109} +{"t":1790848475350,"conn":"game","dir":"s2c","hex":"5102110000000b01721115120000","packetId":81} +{"t":1790848475350,"conn":"game","dir":"s2c","hex":"51021000000025005a1103120200","packetId":81} +{"t":1790848475350,"conn":"game","dir":"s2c","hex":"0e0210000000030002000000","packetId":14} +{"t":1790848475350,"conn":"game","dir":"s2c","hex":"51020f000000250068111a120200","packetId":81} +{"t":1790848475350,"conn":"game","dir":"s2c","hex":"0e020f000000030002000000","packetId":14} +{"t":1790848475350,"conn":"game","dir":"s2c","hex":"51020e0000002400781108120000","packetId":81} +{"t":1790848475350,"conn":"game","dir":"s2c","hex":"a800010000000b69acfc0f","packetId":168} +{"t":1790848475350,"conn":"game","dir":"s2c","hex":"1d0c01","packetId":29} +{"t":1790848475350,"conn":"game","dir":"s2c","hex":"1d0014","packetId":29} +{"t":1790848475350,"conn":"game","dir":"s2c","hex":"1d0214","packetId":29} +{"t":1790848475350,"conn":"game","dir":"s2c","hex":"ac0300000096008b111212800e01","packetId":172} +{"t":1790848475350,"conn":"game","dir":"s2c","hex":"aa01030000000c6959f9ff1f","packetId":170} +{"t":1790848475350,"conn":"game","dir":"s2c","hex":"6d030000008b11121280","packetId":109} +{"t":1790848475350,"conn":"game","dir":"s2c","hex":"ac020000009800a41112128010114000","packetId":172} +{"t":1790848475350,"conn":"game","dir":"s2c","hex":"aa01020000000c6959f9ff1f","packetId":170} +{"t":1790848475350,"conn":"game","dir":"s2c","hex":"6d02000000a411121280","packetId":109} +{"t":1790848475350,"conn":"game","dir":"s2c","hex":"51020a0000007700931101120200","packetId":81} +{"t":1790848475350,"conn":"game","dir":"s2c","hex":"0e020a000000030102000000","packetId":14} +{"t":1790848475350,"conn":"game","dir":"s2c","hex":"51020900000025008b11f9110200","packetId":81} +{"t":1790848475350,"conn":"game","dir":"s2c","hex":"0e0209000000030002000000","packetId":14} +{"t":1790848475350,"conn":"game","dir":"s2c","hex":"510208000000250086110d120200","packetId":81} +{"t":1790848475350,"conn":"game","dir":"s2c","hex":"0e0208000000030002000000","packetId":14} +{"t":1790848475350,"conn":"game","dir":"s2c","hex":"51020700000025009f1102120200","packetId":81} +{"t":1790848475350,"conn":"game","dir":"s2c","hex":"0e0207000000030002000000","packetId":14} +{"t":1790848475350,"conn":"game","dir":"s2c","hex":"ac010000009800731144128010114000","packetId":172} +{"t":1790848475350,"conn":"game","dir":"s2c","hex":"aa01010000000c6959f9ff1f","packetId":170} +{"t":1790848475350,"conn":"game","dir":"s2c","hex":"6d010000007311441280","packetId":109} +{"t":1790848475350,"conn":"game","dir":"s2c","hex":"5102060000004e006b1123120000","packetId":81} +{"t":1790848475350,"conn":"game","dir":"s2c","hex":"5102050000002500791143120200","packetId":81} +{"t":1790848475350,"conn":"game","dir":"s2c","hex":"0e0205000000030002000000","packetId":14} +{"t":1790848475351,"conn":"game","dir":"s2c","hex":"51020400000023006c1140120000","packetId":81} +{"t":1790848475351,"conn":"game","dir":"s2c","hex":"51020300000027007d1122120000","packetId":81} +{"t":1790848475351,"conn":"game","dir":"s2c","hex":"5102020000008101841121120000","packetId":81} +{"t":1790848475351,"conn":"game","dir":"s2c","hex":"5102010000002500941125120200","packetId":81} +{"t":1790848475351,"conn":"game","dir":"s2c","hex":"0e0201000000030002000000","packetId":14} +{"t":1790848475351,"conn":"game","dir":"s2c","hex":"1d0014","packetId":29} +{"t":1790848475351,"conn":"game","dir":"s2c","hex":"1d0119","packetId":29} +{"t":1790848475351,"conn":"game","dir":"s2c","hex":"1d0214","packetId":29} +{"t":1790848475351,"conn":"game","dir":"s2c","hex":"1d0314","packetId":29} +{"t":1790848475351,"conn":"game","dir":"s2c","hex":"1e070032","packetId":30} +{"t":1790848475351,"conn":"game","dir":"s2c","hex":"1e090019","packetId":30} +{"t":1790848475351,"conn":"game","dir":"s2c","hex":"1e0b005f","packetId":30} +{"t":1790848475351,"conn":"game","dir":"s2c","hex":"1d0c01","packetId":29} +{"t":1790848475351,"conn":"game","dir":"s2c","hex":"4800000100000000000000","packetId":72} +{"t":1790848475351,"conn":"game","dir":"s2c","hex":"04","packetId":4} +{"t":1790848475351,"conn":"game","dir":"s2c","hex":"4800000100000000000000","packetId":72} +{"t":1790848475351,"conn":"game","dir":"s2c","hex":"5b24000100000006576562426f74466f75720000000000000100ffff0000000000000000","packetId":91} +{"t":1790848475351,"conn":"game","dir":"s2c","hex":"65010000000000","packetId":101} +{"t":1790848475351,"conn":"game","dir":"s2c","hex":"8d01000000ffff","packetId":141} +{"t":1790848475355,"conn":"game","dir":"s2c","hex":"5a02040000000000576562426f74466f75720000000000006432776562626f743400000000000000","packetId":90} +{"t":1790848476264,"conn":"game","dir":"s2c","hex":"8a0107000000","packetId":138} +{"t":1790848476264,"conn":"game","dir":"s2c","hex":"670600000001531103120100074b0005","packetId":103} +{"t":1790848476264,"conn":"game","dir":"s2c","hex":"6d040000005411461280","packetId":109} +{"t":1790848476264,"conn":"game","dir":"s2c","hex":"670700000001741119120100074b0005","packetId":103} +{"t":1790848476585,"conn":"game","dir":"s2c","hex":"260400020000000001005b61646d696e6973747261746f725d00ff63385b443247535d202d204e6f20636f6d6d65726369616c20707572706f736520697320616c6c6f77656421ff633400","packetId":38} +{"t":1790848476585,"conn":"game","dir":"s2c","hex":"260400020000000001005b61646d696e6973747261746f725d0048656c6c6f20776f726c642100","packetId":38} +{"t":1790848476585,"conn":"game","dir":"s2c","hex":"260400020000000001005b61646d696e6973747261746f725d00ff633954686520576f726c64204576656e7420656e61626c6573206f6e2074686973207365727665722e20546865206b6579206974656d20697320224b6579222eff633100","packetId":38} +{"t":1790848477064,"conn":"game","dir":"s2c","hex":"8a0107000000","packetId":138} +{"t":1790848477064,"conn":"game","dir":"s2c","hex":"670700000001751118120100074b0005","packetId":103} +{"t":1790848477184,"conn":"game","dir":"s2c","hex":"670300000001921113120100074b0005","packetId":103} +{"t":1790848477424,"conn":"game","dir":"s2c","hex":"6d040000005411461280","packetId":109} +{"t":1790848477504,"conn":"game","dir":"s2c","hex":"8a0107000000","packetId":138} +{"t":1790848477504,"conn":"game","dir":"s2c","hex":"670700000001761117120100074b0005","packetId":103} +{"t":1790848477543,"conn":"game","dir":"s2c","hex":"6d060000005311031280","packetId":109} +{"t":1790848477943,"conn":"game","dir":"s2c","hex":"8a0107000000","packetId":138} +{"t":1790848477943,"conn":"game","dir":"s2c","hex":"6d070000007611171280","packetId":109} +{"t":1790848477943,"conn":"game","dir":"s2c","hex":"2c01070000001200","packetId":44} +{"t":1790848477944,"conn":"game","dir":"s2c","hex":"965f80bc080a893c0a","packetId":150} +{"t":1790848478024,"conn":"game","dir":"s2c","hex":"6d040000005411461280","packetId":109} +{"t":1790848478361,"conn":"game","dir":"c2s","hex":"69","packetId":105} diff --git a/tests/fixtures/netproto/10-d2gs-spawn-seed-7e5d403f.d2cap b/tests/fixtures/netproto/10-d2gs-spawn-seed-7e5d403f.d2cap new file mode 100644 index 0000000..9215444 --- /dev/null +++ b/tests/fixtures/netproto/10-d2gs-spawn-seed-7e5d403f.d2cap @@ -0,0 +1,195 @@ +{"format":"d2cap-v1","createdAt":"2026-10-01T09:54:29.082Z","server":"101.37.117.183 (via=mixed)","account":"","character":"WebBotFour","scenario":"join"} +{"t":1790848463913,"conn":"bnet","dir":"c2s","hex":"01","packetName":"BNCS_GREETING"} +{"t":1790848463914,"conn":"bnet","dir":"c2s","hex":"ff503a000000000036385849505832440d000000090400007f000001e0010000090400000904000055534100556e697465642053746174657300","packetId":80,"packetName":"SID_AUTH_INFO"} +{"t":1790848464252,"conn":"bnet","dir":"s2c","hex":"ff250800b3588d09","packetId":37,"packetName":"SID_PING"} +{"t":1790848464252,"conn":"bnet","dir":"c2s","hex":"ff250800b3588d09","packetId":37,"packetName":"SID_PING"} +{"t":1790848464295,"conn":"bnet","dir":"s2c","hex":"ff5065000000000099bacb3c7800000000d8b1d80027dd0149583836766572312e6d707100413d3338343535383136333420423d38383038323335383020433d31333633393337313033203420413d412d5320423d422d4320433d432d4120413d412d4200","packetId":80,"packetName":"SID_AUTH_INFO"} +{"t":1790848464296,"conn":"bnet","dir":"c2s","hex":"ff518b003f6adeac000d0001cabe867602000000000000001000000006000000cbba0000000000008c3458c5a7c48e29ae6686ee7876927e59279ec3100000000a000000f015eb0000000000571002df0d1e6bd559d51088f8ec21aa928338b847616d652e6578652030332f30392f31302030343a31303a353120363134343000576562506c6179657200","packetId":81,"packetName":"SID_AUTH_CHECK"} +{"t":1790848464340,"conn":"bnet","dir":"s2c","hex":"ff5109000000000000","packetId":81,"packetName":"SID_AUTH_CHECK"} +{"t":1790848464342,"conn":"bnet","dir":"c2s","hex":"ff3a2a003f6adeac99bacb3cef2e0e520a1a9a4f19cea61c079bdefe215d820c6432776562626f743400","packetId":58,"packetName":"SID_LOGONRESPONSE2"} +{"t":1790848464386,"conn":"bnet","dir":"s2c","hex":"ff590400","packetId":89,"packetName":"SID_SETEMAIL"} +{"t":1790848464471,"conn":"bnet","dir":"s2c","hex":"ff3a080000000000","packetId":58,"packetName":"SID_LOGONRESPONSE2"} +{"t":1790848464472,"conn":"bnet","dir":"c2s","hex":"ff3e26003f6adeacddcbda002ffb7adccac8fc1cca42c235e1f9ced553616e63747561727900","packetId":62,"packetName":"SID_LOGONREALMEX"} +{"t":1790848464517,"conn":"bnet","dir":"s2c","hex":"ff3e56003f6adeac000000000000000078000000652575b717e1000099bacb3c0000000000000000505832440d0000000000000000000000f70e389389b2cd91e1db90003680bd336d22d08b6432776562626f743400","packetId":62,"packetName":"SID_LOGONREALMEX"} +{"t":1790848464996,"conn":"realm","dir":"c2s","hex":"01","packetName":"MCP_GREETING"} +{"t":1790848464997,"conn":"realm","dir":"c2s","hex":"4d00013f6adeac00000000000000007800000099bacb3c0000000000000000505832440d0000000000000000000000f70e389389b2cd91e1db90003680bd336d22d08b6432776562626f743400","packetId":1,"packetName":"MCP_STARTUP"} +{"t":1790848465059,"conn":"realm","dir":"s2c","hex":"07000100000000","packetId":1,"packetName":"MCP_STARTUP"} +{"t":1790848465059,"conn":"realm","dir":"c2s","hex":"07001908000000","packetId":25,"packetName":"MCP_CHARLIST2"} +{"t":1790848465118,"conn":"realm","dir":"s2c","hex":"3c00190800010000000100ffffff7f576562426f74466f7572008d80ffffffffff2dff4fffffff07ffffffffffffffffffffff01e080808001ffff00","packetId":25,"packetName":"MCP_CHARLIST2"} +{"t":1790848465119,"conn":"realm","dir":"c2s","hex":"0e0007576562426f74466f757200","packetId":7,"packetName":"MCP_CHARLOGON"} +{"t":1790848465178,"conn":"realm","dir":"s2c","hex":"07000700000000","packetId":7,"packetName":"MCP_CHARLOGON"} +{"t":1790848465180,"conn":"realm","dir":"c2s","hex":"21000301000000000001ff0877626d38336970000064322d626f74206a6f696e00","packetId":3,"packetName":"MCP_CREATEGAME"} +{"t":1790848465239,"conn":"realm","dir":"s2c","hex":"0d000301000100010000000000","packetId":3,"packetName":"MCP_CREATEGAME"} +{"t":1790848465240,"conn":"realm","dir":"c2s","hex":"0e0004020077626d383369700000","packetId":4,"packetName":"MCP_JOINGAME"} +{"t":1790848465300,"conn":"realm","dir":"s2c","hex":"150004020048000000652575b77e0db96f00000000","packetId":4,"packetName":"MCP_JOINGAME"} +{"t":1790848465489,"conn":"game","dir":"s2c","hex":"af01","packetId":175} +{"t":1790848465490,"conn":"game","dir":"c2s","hex":"687e0db96f4800060d000000ed4d5650b453354200576562426f74466f7572000000000000","packetId":104} +{"t":1790848465583,"conn":"game","dir":"s2c","hex":"0100040030000101","packetId":1} +{"t":1790848465583,"conn":"game","dir":"s2c","hex":"00","packetId":0} +{"t":1790848465583,"conn":"game","dir":"s2c","hex":"02","packetId":2} +{"t":1790848465583,"conn":"game","dir":"c2s","hex":"6b","packetId":107} +{"t":1790848465584,"conn":"game","dir":"c2s","hex":"6db0fae2f60000000000000000","packetId":109} +{"t":1790848465664,"conn":"game","dir":"s2c","hex":"590100000006576562426f74466f757200000000000000000000","packetId":89} +{"t":1790848465664,"conn":"game","dir":"s2c","hex":"aa00010000000c6959f9ff1f","packetId":170} +{"t":1790848465664,"conn":"game","dir":"s2c","hex":"760001000000","packetId":118} +{"t":1790848465664,"conn":"game","dir":"s2c","hex":"940901000000000001020001010001d90001da0001db0001dc0001050001030001","packetId":148} +{"t":1790848465664,"conn":"game","dir":"s2c","hex":"22000001000000db0001cd00","packetId":34} +{"t":1790848465664,"conn":"game","dir":"s2c","hex":"22000001000000d90001cd00","packetId":34} +{"t":1790848465664,"conn":"game","dir":"s2c","hex":"5e01010101010101010101010101010101010101010101010101010101010101010101010101","packetId":94} +{"t":1790848465665,"conn":"game","dir":"s2c","hex":"28060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","packetId":40} +{"t":1790848465665,"conn":"game","dir":"s2c","hex":"29000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","packetId":41} +{"t":1790848465665,"conn":"game","dir":"s2c","hex":"0b0001000000","packetId":11} +{"t":1790848465665,"conn":"game","dir":"s2c","hex":"5f01000000","packetId":95} +{"t":1790848465665,"conn":"game","dir":"s2c","hex":"1d0014","packetId":29} +{"t":1790848465665,"conn":"game","dir":"s2c","hex":"1d0119","packetId":29} +{"t":1790848465665,"conn":"game","dir":"s2c","hex":"1d0214","packetId":29} +{"t":1790848465665,"conn":"game","dir":"s2c","hex":"1d0314","packetId":29} +{"t":1790848465665,"conn":"game","dir":"s2c","hex":"1e070032","packetId":30} +{"t":1790848465665,"conn":"game","dir":"s2c","hex":"1e090019","packetId":30} +{"t":1790848465665,"conn":"game","dir":"s2c","hex":"1e0b005f","packetId":30} +{"t":1790848465665,"conn":"game","dir":"s2c","hex":"1d0c01","packetId":29} +{"t":1790848465665,"conn":"game","dir":"s2c","hex":"9c0e1410010000001000a2006508008006170302","packetId":156} +{"t":1790848465666,"conn":"game","dir":"s2c","hex":"9c0e1410020000001000a2006508028006170302","packetId":156} +{"t":1790848465666,"conn":"game","dir":"s2c","hex":"9c0e1410030000001000a2006508048006170302","packetId":156} +{"t":1790848465666,"conn":"game","dir":"s2c","hex":"9c0e1410040000001000a2006508068006170302","packetId":156} +{"t":1790848465666,"conn":"game","dir":"s2c","hex":"9c041410050000001000a2006500724237370602","packetId":156} +{"t":1790848465666,"conn":"game","dir":"s2c","hex":"9c041410060000001000a2006500529236370602","packetId":156} +{"t":1790848465667,"conn":"game","dir":"s2c","hex":"9d061e0507000000000100000011008200658408b046270782800003e33f","packetId":157} +{"t":1790848465668,"conn":"game","dir":"s2c","hex":"9d0620060800000000010000001100820065a40a20563706828000010606ff01","packetId":157} +{"t":1790848465668,"conn":"game","dir":"s2c","hex":"230001000000010000ffffffff","packetId":35} +{"t":1790848465668,"conn":"game","dir":"s2c","hex":"230001000000000000ffffffff","packetId":35} +{"t":1790848465668,"conn":"game","dir":"s2c","hex":"1d0014","packetId":29} +{"t":1790848465668,"conn":"game","dir":"s2c","hex":"1d0119","packetId":29} +{"t":1790848465668,"conn":"game","dir":"s2c","hex":"1d0214","packetId":29} +{"t":1790848465668,"conn":"game","dir":"s2c","hex":"1d0314","packetId":29} +{"t":1790848465668,"conn":"game","dir":"s2c","hex":"1e070032","packetId":30} +{"t":1790848465668,"conn":"game","dir":"s2c","hex":"1e090019","packetId":30} +{"t":1790848465668,"conn":"game","dir":"s2c","hex":"1e0b005f","packetId":30} +{"t":1790848465668,"conn":"game","dir":"s2c","hex":"1d0c01","packetId":29} +{"t":1790848465668,"conn":"game","dir":"s2c","hex":"9532800cc01700000000000000","packetId":149} +{"t":1790848465668,"conn":"game","dir":"s2c","hex":"03003f405d7e01003a2ee262","packetId":3} +{"t":1790848465668,"conn":"game","dir":"s2c","hex":"53020000000000000000","packetId":83} +{"t":1790848465668,"conn":"game","dir":"s2c","hex":"076804500401","packetId":7} +{"t":1790848465668,"conn":"game","dir":"s2c","hex":"076004480401","packetId":7} +{"t":1790848465668,"conn":"game","dir":"s2c","hex":"076004500401","packetId":7} +{"t":1790848465668,"conn":"game","dir":"s2c","hex":"076804480401","packetId":7} +{"t":1790848465668,"conn":"game","dir":"s2c","hex":"077004480401","packetId":7} +{"t":1790848465668,"conn":"game","dir":"s2c","hex":"076004580401","packetId":7} +{"t":1790848465668,"conn":"game","dir":"s2c","hex":"076804500401","packetId":7} +{"t":1790848465668,"conn":"game","dir":"s2c","hex":"077004500401","packetId":7} +{"t":1790848465668,"conn":"game","dir":"s2c","hex":"076804580401","packetId":7} +{"t":1790848465668,"conn":"game","dir":"s2c","hex":"077004580401","packetId":7} +{"t":1790848465668,"conn":"game","dir":"s2c","hex":"1500010000001516931501","packetId":21} +{"t":1790848465668,"conn":"game","dir":"s2c","hex":"7e00000000","packetId":126} +{"t":1790848465668,"conn":"game","dir":"s2c","hex":"8f0000000000000000000000000000000000000000000000000000000000000000","packetId":143} +{"t":1790848465669,"conn":"game","dir":"s2c","hex":"ac080000009a00ee158815800e01","packetId":172} +{"t":1790848465669,"conn":"game","dir":"s2c","hex":"aa01080000000c6959f9ff1f","packetId":170} +{"t":1790848465669,"conn":"game","dir":"s2c","hex":"6d08000000ee15881580","packetId":109} +{"t":1790848465669,"conn":"game","dir":"s2c","hex":"5102130000002500f61582150200","packetId":81} +{"t":1790848465669,"conn":"game","dir":"s2c","hex":"0e0213000000030002000000","packetId":14} +{"t":1790848465669,"conn":"game","dir":"s2c","hex":"5102120000002500e8158f150200","packetId":81} +{"t":1790848465669,"conn":"game","dir":"s2c","hex":"0e0212000000030002000000","packetId":14} +{"t":1790848465669,"conn":"game","dir":"s2c","hex":"5102110000007700071676150200","packetId":81} +{"t":1790848465669,"conn":"game","dir":"s2c","hex":"0e0211000000030102000000","packetId":14} +{"t":1790848465669,"conn":"game","dir":"s2c","hex":"ac070000009800f515b0158010110800","packetId":172} +{"t":1790848465669,"conn":"game","dir":"s2c","hex":"aa01070000000c6959f9ff1f","packetId":170} +{"t":1790848465669,"conn":"game","dir":"s2c","hex":"6d07000000f515b01580","packetId":109} +{"t":1790848465669,"conn":"game","dir":"s2c","hex":"5102100000002400f51596150000","packetId":81} +{"t":1790848465669,"conn":"game","dir":"s2c","hex":"51020f0000004e000716a1150000","packetId":81} +{"t":1790848465669,"conn":"game","dir":"s2c","hex":"51020e0000002500f015a2150200","packetId":81} +{"t":1790848465669,"conn":"game","dir":"s2c","hex":"0e020e000000030002000000","packetId":14} +{"t":1790848465669,"conn":"game","dir":"s2c","hex":"51020d0000002500041699150200","packetId":81} +{"t":1790848465669,"conn":"game","dir":"s2c","hex":"0e020d000000030002000000","packetId":14} +{"t":1790848465669,"conn":"game","dir":"s2c","hex":"51020c00000025001a168a150200","packetId":81} +{"t":1790848465673,"conn":"game","dir":"s2c","hex":"0e020c000000030002000000","packetId":14} +{"t":1790848465673,"conn":"game","dir":"s2c","hex":"ac06000000940050167d15800e01","packetId":172} +{"t":1790848465673,"conn":"game","dir":"s2c","hex":"aa01060000000c6959f9ff1f","packetId":170} +{"t":1790848465673,"conn":"game","dir":"s2c","hex":"6d0600000050167d1580","packetId":109} +{"t":1790848465673,"conn":"game","dir":"s2c","hex":"51020b0000002500491681150200","packetId":81} +{"t":1790848465673,"conn":"game","dir":"s2c","hex":"0e020b000000030002000000","packetId":14} +{"t":1790848465673,"conn":"game","dir":"s2c","hex":"51020a0000002500561678150200","packetId":81} +{"t":1790848465673,"conn":"game","dir":"s2c","hex":"0e020a000000030002000000","packetId":14} +{"t":1790848465673,"conn":"game","dir":"s2c","hex":"51020900000025003b1680150200","packetId":81} +{"t":1790848465673,"conn":"game","dir":"s2c","hex":"0e0209000000030002000000","packetId":14} +{"t":1790848465673,"conn":"game","dir":"s2c","hex":"ac050000009300f215c915800e01","packetId":172} +{"t":1790848465673,"conn":"game","dir":"s2c","hex":"aa01050000000c6959f9ff1f","packetId":170} +{"t":1790848465673,"conn":"game","dir":"s2c","hex":"6d05000000f215c91580","packetId":109} +{"t":1790848465673,"conn":"game","dir":"s2c","hex":"5102080000002500f315bc150200","packetId":81} +{"t":1790848465673,"conn":"game","dir":"s2c","hex":"0e0208000000030002000000","packetId":14} +{"t":1790848465673,"conn":"game","dir":"s2c","hex":"5102070000002500eb15cc150200","packetId":81} +{"t":1790848465673,"conn":"game","dir":"s2c","hex":"0e0207000000030002000000","packetId":14} +{"t":1790848465673,"conn":"game","dir":"s2c","hex":"ac0a0000009b000e169a15800e01","packetId":172} +{"t":1790848465673,"conn":"game","dir":"s2c","hex":"aa010a0000000c6959f9ff1f","packetId":170} +{"t":1790848465673,"conn":"game","dir":"s2c","hex":"6d0a0000000e169a1580","packetId":109} +{"t":1790848465673,"conn":"game","dir":"s2c","hex":"ac0900000096002b169b15800e01","packetId":172} +{"t":1790848465673,"conn":"game","dir":"s2c","hex":"aa01090000000c6959f9ff1f","packetId":170} +{"t":1790848465673,"conn":"game","dir":"s2c","hex":"6d090000002b169b1580","packetId":109} +{"t":1790848465673,"conn":"game","dir":"s2c","hex":"51021800000025002a1696150200","packetId":81} +{"t":1790848465673,"conn":"game","dir":"s2c","hex":"0e0218000000030002000000","packetId":14} +{"t":1790848465673,"conn":"game","dir":"s2c","hex":"51021700000027001916a1150000","packetId":81} +{"t":1790848465673,"conn":"game","dir":"s2c","hex":"5102160000000b010e1694150000","packetId":81} +{"t":1790848465673,"conn":"game","dir":"s2c","hex":"51021500000025001c16b0150200","packetId":81} +{"t":1790848465673,"conn":"game","dir":"s2c","hex":"0e0215000000030002000000","packetId":14} +{"t":1790848465673,"conn":"game","dir":"s2c","hex":"51021400000081012016a0150000","packetId":81} +{"t":1790848465673,"conn":"game","dir":"s2c","hex":"a800010000000b69acfc0f","packetId":168} +{"t":1790848465674,"conn":"game","dir":"s2c","hex":"1d0c01","packetId":29} +{"t":1790848465674,"conn":"game","dir":"s2c","hex":"1d0014","packetId":29} +{"t":1790848465674,"conn":"game","dir":"s2c","hex":"1d0214","packetId":29} +{"t":1790848465674,"conn":"game","dir":"s2c","hex":"ac0400000098003d16aa158010110800","packetId":172} +{"t":1790848465674,"conn":"game","dir":"s2c","hex":"aa01040000000c6959f9ff1f","packetId":170} +{"t":1790848465674,"conn":"game","dir":"s2c","hex":"6d040000003d16aa1580","packetId":109} +{"t":1790848465674,"conn":"game","dir":"s2c","hex":"51020600000023004716b0150000","packetId":81} +{"t":1790848465674,"conn":"game","dir":"s2c","hex":"51020500000025005416b4150200","packetId":81} +{"t":1790848465674,"conn":"game","dir":"s2c","hex":"0e0205000000030002000000","packetId":14} +{"t":1790848465674,"conn":"game","dir":"s2c","hex":"ac0300000098002016d515800e01","packetId":172} +{"t":1790848465674,"conn":"game","dir":"s2c","hex":"aa01030000000c6959f9ff1f","packetId":170} +{"t":1790848465674,"conn":"game","dir":"s2c","hex":"6d030000002016d51580","packetId":109} +{"t":1790848465674,"conn":"game","dir":"s2c","hex":"ac0200000098001016c3158010114800","packetId":172} +{"t":1790848465675,"conn":"game","dir":"s2c","hex":"aa01020000000c6959f9ff1f","packetId":170} +{"t":1790848465675,"conn":"game","dir":"s2c","hex":"6d020000001016c31580","packetId":109} +{"t":1790848465675,"conn":"game","dir":"s2c","hex":"ac0100000098002d16c5158010114800","packetId":172} +{"t":1790848465675,"conn":"game","dir":"s2c","hex":"aa01010000000c6959f9ff1f","packetId":170} +{"t":1790848465675,"conn":"game","dir":"s2c","hex":"6d010000002d16c51580","packetId":109} +{"t":1790848465675,"conn":"game","dir":"s2c","hex":"51020400000025002516d6150200","packetId":81} +{"t":1790848465675,"conn":"game","dir":"s2c","hex":"0e0204000000030002000000","packetId":14} +{"t":1790848465675,"conn":"game","dir":"s2c","hex":"51020300000025001416c2150200","packetId":81} +{"t":1790848465675,"conn":"game","dir":"s2c","hex":"0e0203000000030002000000","packetId":14} +{"t":1790848465675,"conn":"game","dir":"s2c","hex":"51020200000025003116d1150200","packetId":81} +{"t":1790848465675,"conn":"game","dir":"s2c","hex":"0e0202000000030002000000","packetId":14} +{"t":1790848465675,"conn":"game","dir":"s2c","hex":"51020100000025004016d2150200","packetId":81} +{"t":1790848465675,"conn":"game","dir":"s2c","hex":"0e0201000000030002000000","packetId":14} +{"t":1790848465675,"conn":"game","dir":"s2c","hex":"1d0014","packetId":29} +{"t":1790848465675,"conn":"game","dir":"s2c","hex":"1d0119","packetId":29} +{"t":1790848465675,"conn":"game","dir":"s2c","hex":"1d0214","packetId":29} +{"t":1790848465675,"conn":"game","dir":"s2c","hex":"1d0314","packetId":29} +{"t":1790848465675,"conn":"game","dir":"s2c","hex":"1e070032","packetId":30} +{"t":1790848465675,"conn":"game","dir":"s2c","hex":"1e090019","packetId":30} +{"t":1790848465675,"conn":"game","dir":"s2c","hex":"1e0b005f","packetId":30} +{"t":1790848465675,"conn":"game","dir":"s2c","hex":"1d0c01","packetId":29} +{"t":1790848465675,"conn":"game","dir":"s2c","hex":"4800000100000000000000","packetId":72} +{"t":1790848465675,"conn":"game","dir":"s2c","hex":"04","packetId":4} +{"t":1790848465675,"conn":"game","dir":"s2c","hex":"4800000100000000000000","packetId":72} +{"t":1790848465675,"conn":"game","dir":"s2c","hex":"5b24000100000006576562426f74466f75720000000000000100ffff0000000000000000","packetId":91} +{"t":1790848465675,"conn":"game","dir":"s2c","hex":"65010000000000","packetId":101} +{"t":1790848465675,"conn":"game","dir":"s2c","hex":"8d01000000ffff","packetId":141} +{"t":1790848465675,"conn":"game","dir":"s2c","hex":"5a02040000000000576562426f74466f75720000000000006432776562626f743400000000000000","packetId":90} +{"t":1790848466542,"conn":"game","dir":"s2c","hex":"260400020000000001005b61646d696e6973747261746f725d00ff63385b443247535d202d204e6f20636f6d6d65726369616c20707572706f736520697320616c6c6f77656421ff633400","packetId":38} +{"t":1790848466542,"conn":"game","dir":"s2c","hex":"260400020000000001005b61646d696e6973747261746f725d0048656c6c6f20776f726c642100","packetId":38} +{"t":1790848466542,"conn":"game","dir":"s2c","hex":"260400020000000001005b61646d696e6973747261746f725d00ff633954686520576f726c64204576656e7420656e61626c6573206f6e2074686973207365727665722e20546865206b6579206974656d20697320224b6579222eff633100","packetId":38} +{"t":1790848466542,"conn":"game","dir":"s2c","hex":"8a010a000000","packetId":138} +{"t":1790848466543,"conn":"game","dir":"s2c","hex":"670500000001ed15c9150100074b0005","packetId":103} +{"t":1790848466543,"conn":"game","dir":"s2c","hex":"670a00000001101698150100074b0005","packetId":103} +{"t":1790848466902,"conn":"game","dir":"s2c","hex":"6709000000013016a0150100074b0005","packetId":103} +{"t":1790848467182,"conn":"game","dir":"s2c","hex":"670800000001ef1582150100074b0005","packetId":103} +{"t":1790848467182,"conn":"game","dir":"s2c","hex":"6706000000014d1681150100074b0005","packetId":103} +{"t":1790848467382,"conn":"game","dir":"s2c","hex":"8a010a000000","packetId":138} +{"t":1790848467382,"conn":"game","dir":"s2c","hex":"670a00000001111697150100074b0005","packetId":103} +{"t":1790848467622,"conn":"game","dir":"s2c","hex":"6d05000000ed15c91580","packetId":109} +{"t":1790848467821,"conn":"game","dir":"s2c","hex":"8a010a000000","packetId":138} +{"t":1790848467821,"conn":"game","dir":"s2c","hex":"670a00000001121696150100074b0005","packetId":103} +{"t":1790848468302,"conn":"game","dir":"s2c","hex":"8a010a000000","packetId":138} +{"t":1790848468302,"conn":"game","dir":"s2c","hex":"6d0a0000001216961580","packetId":109} +{"t":1790848468302,"conn":"game","dir":"s2c","hex":"2c010a0000001200","packetId":44} +{"t":1790848468303,"conn":"game","dir":"s2c","hex":"965f800a8bc98a8a49","packetId":150} +{"t":1790848468501,"conn":"game","dir":"s2c","hex":"6d08000000ef15821580","packetId":109} +{"t":1790848468781,"conn":"game","dir":"c2s","hex":"69","packetId":105}