Skip to main content

decode Touhou Shooting Game's replay files and get the infomation in it

Project description

![build](https://github.com/wasupandceacar/threp/actions/workflows/build.yml/badge.svg)

![pypi](https://github.com/wasupandceacar/threp/actions/workflows/pypi.yml/badge.svg)

![CodeFactor](https://www.codefactor.io/repository/github/wasupandceacar/threp/badge)

一、介绍

threp 用于解析东方 project 系列游戏的 replay 文件,即游戏回放文件,可以获取 replay 文件的通关情况、机师、难度、通关情况、机体、处理落、日期、屏幕移动、按键记录。 支持 TH06-18 整数作以及 TH9.5、12.5、TH12.8、TH14.3、TH16.5(即现有所有非黑历史的东方 STG 全部支持)。

二、安装方法

在 Python 3.6+ 下使用,用 pip 安装:

pip install threp

三、使用方法

from threp import THReplay

# 载入一个 replay 文件,参数为路径 tr = THReplay(‘th14_03.rpy’)

# 获取 replay 基本信息,包含机体,难度,通关情况,字符串 # etc. Reimu A normal all print(tr.getBaseInfo())

# 获取 replay 基本信息的字典,包含机体,难度,通关情况,字符串 # 字典的键分别为 character、shottype、rank、stage # etc. Reimu A Normal All print(tr.getBaseInfoDic())

# 获取 replay 每个 stage 的分数,list,包含一串整数 # etc. [13434600, 50759200, 103025260, 152519820, 230440680, 326777480] print(tr.getStageScore())

# 获取 replay 的屏幕移动,list,包含一些字符串 # etc. # 其中一个字符串:[0 ]→→→→→→→→→→→→→→→→↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↖↖↖↖↖↖↖↖↖↑↑○○○○○○○○○○○○○○○○○○ # 开头括号里的数字表示这是在该 stage 的第几帧,箭头表示方向,圆圈表示不动 print(tr.getScreenAction())

# 获取 replay 的按键记录,list,包含一些子 list,每个子 list 包含 60 个字符串,代表一秒 # etc. # 其中一个子 list:[’→’, ‘→’, ‘→’, ‘→’, ‘→’, ‘→’, ‘→’, ‘→’, ‘→’, ‘→’, ‘→’, ‘→’, ‘→’, ‘→’, ‘→’, ‘→’, ‘↑’, ‘↑’, ‘↑’, ‘↑’, ‘↑’, ‘↑’, ‘↑’, ‘↑’, ‘↑’, ‘↑’, ‘↑’, ‘↑’, ‘↑’, ‘↑’, ‘↑’, ‘↑←’, ‘↑←’, ‘↑←’, ‘↑←’, ‘↑←’, ‘↑←’, ‘↑←’, ‘↑←’, ‘↑←’, ‘↑’, ‘↑’, ‘○’, ‘○’, ‘○’, ‘○’, ‘○’, ‘○’, ‘○’, ‘○’, ‘○’, ‘○’, ‘○’, ‘○’, ‘○’, ‘○’, ‘○’, ‘○’, ‘○’, ‘○’] # 每个字符串记录了这帧按下的方向键,箭头表示方向,圆圈表示没按 print(tr.getKeyboardAction())

# 获取 replay 的机签,字符串 # etc. WASUP print(tr.getPlayer())

# 获取 replay 的处理落,浮点数 # etc. 0.03 print(tr.getSlowRate())

# 获取 replay 的时间,字符串 # etc. 2015/02/17 22:23 print(tr.getDate())

# 获取解析错误信息,list,包含一些字典 # 共有三种错误 # 1.length so short error,单面长度过短错误 # 2.frame read error,单面帧数读取错误 # 3.length read error,单面长度读取错误 print(tr.getError())

# 获取 replay 的总帧数,整数 # etc. 84565 print(tr.getFrameCount())

# 获取 replay 中按下 Z 键的帧数的 list,帧数从 1 开始数 # etc. [63, 98, 136] print(tr.getZ())

# 获取 replay 中按下 X 键的帧数的 list,帧数从 1 开始数 # etc. [193, 480, 766] print(tr.getX())

# 获取 replay 中按下 C 键的帧数的 list,帧数从 1 开始数,这个按键从TH128开始记录,TH125及以前无记录 # etc. [1046, 1260] print(tr.getC())

# 获取 replay 中按下 Shift 键的帧数的 list,帧数从 1 开始数 # etc. [1495, 1532, 1568] print(tr.getShift())

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

threp-2.1.1.tar.gz (13.3 kB view hashes)

Uploaded Source

Built Distribution

threp-2.1.1-py3-none-any.whl (13.6 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page