找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 20010|回复: 0

[已解决] 关于解包打包工程

[复制链接]
发表于 2020-4-22 02:04:51 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
本帖最后由 ElderlyPeng 于 2020-4-23 16:12 编辑

最近想改一下心跳文学社这款游戏的部分内容,于是开始学习Ren'Py引擎,完全是个新手哈哈

简单来说我的问题是解包了之后程序不能正常运行

具体我的步骤是:1.使用 rpatool 工具进行解包,这个游戏的 game 文件夹有5个 .rpa 文件以及一些文件夹。我把我需要改动的 scripts.rpa 解包,得到 script 文件夹。

2.把 scripts 文件夹内容用 unrpyc.py 反编译,再删除原先的 .rpyc 文件只留下 .rpy文件(反编译后我没有对 .rpy 文件进行改动)。

3.之后我在 RenPy 内新建工程,将该游戏 game 文件夹内所有内容(除了已经解包的 scripts.rpa)都复制到工程内。scripts.rpa 使用解包后产生的 scripts 文件夹替代。

4.在 RenPy 内点击启动游戏

这时候游戏启动失败,这是失败界面
1.png
看样子似乎是打开一个叫 poemwords.txt 的文件出错了,找不到这个文件
[RenPy] 纯文本查看 复制代码
File "game/scripts/rpy/script-poemgame.rpy", line 19, in <module>
    with renpy.file('poemwords.txt') as wordfile:
IOError: Couldn't find file 'poemwords.txt'.


我解包、反编译之后就直接把文件夹放到工程里了,没有进行改动。问题出在哪里了呢?难道是解包出来会缺少文件?





这是我建的工程的目录:
_L6C2%8%8DC1]~`1C5H7@IB.png



4月22日更新------------------------------------------------------------------------------------------------
今天尝试了用 unrpa 解包、将所有 .rpa 文件解包放在游戏工程内(而不是只解包 scripts.rpa )依然是报错找不到 poemwords.txt
于是我在心跳文学部游戏目录内搜索 poemwords.txt ,并不能找到这个文件,也就是说这个文件不在游戏的其他目录里,应该就在包里,解包就能出来。我尝试在解包后的 scripts 文件夹内搜索,发现能找到 poemwords.txt
简单来说,我在 RenPy 内的工程是这样一个结构:
2.png

那么我遇到的问题就从  “解包出来缺少poemwords.txt文件”  变成了  “解包的文件夹内有poemwords.txt'文件但代码提示打开失败”

我发现了一个临时的办法解决这个问题:
将 poemwords.txt 从 scripts 文件夹内复制出来,粘贴在 game 文件夹内就能被正常读取了。
但这显然不是一个好的解决办法,因为 script 文件夹内还有许多其他文件,如果以后代码要读取这些文件时肯定还会出现读取不了的错误。
所以要彻底解决这问题还得想办法让 RenPy 引擎读取到 game/script 目录下的文件。
(忽然对汉化组的前辈大佬肃然起敬)


4月23日更新------------------------------------------------------------------------------------------------
解包之后程序无法运行的问题已经解决了。

解决过程时这样的:

解包之后 game/script 文件夹内有 poemwords.txt 文件但提示找不到,我根据报错文档 File "game/scripts/rpy/script-poemgame.rpy", line 19 找到 script-poemgame.rpy 的第19行,发现调用的是 RenPy 的 renpy.file() 函数。查看了 RenPy 引擎的这个函数后发现这个函数读文件只会在固定的几个地方查找文件,不会递归子目录。也就是说一直报错找不到文件的原因可能是文件位置不太对。

接着我做了一个实验,用rpatool解包 scripts.rpa 到 scripts 文件夹再把该文件夹打包成 scripts.rpa 再解包一次。发现这次解包出来的内容在 scripts /scripts 文件夹内。也就是说解包的时候把内容解压到 scripts 文件夹内,我应该把 scripts 文件夹内的内容复制到 game 文件夹下,而不是把整个 scripts 文件夹复制到 game 下。我可能说不清楚,就放两张图表示一下把。

正确做法:
1.png

错误做法:
2.png

(应该只有我这种第一次用Ren'Py的新手会遇到这种问题吧  害)

顺便一提,改造心跳文学社又遇到新问题了,现在我不拆包直接复制游戏 base 目录到工程的 base 目录下,结果用 RenPy 打开游戏会出现部分汉化失效的情况。
我重下了游戏本体没有打开一次,将纯净的游戏本体复制到工程 base 目录下,同时也删除了 \AppData\Roaming\RenPy\DDLC-1454445547 下的存档文件。再用 RenPy 打开游戏大部分汉化都正常了,但游戏二周目还是会有没汉化的地方。

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|RenPy中文空间 ( 苏ICP备17067825号|苏公网安备 32092302000068号 )

GMT+8, 2024-12-4 00:47 , Processed in 0.126687 second(s), 31 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表