Age of Empires II merekam penguraian dan ringkasan game dengan Python 3.
.mgl
).mgx
).mgz
).mgz
).aoe2record
).aoe2record
) Fungsi inti mgz
adalah parser yang menghasilkan struktur data Python berdasarkan file game yang direkam. Ia juga menawarkan representasi abstrak yang membuatnya lebih mudah untuk menggunakan data.
mgz
menawarkan dua parser, fast
dan full
. Parser fast
melewatkan data yang jarang diperlukan, sedangkan parser full
mencoba mengurai sebanyak mungkin. Tentu saja, parser fast
lebih cepat daripada parser full
. Parser full
dapat melakukan apa saja, parser fast
hanya mungkin 80-90%. summary
akan secara otomatis mencoba parser fast
dan kembali ke parser full
jika diperlukan.
Abstraksi mengambil keluaran parser sebagai masukan dan mengembalikan objek dengan data yang dinormalisasi sehingga lebih mudah digunakan untuk sebagian besar kasus. Ada dua abstraksi yang tersedia, summary
dan model
. Abstraksi summary
berupaya menampilkan jumlah maksimum data yang dapat digunakan. Abstraksi model
lebih terbatas tetapi secara otomatis melakukan lebih banyak pencarian.
Versi | model | ringkasan | cepat (tajuk) | cepat (tubuh) | penuh (tajuk) | penuh (tubuh) |
---|---|---|---|---|---|---|
Zaman Para Raja ( .mgl ) | ✓ | ✓ | ✓ | |||
Para Penakluk ( .mgx ) | ✓ | ✓ | ✓ | |||
Patch Pengguna <= 1.4 ( .mgz ) | ✓ | ✓ | ✓ | ✓ | ||
Patch Pengguna 1.5 ( .mgz ) | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Edisi HD >= 4.6 | ✓ | ✓ | ✓ | ✓ | ||
Edisi HD 5.8 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Edisi Definitif <= 13.34 ( .aoe2record ) | ✓ | ✓ | ✓ | ✓ | ||
Edisi Definitif > 13.34, <= 26.21 ( .aoe2record ) | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Edisi Definitif > 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 ))
T: Di mana pencapaian/statistik akhir permainan?
A: Dalam aksi postgame
, hanya tersedia dari versi Userpatch.
T: Bagaimana cara mengetahui jumlah sumber daya/pembunuhan/dll pada titik tertentu?
A: Tidak bisa, tanpa memutar ulang pertandingan dalam game.
T: Bagaimana cara kerja file rekaman game?
J: Bagian pertama ( header
) adalah cuplikan status awal permainan. Bagian kedua ( body
) adalah daftar gerakan yang dilakukan oleh pemain. Game memuat header, lalu menerapkan setiap gerakan untuk mengubah status sesuai aturan game.
T: Bagaimana cara menginstal paket ini?
J: pip install mgz