Project1

标题: 不依赖VX/VA导出事件文本的方法 [打印本页]

作者: 辰落九缈    时间: 2022-5-1 22:42
标题: 不依赖VX/VA导出事件文本的方法
本帖最后由 辰落九缈 于 2022-5-1 23:15 编辑

大概99%的人都没有这个需求。

问题描述

暂时用不了Windows或不想用VX/VA,要怎么导出事件文本。

相关方法

如何读取data文件夹的rvdata2为文本文件? 包括事件搜索器、加入导入导出文本的插件等。
DICE2000/rvdata2json 缺点:需要先写好RPG模块,存在字符串编码问题。

本文方法

基于ChronoMonochrome/rvdata2json修改,通过rubymarshal读取ruby序列化对象,再进行后续的解析,rvdata和rvdata2做不同处理,遇到编码问题或未知错误就跳过。

用法

github地址

python >= 3.6
额外的包:rubymarshal, pyyaml
装包,
  1. pip install rubymarshal pyyaml
复制代码

拉仓库,
  1. git clone https://github.com/Tsianmy/parse_rvdata
复制代码

执行,
  1. cd parse_rvdata
  2. python main.py -d </path/to/Data> [-o </path/to/output>] [-m <mode>]
复制代码

"[]"是可选项,</path/to/Data>是存放.rvdata的Data文件夹,</path/to/output>是指定的输出目录,不填就输出到rvdata相同目录,<mode>可填1,2,分别是将rvdata转成yaml和将map.rvdata里的事件文本输出到txt,默认是1。

例子:提取事件文本,解析~/Project/Data/Map001.rvdata,保存到Map001.txt
  1. python main.py -d ~/Project/Data -m 2
复制代码

额外功能:*.rvdata转*.yml
  1. python main.py -d ~/Project/Data
复制代码


缺陷:目前Scripts.rvdata提取不了,DICE2000/rvdata2json也忽略了这个文件。





欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1