aoc mgz
1.8.26
帝國時代 II 用 Python 3 記錄遊戲解析和摘要。
.mgl
).mgx
).mgz
).mgz
).aoe2record
).aoe2record
) mgz
的核心功能是解析器,它根據錄製的遊戲檔案產生 Python 資料結構。它還提供抽象表示,使數據的使用更加容易。
mgz
提供了兩個解析器, fast
和full
。 fast
解析器會跳過很少需要的數據,而full
解析器會嘗試解析盡可能多的數據。當然, fast
解析器比full
解析器更快。 full
解析器幾乎可以做所有事情,但fast
可能只有 80-90%。 summary
將自動嘗試fast
解析器,並在需要時回退到full
解析器。
抽象將解析器輸出作為輸入,並傳回一個具有規範化資料的對象,該對像在大多數情況下更易於使用。有兩個可用的抽象, summary
和model
。 summary
抽象試圖公開最大量的可用資料。 model
抽象受到更多限制,但會自動執行更多查找。
版本 | 模型 | 概括 | 快(標題) | 快(身體) | 完整(標題) | 完整(身體) |
---|---|---|---|---|---|---|
列王時代 ( .mgl ) | ✓ | ✓ | ✓ | |||
征服者 ( .mgx ) | ✓ | ✓ | ✓ | |||
使用者補丁 <= 1.4 ( .mgz ) | ✓ | ✓ | ✓ | ✓ | ||
使用者補丁 1.5 ( .mgz ) | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
高清版 >= 4.6 | ✓ | ✓ | ✓ | ✓ | ||
高清版5.8 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
最終版 <= 13.34 ( .aoe2record ) | ✓ | ✓ | ✓ | ✓ | ||
最終版 > 13.34,<= 26.21 ( .aoe2record ) | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
最終版 > 26.21 ( .aoe2record ) | ✓ | ✓ | ✓ | ✓ | ✓ |
import os
from mgz import header , fast
with open ( '/path/to/file' , 'rb' ) as data :
eof = os . fstat ( data . fileno ()). st_size
header . parse_stream ( data )
fast . meta ( data )
while data . tell () < eof :
fast . operation ( data )
from mgz . summary import Summary
with open ( '/path/to/file' , 'rb' ) as data :
s = Summary ( data )
s . get_map ()
s . get_platform ()
# ... etc
from mgz . model import parse_match
with open ( '/path/to/file' , 'rb' ) as data :
match = parse_match ( data )
match . map . name
match . file . perspective . number
# ... etc
import json
from mgz . model import parse_match , serialize
with open ( '/path/to/file' , 'rb' ) as h :
match = parse_match ( h )
print ( json . dumps ( serialize ( match ), indent = 2 ))
Q:遊戲結束時的成就/統計數據在哪裡?
A:在postgame
行動中,僅在使用者修補版本中可用。
Q:我如何知道某一點的資源/殺戮/等數量?
答:你不能,除非在遊戲中重播比賽。
Q:遊戲錄製檔案如何運作?
答:第一部分( header
)是初始遊戲狀態的快照。第二部分( body
)是玩家所做的動作清單。遊戲載入標題,然後根據遊戲規則應用每個動作來改變狀態。
Q:如何安裝這個軟體包?
答: pip install mgz