锐远 发表于 2018-11-30 14:40

【授人以渔】原生txt配置文件提取 + 手动修改存档的一些思路

本帖最后由 锐远 于 2022-5-2 07:22 编辑

突然想起来了这个游戏,惊闻今年9月份要出正式版了!
回顾了一下这个帖子,当初我是真的又闲又肝去对着一片数字挖出那么多东西啊。。。
ea最后一个版本(2.8.4)也停滞了很久了,这个帖子之前那些过期mod和txt也就删掉了,楼主的工作也忙了起来,心态也变了,对这个游戏应该也不会再有当初的激情,那就趁着想起来这个游戏,来更新一下txt的提取方法吧~
1、首先下载一个assets资源解包工具,这里我从github找到了一个AssetStudio,根据自己电脑的.netFramework版本下载,楼主下载的是"AssetStudio.net472.v0.16.40.zip"

2、打开"AssetStudioGUI.exe"--File--load File,加载资源文件"Steam\steamapps\common\The Scroll Of Taiwu\The Scroll Of Taiwu Alpha V1.0_Data\resources.assets",进度条一过,加载成功
3、筛选TextAssets类型的资源:FilterType选择TextAssets,AssetsList选项卡可以看到所有的txt内容~其实这个时候就可以预览文本了

4、导出txt:选中所有或所需的资源,右键导出(export)



有了这些txt,你起码可以干两件事情:
1. 研究码表,低风险修改or修复存档(对,我以前真的帮人修复过被修改器毁了的存档)
2. 修改txt,制作所谓的txt mod(其实替换图片材质也是一样的道理)
   2.1 方法一、导出一个assets文件的所有资源(不只是txt),修改你要修改的内容,然后再用工具重新打包回去,替换原来的同名文件
   2.2 方法二、利用基础资源框架mod,再游戏根目录的Data\txt\下面,放下你修改后的txt,mod会帮你加载。例如我这里改了一个开局特质点数0消耗


基础资源框架mod:
https://bbs.3dmgame.com/static/image/hrline/5.gif


11月28日更新了V0.1.6.0版本,茄子对txt配置和存档做了一些改动,导致一些mod以及修改器失效或者出现bug.

作为一个强迫症+不修改不舒服斯基, 我当然是很难受啦.
大佬们乐意分享,提供给了我们很多便利,我很感激大佬,但是大佬确实比较忙,也是没办法的事.

于是我学习了怎么解密反编译,怎么去github下载最新的mod源码来编译.但是作为一个不懂c#,不懂.net编程的渣渣,就算把源码给我,也没什么luan用:dizzy:

好在现在存档是没有加密的,给了我们一种最笨的思路去自力更生修改存档,达到某些目的.

正片开始
首先,你需要一个文本编辑器.比如notepad++, Sublime text3, UltraEdit等.我自己用的是Sublime text3, 比较喜欢它的界面, 具体的安装使用我就不说明了.
然后,下载解压我提取出来的原始txt配置,可以用记事本打开,但是推荐用文本编辑器打开,然后开始正练修习:<<TXT真传>>.能看懂多少得看你的资质悟性了.
接下来,就是结合txt配置,研究和修改游戏存档了.存档位置在根目录下的The Scroll Of Taiwu Alpha V1.0_Data\SaveFiles\Date_1(2/3)下,每份存档共10个文件.用文本编辑器打开,可以看到存档都是json格式的数据,正确修改之后进游戏就能看到修改效果了.
修改前记得备份!修改前记得备份!修改前记得备份!重要的事说三遍!!!
当前版本1.6下,TW_Save_Date_0.twV0这个文件记录了所有人物的属性,物品(包括仓库)等; TW_Save_Date_2.twV0这个文件可以修改建筑;TW_Save_Date_3.twV0这个文件可以修改格子的剩余资源;TW_Save_Date_4.twV0可以修改格子的资源上限.其他文件还可以修改格子事件,人物位置等等.


