解码头后射击游戏的回放文件,获取其中的信息

threp的Python项目详细描述


一、介绍

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

二、安装方法

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

pip install threp

三、使用方法

from threp import THReplay

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

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

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

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

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

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

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

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

# 获取解析错误信息,list,包含一些字典 # etc. 目前只有一种错误,就是读取单面长度出错,读取帧数错误暂时无法处理 print(tr.getError())

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

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

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

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

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

#载入一个新的replay文件,参数为路径 tr.reload_replay(“th15_02.rpy”)

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

推荐PyPI第三方库


热门话题
无法在Netbeans 8.2 JDK8u231中创建java Maven项目(Web应用程序)   java如何以设定的时间间隔生成随机数?   java从socket和inputStream的慢速读取   spring SCORM:Java中基于Web的SCORM播放器   Java将函数传递给方法   java绑定通用服务及其实现和子类型   java如何在运行时从选择列表框中动态选择选项?爪哇硒   java Selenium WebDriver什么是“Selenium客户端和WebDriver语言绑定”   elasticsearch需要elasticsearch高级Java客户端更新ByQueryRequest API帮助   JAVA哈希表查找最大值   WSDL操作中的java soapAction属性为空   java访问封闭类或父类方法的一般方法   eclipse在java中运行带有SeleneTestCase的ANT。lang.NoClassDefFoundError   java Hazelcast不会在节点启动时填充ReplicatedMap   如何在Java中从excel中读取特定行?   html JAVA将本地时间(GMT+8)转换为UTC时间   java将自定义端点添加到Spring数据REST存储库中,并以大摇大摆的方式显示   java计算未来位置