SC2重播文件解析器

zephyrus-sc2-parser的Python项目详细描述


Zephyrus回放分析器

一个健壮而详细的.SC2Replay文件解析器

zephyrus.gg用于深入回放分析

详细文档即将发布!在

核心功能

  • 易于使用

    不需要配置任何东西,只需安装包并调用parse_replay即可开始

  • 有状态且面向对象

    游戏的核心元素是用对象重新创建的,这样就可以很容易地理解信息的位置以及信息是如何相互联系的。 每一个相关事件的事件和信息都会重新计算,因此您始终拥有正确的游戏状态。 游戏状态也会定期记录,以便于对解析的信息进行分析

  • 非常详细的信息

    解析器利用来自重播文件的跟踪器和游戏事件来重新创建游戏状态,允许收集更复杂的信息。 单位、建筑和能力的游戏ID都经过了艰苦的寻找和记录,以获得诸如单位和建筑模式等信息, 要解析的能力使用和创建状态

  • 精确选择跟踪

    以前的解析器要么没有跟踪播放器选择,要么实现不准确。我们的实现准确地跟踪玩家 由于强大的位掩码算法,即使在复杂的子选择和取消选择操作中也可以进行选择

安装和使用

解析器托管在PyPI上。你可以通过pip安装它

pip install zephyrus_sc2_parser

您可以将parse_replay导入为顶级导入

from zephyrus_sc2_parser import parse_replay

必需参数

唯一需要的参数是要解析的重播的相对路径

可选参数

您可以选择使用local标志来表示您想要解析没有MMR的重播,否则解析器将中止重播。local默认设置为False。在

如果您想在解析过程中访问存储在Player对象中的原始数据,例如每个玩家的对象或相机的移动,detailed标志也很有用。在

返回值

解析器返回4个值,一个包含两个玩家对象的字典,一个记录的游戏状态列表,一个包含 玩家的基本信息和游戏元数据字典。在

players, timeline, summary_stats, metadata = parse_replay(filepath, local=False, detailed=True)

players示例:

{
  1: <Player object>,
  2: <Player object>,
}

timeline示例:

^{pr2}$

summary_stats示例:

{
    'mmr': { 1: 3958, 2: 3893 },
    'mmr_diff': { 1: 65, 2: -65 },
    'avg_resource_collection_rate': {
        'minerals': { 1: 1150.9, 2: 1238.6 },
        'gas': { 1: 321.7, 2: 316.8 }
    },
    'avg_unspent_resources': {
        'minerals': { 1: 330.7, 2: 247.3 },
        'gas': { 1: 205.2, 2: 174.5 }
    },
    'apm': { 1: 123.0, 2: 187.0 },
    'resources_lost': {
        'minerals': { 1: 2375, 2: 800 },
        'gas': { 1: 1000, 2: 425 } 
    },
    'workers_produced': { 1: 63, 2: 48 },
    'workers_killed': { 1: 12, 2: 41 },
    'workers_lost': { 1: 41, 2: 12 },
    'inject_count': { 1: 0, 2: 0 },
    'sq': { 1: 91, 2: 104 },
    'avg_pac_per_min': { 1: 28.15, 2: 36.29 },
    'avg_pac_action_latency': { 1: 0.46, 2: 0.32 },
    'avg_pac_actions': { 1: 3.79, 2: 4.65 },
    'avg_pac_gap': { 1: 0.37, 2: 0.25 },
}

metadata示例:

{
    'map': 'Acropolis LE',

    # UTC timezone
    'time_played_at': <datetime.datetime object>,

    # player ID
    'winner': 1,

    # seconds
    'game_length': 750,
}

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java在Android Studio中使用while循环显示包含textview对象的数据   创建名为“userController”的bean时发生java错误:通过字段“userService”表示未满足的依赖关系   java PDFBox PDFImageWrite。writeImage未正确处理所有字符   java无法识别代码中的nzec错误   无法更改java TabLayout字体   在Java中使用子字符串删除部分字符串   Java中的listener addPropertyChangeListener方法   java可以同时拖动多个对象   java如何将数组中的值添加到向量中   java为什么在Camel 3.7.3中无法正确计算属性?   与后端问题不同的机器中的java客户端资源   带字符串的java分割字节数组?   java On_选项_项目_选择的方法说明   java如何在画布的父画中画一个圆?   连接超时和打开连接数的java Netty通道配置   java mysql中如何防止向数据库中插入重复数据   升级到macOS Big Sur后,java无法启动Neo4j控制台应用程序   在Java中使用XSLT将XML转换为HTMLString的ajax   java无法使用Apache POI获取Excel工作表中的数据