案例1:修改太吾村布局
用文本编辑器打开TW_Save_Date_2.twV0,Ctrl+F搜索 "84":为什么这样搜索呢,因为查txt配置表“HomePlace_Date.txt”,可以看到太吾村id是1001,然后太吾村共13*13=169个格子,位置编号从上到下从左到右依次从0到168,太吾村在正中间,位置是84.又由于太吾村数据新档就生成而且在整个游戏唯一存在,这样搜索就会唯一匹配,快速定位(当然也可以通过TW_Save_Date_4.twV0或者借助修改器找到太吾村的id来定位).
关于"84":的解释: 84是格子位置,前面已经解释过了; 1001是建筑id,可以在HomePlace_Date.txt查看,这里指太吾村;接下来的1是建筑等级;再接下来的2是建筑类型,0代表资源或空地,1代表建筑,2是太吾村专用.后面的数字还没仔细研究,因为我是新档,应该就是跟进度、评价什么的那些有关吧.所以"83":是太吾村旁边83号格子是1级的仓库, "80": 代表80号位置是10级的水域.



案例2:修改人物属性以及修改资源/金钱/声望等
用文本编辑器打开TW_Save_Date_0.twV0存档文件,搜索要改的人物名字(不要连姓一起搜啊,因为是拆开的),可以快速定位到要修改的位置.
可以看到人物属性数据都是存在"_actorsDate"这一项下面的,以"人物编号":{"属性id":"属性值","属性id":"属性值"...}这样的格式来存.具体属性id含义我还没有整理出来,各位看客可以对照游戏里面的数据或者从修改器看到的数据来确定属性id的含义,有耐心的可以帮忙分析一下.
譬如101代表特质,特质ID可以在ActorFeature_Date.txt这个文件中查到,多个特质用竖线"|"隔开



案例3:添加物品
物品的主要配置是Item_Date.txt(也就是很多mod都会动的配置),不过像促织那种还会用到Cricket_Date.txt这样的配置来对应特定的蛐蛐(开始晕了:Q)
用文本编辑器打开TW_Save_Date_0.twV0存档文件,搜索_actorItemsDate,这一项的数据就是背包/仓库的物品数据了.


第一层的数字是人物编号,关于编号的查询案例2说过了,特殊的"-999"代表仓库,下一层的格式就是按照 "物品编号":数量,"物品编号":数量这样的形式储存.普通的无耐久,无随机属性的物品直接从Item_Date.txt查找id,如截图的"99":10就是祖传的10个捕虫网啦;P
对于有耐久/可变属性的物品,又是存储在_itemsDate下,以"物品编号":{"属性id":"属性值","属性id":"属性值"...}这样的格式来存.属性id999代表物品编号,比如截图的400049可以从Item_Date.txt查到是<<茶酒论>>,902/901指的是两个耐久值,对于书的话,有33这个属性代表残页分布

这一部分比较繁琐,我就以添加一只22耐久八败到我背包为例吧,抛砖引玉其他的相信有耐心尝试的看客可以自己看懂= =
促织属于有耐久的特殊物品.首先搜索_newItemId,找到当前最新的特殊物品编号是1031665,我们要添加的新物品编号是1031666.
促织的id通过查Item_Date.txt是10000,八败通过查Cricket_Date.txt是21,然后参照已有的蛐蛐格式,得到相应的物品数据格式{"999":"10000","2002":"21","902":"22","901":"22"}.最终我们在_itemsDate的最后插入物品数据,并在我的人物物品下加入该物品.最后,注意还要将_newItemId的值改成1031666!然后保存,进游戏load,屌屌哒八败入手~~




案例4:修复基于修改txt的mod在新版本不兼容.
新版本txt做了一些修改,比如Item_Date.txt多了一列.所以可以比对旧版本的modTXT文件和新版本的原生TXT配置,手动批量替换修改成正确的格式,mod就修复了.
哦,还有txt的第一行有变动的话也要修改成新版本一致



