level 6
可以尝试下先把语言改成德语,然后把语音文件全部copy到其他目录保存,然后再把语言改回英语,最后将保存到其他目录的德语语音文件拷回来覆盖。
2025年05月26日 02点05分
4
level 8
语音包位于03.cat,03.dat里面,其中voice-l044是英文语音,048是德语,要怎么做不用我再细说了吧
2025年05月26日 06点05分
5
@Ballance 就是找个解包工具,解压03.cat,复制德语voice文件夹粘贴到“extentions\你的mod文件夹\”下,改成英语voice文件夹名,然后从其它DLC包里拷一个content.xml文件过来,修改一下mod名称,进游戏能看到就成功了。原理就是这样,相信你可以的
2025年05月27日 00点05分
大佬讲一下细节吧,我自己改了一下03.cat,结果还是不行。想改03.dat,但是utf-8打不开
2025年05月26日 07点05分
@Ballance 先要解包,然后塞进DLC所在文件夹做成mod形式
2025年05月26日 11点05分
@瓦洛克18 那对我来说有点超模了,等哪个大佬心情好做一个,我这小卡拉咪再坐享其成吧
2025年05月26日 23点05分
level 8
解包py脚本代码如下:
-----------------
import os
outdir = "out"
list_of_files = [file for file in os.listdir(
".") if file.lower().endswith(".cat")]
for catfile in list_of_files:
inf = open(catfile, "r")
inf_data_name = "%s.dat" % catfile.split(".")[0]
inf_data = open(inf_data_name, "rb")
for line in inf:
obj_data_split = line.split(" ")
filepath = " ".join(obj_data_split[0:len(obj_data_split) - 3])
obj_data = {"hash": obj_data_split[-1],
"modified_epoch": obj_data_split[-2],
"size": obj_data_split[-3],
"filepath": filepath}
obj_data["path"] = os.path.dirname(obj_data["filepath"])
obj_data["filename"] = obj_data["filepath"].split("/")[-1]
if not os.path.isdir("%s/%s" % (outdir, obj_data["path"])):
os.makedirs("%s/%s" % (outdir, obj_data["path"]))
try:
outf = open("%s/%s/%s" %
(outdir, obj_data["path"], obj_data["filename"]), "wb")
outf.write(inf_data.read(int(obj_data["size"])))
outf.close()
except IOError:
print(("[IOERROR] %s/%s/%s" %
(outdir, obj_data["path"], obj_data["filename"])))
inf.close()
---------------
这是以前XR的py解包脚本,X4也通用,把脚本与cat,dat包放一个文件夹,cmd运行示例"python 脚本文件名 03.cat",然后解包内容在输出文件夹out里
2025年05月27日 03点05分
6