DemoFile 0.17.1

dotnet add package DemoFile --version 0.17.1                
NuGet\Install-Package DemoFile -Version 0.17.1                
此命令旨在在 Visual Studio 的包管理器控制台中使用,因为它使用 NuGet 模块版本的 Install-Package.
<PackageReference Include="DemoFile" Version="0.17.1" />                
对于支持 PackageReference 的项目,请将此 XML 节点复制到项目文件以引用此包。
paket add DemoFile --version 0.17.1                
#r "nuget: DemoFile, 0.17.1"                
#r 指令可用于 F# Interactive 和多语言笔记本。请将其复制到交互式工具或脚本的源代码中,以引用此包。
// Install DemoFile as a Cake Addin
#addin nuget:?package=DemoFile&version=0.17.1

// Install DemoFile as a Cake Tool
#tool nuget:?package=DemoFile&version=0.17.1                

DemoFile.Net NuGet Build status

DemoFile.Net 是一个针对《反恐精英2》的飞跃式演示解析库,用 C# 编写。它是跨平台的,可以从 Windows、Mac 或 Linux 使用。

Screenshot of DemoFile.Net

通过 IDE 内置的自动完成功能轻松发现可用数据

alternate text is missing from this package README image alternate text is missing from this package README image
alternate text is missing from this package README image alternate text is missing from this package README image

功能

功能 可用性
CSTV / GOTV 演示 ✅ 完全支持
POV 演示 ➖ 计划支持
游戏事件(例如 player_death ✅ 完全支持
实体更新(玩家位置、手榴弹等) ✅ 完全支持
在演示中向前/向后搜索 ✅ 完全支持

示例

注意:此库仍在大力开发中,API 在 v1.0 之前可能发生重大变化

using DemoFile;

internal class Program
{
    public static async Task Main(string[] args)
    {
        var path = args.SingleOrDefault() ?? throw new Exception("Expected a single argument: <path to .dem>");

        var demo = new DemoParser();
        demo.Source1GameEvents.PlayerDeath += e =>
        {
            Console.WriteLine($"{e.Attacker?.PlayerName} [{e.Weapon}] {e.Player?.PlayerName}");
        };

        await demo.ReadAllAsync(File.OpenRead(path));

        Console.WriteLine("\nFinished!");
    }
}

有关更多信息,请参阅examples/ 文件夹。

基准测试

在 M1 MacBook Pro 上,DemoFile.Net 可以在 1.5 秒内读取完整的竞技游戏(不到 1 小时的游戏时间)。这包括解析所有实体数据(玩家位置、速度、武器跟踪、手榴弹等)。

方法 运行时 平均值 误差 标准差
ParseDemo .NET 8.0 1.501 s 0.0047 s 0.0042 s

作者和致谢

DemoFile.Net 是由 Saul Rennison 开发的。如果没有 LaihoE 的 demoparserDotabuff 的 Manta,后者依赖于许多人的努力,这个库的开发是不可能的。

使用 neverlosecc 的 Source2Gen 的修改版来静态生成游戏模式类和枚举。

关于许可证信息,请参阅 致谢

产品 兼容和额外的计算目标框架版本。
.NET net7.0 兼容。 net7.0-android 已计算。 net7.0-ios 已计算。 net7.0-maccatalyst 已计算。 net7.0-macos 已计算。 net7.0-tvos 已计算。 net7.0-windows 已计算。 net8.0 已计算。 net8.0-android 已计算。 net8.0-browser 已计算。 net8.0-ios 已计算。 net8.0-maccatalyst 已计算。 net8.0-macos 已计算。 net8.0-tvos 已计算。 net8.0-windows 已计算。
兼容的目标框架
包含的目标框架(在包中)
了解更多关于 目标框架.NET Standard 的信息。

NuGet 包

此包不会被任何 NuGet 包使用。

GitHub 仓库

此包未在任何流行的GitHub仓库中使用。

版本 下载 最后更新
0.17.1 72 8/11/2024
0.16.3 76 8/2/2024
0.16.2 46 8/1/2024
0.16.1 46 8/1/2024
0.15.1 453 6/1/2024
0.14.1 142 5/26/2024
0.13.1 190 4/30/2024
0.12.2 121 4/12/2024
0.12.1 382 2/29/2024
0.11.1 189 2/19/2024
0.10.1 87 2/17/2024
0.9.1 120 2/9/2024
0.8.1 183 12/30/2023
0.6.1 147 12/23/2023
0.5.1 344 12/19/2023
0.4.1 154 12/9/2023
0.3.6 158 11/25/2023
0.3.5 113 11/25/2023
0.3.4 113 11/25/2023
0.3.1 117 11/25/2023
0.2.9 146 11/12/2023
0.2.8 105 11/12/2023
0.2.7 113 11/12/2023
0.2.6 101 11/11/2023
0.2.5 90 11/11/2023
0.2.4 103 11/11/2023
0.2.3 100 11/8/2023
0.2.2 104 11/5/2023
0.2.1 157 10/29/2023
0.1.11 141 10/25/2023
0.1.10 131 10/22/2023
0.1.9 114 10/19/2023
0.1.7 132 10/12/2023