最后,本人是个渣渣,也挺懒的,这么做只是不得已而为之.知道怎么修改,也不会做图形界面的修改器(倒是考虑写些python修改存档小脚本自用,基于文本处理).还是希望大佬们能在百忙之中更新代码造福小白们.倘若如此,喜不自胜!
之后我会把零碎的发现整理在后面的楼层中.可通过"只看该作者"查看.
导航: 5楼   --人物名誉
         11楼 --功法
         12楼 --技艺

锐远 发表于 2018-11-30 23:58

TW_Save_Date_0.twV0文件中的_actorFame存的是人物的名誉数据.
格式为: "人物编号":{"名誉ID":[叠加次数,持续时节],"名誉ID":[叠加次数,持续时节],"名誉ID":[叠加次数,持续时节]...}
名誉配置是Fame_Date.txt,第一列是名誉ID,第三列是每次叠加的名誉加减.其他列还有待验证.

如上图,我第一世太吾编号是10001,目前名誉是11--乐善好施,叠加次数是3,查TXT效果是+2,所以表现就是3*2=6,持续10时节.知道原理之后修改就很简单了.

存档修改器是每次保存都会从将内存中的数据重新生成存档文件,由于目前大佬们的存档修改器都还没更新,所以不会生成新版本特有的_actorFame数据,造成每次用修改器之后名誉都清空了.

锐远 发表于 2018-12-9 12:42

本帖最后由 锐远 于 2018-12-9 13:27 编辑

功法和技艺相关的都在0号存档TW_Save_Date_0.twV0里面.功法ID可以在GongFa_Date.txt查询;技艺ID可以在Skill_Date.txt查询.

功法:

_actorBookDate:
记录npc可交换的藏书列表,格式为: "人物编号":[特殊物品编号,特殊物品编号,...]
关于特殊物品修改可参考帖子正文


_gongFaBookPages:
记录太吾已学功法的书本研读进度,格式为:
v0.1.6.0及之前 "功法ID":       0代表未读,1代表已读
v0.1.6.1 "功法ID":[-99~1的十个数字(十页),逗号隔开]          0代表未读,1代表已读,负数表示对应单页研读进度,例如-48代表对应功法单页已研读48%


_mianActorEquipGongFaIndex:
当前使用的功法页(0~8共九页)


_addGongFaStudyValue:
下次突破功法成功率加成(整数,代表百分之几)


_gongFaExperienceP:
太吾的历练

