Skip to content
This repository has been archived by the owner on Jun 16, 2023. It is now read-only.

NeKzor/sdp.js

Repository files navigation

ci-status

Examples

Header Only

const { SourceDemoParser } = require('sdp.js');
const fs = require('fs');

const demo = SourceDemoParser.default()
    .setOptions({ messages: false })
    .parse(fs.readFileSync('demo.dem'));

console.log(demo);

/*
    SourceDemo {
    demoFileStamp: 'HL2DEMO',
    demoProtocol: 3,
    networkProtocol: 15,
    serverName: 'localhost:0',
    clientName: 'Can\'t Even',
    mapName: 'testchmb_a_00',
    gameDirectory: 'portal',
    playbackTime: 3.944999933242798,
    playbackTicks: 263,
    playbackFrames: 253,
    signOnLength: 80641,
    messages: [] }
*/

Jump Stats

const {
    SourceDemoParser,
    DemoMessages: { UserCmd },
} = require('sdp.js');
const fs = require('fs');

const IN_JUMP = 1 << 1;

const demo = SourceDemoParser.default()
    .setOptions({ userCmds: true })
    .parse(fs.readFileSync(file));

const registeredJumps = demo.findMessages(UserCmd)
    .filter(({ userCmd }) => userCmd.buttons && userCmd.buttons & IN_JUMP);

console.log('registered jumps: ' + registeredJumps.length);

/*
    registered jumps: 270
*/

View Origin

showcase.gif