#analyzer #tas #hltas #framebulk

bin+lib hltas-framebulk-analyzer

HLTAS 文件分析器

1 个稳定版本

1.0.0 2022年4月8日

#7#tas

MIT/Apache

32KB
618

分析 HLTAS 文件或 framebulks 的工具

crates.io Documentation

如何使用应用程序

  • 通过在控制台粘贴输入完整的 hltas 文件,或没有完整文件的 framebulks
  • 输入 EOF,在 Linux / macOS 上可以通过 ctrl+D 完成,或在 Windows 上通过 ctrl+Z 完成
  • 通过强制退出以 ctrl+c 退出

库使用示例

let hltas = HLTAS {
    properties: Properties::default(),
    lines: vec![
        Line::FrameBulk(FrameBulk {
            frame_time: "0.001".to_string(),
            frame_count: NonZeroU32::new(150).unwrap(),
            auto_actions: Default::default(),
            movement_keys: Default::default(),
            action_keys: Default::default(),
            pitch: Default::default(),
            console_command: Default::default(),
       }),
       Line::FrameBulk(FrameBulk {
           frame_time: "0.004".to_string(),
           frame_count: NonZeroU32::new(150).unwrap(),
           auto_actions: Default::default(),
           movement_keys: Default::default(),
           action_keys: Default::default(),
           pitch: Default::default(),
           console_command: Default::default(),
       }),
    ],
};

let analysis = analyze_hltas(&hltas).unwrap();

// prints in a nice format
println!("{}", analysis);

assert_eq!(analysis.estimated_time, dec!(0.75));
assert_eq!(analysis.frametime_stats, vec![
    FrametimeStats {
       frametime: dec!(0.001),
       frame_count: BigUint::from_u32(150).unwrap(),
    },
    FrametimeStats {
       frametime: dec!(0.004),
       frame_count: BigUint::from_u32(150).unwrap(),
    },
]);

问答

  • 为什么这个工具这么花哨?

  • 看起来很酷,这就是原因

  • 为什么在控制台打印了这么多统计数据?这似乎毫无意义

  • 不知道更多,也许更好

  • 为什么不是直接分析 bxt 日志,而不是只提供 HLTAS 的估计时间呢?

  • 这就是我制作这个分析器的原因,它会读取 bxt 日志,也许还会结合 hltas 来更好地分析 TAS

依赖关系

~2.4–3.5MB
~65K SLoC