_actorGongFas:
记录所有人物已学功法的修炼情况,格式为:"人物编号":{"功法ID":[修炼进度(0~100),心法等级(0~10,注意太吾固定为0!),逆练篇章(0~10)]
特别地,这里太吾的心法等级固定为0,太吾的心法等级由_gongFaBookPages控制,所以太吾功法的逆练篇章不能超过_gongFaBookPages里面对应功法的"1"的数量!!!

_actorEquipGongFas:
记录所有人物当前运功的功法:格式为:"人物编号":{"0":[内功功法ID,内功功法ID,...],"1":[武术功法ID,武术功法ID,...],"2":[身法功法ID,身法功法ID,...],"3":[主动绝技功法ID,主动绝技功法ID,...],"4":[被动绝技功法ID,被动绝技功法ID,...]}


_mianActorEquipGongFas:
记录太吾的功法页配置: 格式为:"页数(0~8)":{"-1":[万用格4项分配],"0":[内功],"1":[武术],"2":[身法],"3":[主动绝技],"4":[被动绝技]}
跟上面差不多,就不细写了



锐远 发表于 2018-12-9 12:46

本帖最后由 锐远 于 2018-12-9 13:32 编辑

技艺:

_skillBookPages
记录太吾已学技艺的书本研读进度,格式为:
v0.1.6.0及之前 "技艺ID":       0代表未读,1代表已读
v0.1.6.1 "技艺ID":[-99~1的十个数字(十页),逗号隔开]          0代表未读,1代表已读,负数表示对应单页研读进度,例如-33代表对应技艺单页已研读33%


_addSkillStudyValue:
下次突破技艺成功率加成(整数,代表百分之几)

_actorSkills:
记录太吾已学技艺的修炼情况: 格式为: "技艺ID":[进度(0~100),0],"技艺ID":[进度(0~100),0],...
目前看到的进度后面的数字固定均为0,个人猜测是废弃字段



锐远 发表于 2018-12-11 02:00

不定期更新当前最新版本个人收集的可用mod

fuqifan 发表于 2018-11-30 16:10

顶一下,做修改器的大佬们一两个星期没上线了,在此之前只能DIY一下了。

锐远 发表于 2018-11-30 16:27

fuqifan 发表于 2018-11-30 16:10
顶一下,做修改器的大佬们一两个星期没上线了,在此之前只能DIY一下了。

我从测试版等到正式版

AlbionD 发表于 2018-11-30 18:58

哎,没办法了,谢谢分享,正在下载文件,太慢了。。。

zzczhang 发表于 2018-12-1 01:31

要不是有比对软件,眼睛都要看瞎


锐远 发表于 2018-12-1 01:43

zzczhang 发表于 2018-12-1 01:31
要不是有比对软件,眼睛都要看瞎

所以打算在看懂一些东西之后,写脚本来解析和修改数据。都是json格式比较好解析

锐远 发表于 2018-12-9 00:09

没几个人回复真是没意思:(

fuqifan 发表于 2018-12-9 05:12

锐远 发表于 2018-12-9 00:09
没几个人回复真是没意思

嘛,估计多数人都在苦苦等待大佬更新修改器,或者直接回滚之前版本了。

fuqifan 发表于 2018-12-9 09:34

问一下,LZ是否知道人物功法是在几号存档里吗?

锐远 发表于 2018-12-9 12:46

fuqifan 发表于 2018-12-9 09:34
问一下,LZ是否知道人物功法是在几号存档里吗?

看11&12楼~

fuqifan 发表于 2018-12-9 15:05

锐远 发表于 2018-12-9 12:46
看11&12楼~

谢LZ,用惯了图形界面修改器之后由奢入俭确实难。

doukunkun 发表于 2018-12-9 17:26

看看怎么搜索NPC

zx96969966 发表于 2018-12-9 17:40

试试看,修改器大佬都不更新了,只能自己动手了

1263004013 发表于 2018-12-9 18:03

顶楼主啦..希望楼主多发精品好帖啦.....

黯羽天阑 发表于 2018-12-9 18:24

看不懂,支持一下就好

淡◎淡的看℃ 发表于 2018-12-9 18:32

11111111111

549983654 发表于 2018-12-9 21:07

撒旦撒旦撒

凯翼520 发表于 2018-12-10 08:09

22222222222222222222222

ekin830715 发表于 2018-12-10 10:51

看不懂,但是顶楼主~~~

德沃克 发表于 2018-12-10 12:40

谢谢楼主分享

16219570 发表于 2018-12-10 13:48

导航: 5楼   --人物名誉
         11楼 --功法
         12楼 --技艺

孤雁宇 发表于 2018-12-10 18:46

666666666666

lovdream 发表于 2018-12-10 18:49

看看                                                

g136586 发表于 2018-12-10 19:33

look.need.3q

shadond 发表于 2018-12-10 22:23

我很少回帖子,这个帖子,我一定要回一下,太太太需要了

7wing7 发表于 2018-12-11 02:43

谢谢楼主分享
页: [1] 2 3 4 5 6 7 8 9 10
查看完整版本: 【授人以渔】原生txt配置文件提取 + 手动修改存档的一些思路