游戏狂人
- 贡献度
- 87
- 金元
- 9692
- 积分
- 1327
- 精华
- 1
- 注册时间
- 2008-8-16
|
本帖最后由 fantasysango 于 2022-6-12 19:02 编辑
国外Lavos大神分享的关于357PC版扩展服装槽位的研究,原帖见 http://s13.zetaboards.com/koeiwarriors/topic/7170318/32/
最新重大发现:1、第4步中的RIGB入口地址应设为356第一套或第二套服装的RIGB入口地址;
2、没有356服装的武将,设置成第二套服装的RIGB入口地址即可;
3、猛将传新增五人的RIGB入口地址算法不符,吕玲绮第二套的RIGB入口地址应为“0x9B8C”……
本人参照其原文进行的扩展服装槽大致步骤如下:
所需脚本与可执行文件(2022.06已补档): https://pan.baidu.com/s/11Mh33lPYDRMZ-GfK0LAzfQ?pwd=eupp 提取码: eupp (已增加1.02版EXE,修复将星DLC坐骑、大众脸不显示bug)另提供本人自制用于提取data文件的bat小程序:http://bbs.3dmgame.com/thread-4348343-1-1.html (可用于已打过傻瓜包的版本)
328L 热心坛友davidtoto22整理出所有武将在0.data,8384.data中的起始值,与8383.data中的RIGB入口地址值,在此表示由衷感谢!(已添加至下载网盘内)
特别鸣谢(转载请保留):Lavos(SaintLouisX)与各位热心的3DM坛友
We deeply appreciate all the help and guidance provided by one of our 3dm users, SaintLouisX (aka. Lavos), the original author of the script and the tutorial.
Although Chinese is not his native language, he visits our forum from time to time, taking a look on our progress, and is eager to provide feedback and advice to us. For the sake of our reference, he writes a long tutorial addressing the key ideas of his methodology after he knows that we are interested in his work. With his help, many outstanding issues are finally resolved.
Again, let us thank for the help provided by Lavos. We are looking forward to have another chance to exchange ideas with Lavos in the future.
(written by XgamerX)
1、用Lavos提供的extract.py(需安装python2.7)对linkdata进行解包,提取出其中的0.data,8384.data(主要是这俩文件控制服装槽数)。解包方法为:将extract.py文件放置游戏安装目录,并且将linkdata.idx,linkdata0/1/2/3.bin都复制一份,新文件名为原文件名的扩展名后面加“.bak”(硬盘不够可直接将在原文件后缀名之后加“.bak”,但执行第4步导入操作时须将“.bak”去掉)。在游戏安装目录内运行命令窗口,WIN7下可于空白处按住shift+鼠标右键——“在此处打开命令窗口”。输入“extract.py”,回车,将生成一个extracted的文件夹,里面有所需要的0.data与8384.data。(PS:不需要提取出来的8383.data文件)
另外,如果不想导出linkdata里的所有文件,而是指定的文件如0.data与8384.data的话,可采用如下方法:用文本编辑器打extract.py,搜索“if filesize > 0:”,将此句改为“if filesize > 0 and cntr in [0,8384]:”,参见extract_edit.py(已改好成只提取 0与8384文件,直接输入“extract_edit.py”即可。若想连同孙尚香的第一套服装的data文件一同导出,则在“[ ]”内加入729,即“[0,729,8384]”,729的得来为孙尚香的凉宫修改器内编号730减去1。若已打过傻瓜包补丁欲再次从linkdata中提取文件,请移步http://bbs.3dmgame.com/thread-4348343-1-1.html)。
2、用WinHex(十六进制编辑器)打开0.data,跳至0x1a908(Lavos研究得出的起始点,WinHex中操作为:导航——转到偏移量——输入“1a908”),从此处开始,每0x31字节控制一名武将。以增加一套孙尚香服装的为例,夏侯惇是第一个武将,序号为0x0,孙尚香为第8个武将,序号0x7,以0x1a908为起点,再前进0x7*0x31 = 0x157字节,即到达0x1AA5F,从这儿开始便是香香的服装槽,每名武将最多开启9套服装,0x1AA5F——0x1AA67,这9个字节中(序号0-8),序号为0、1、4、5的字节处值为“00”,其余皆为“FF”,故“00”即为开启,FF为关闭(因游戏中香香只有四套服装开启)。现准备开启香香第八套服装,则将序号8处改为“00”,保存。
3、用WinHex打开8384.data,这个文件从开头(即0x000000)起,每0x66字节控制一名武将,跳至0x7*0x66 = 0x2CA字节处(0x7为香香的武将序号),忽略前六个字节,从 0x2CA+0x6=0x2D0 处开始,每两字节控制一套服装,之前我修改了序号为8的服装,故再前进0x8*0x2=0x10字节,到达0x2E0。
因为要导入的新模型文件的命名须从32000(十六进制0x7D00)开始,32000以下则游戏莫名崩溃(Lavos试验得出),而游戏中已使用的文件数是0x48e2,故0x2E0处所需修改成的值的计算公式应为:0x7D00-0x48e2=0x341E(即修改后的EXE从0x341E地址处开始继续读取文件),然而在PC版bin文件中,地址皆进行了反转加密,故此处的实际操作即为:
将0x2E0开始的一个WORD(双字节值,占两字节)的十六进制值改成“1E34”,保存。(PS:此时要导入的模型文件名为32000.data,若想继续添加文件,则为32001.data,32001的十六进制数为0x7D01,此处地址的计算方法则为0x7D01-0x48e2=0x341F,将其反转后填入“1F34”)
4、导入时还需要连同Lavos提供的扩容后的8383.data文件。此文件存储各服装的名称与RIGB地址信息。分a、b俩步骤,a为添加服装名称,若不打算给服装特别命名,可跳过a步骤,使用预设命名,建议跳过;b为添加RIGB信息,若不按此步操作,则武将骨骼信息加载不全。
a.参见 另一坛友 秋亦浓 分享的 DLC教程翻译 http://bbs.3dmgame.com/thread-4340310-1-1.html 中的 修改或添加服装字符串 章节,本人便不做赘述。提示:该章节中有一处错误,357繁中版使用的是big5码,须请将编辑器编码设为cp950(big5码),并在第一行加入“#coding:cp950”,以下为本人使用 Editplus 对 Makestrings.py 进行的编辑操作步骤与截图:
1、如需使输入的文字能显示出来,须设置字体为big5码字体,本人已网盘中已添加本人所用的Big5码字体文件:华康行楷繁(BIG5).ttc。用 editplus 打开makestrings.py,工具——参数设置——设置字体为Big5码字体(后面有B5标志)
2、开头加一句“#coding:cp950”,并设置右下角文本编码为“cp950”
3、切换输入法为繁体。
4、在 “for i in range(0x0,0x52,0x1):”处的嵌套 for 循环下,warriornum代表武将序号,cntr代表该武将的第几套服装。Lavos的脚本中,完全照搬了官方的命名规则,即有特殊服装名称的才予以特殊命名,如 warriornum = 0x0 时的夏侯惇,warriornum = 0x2e 时的司马师等,否则将走最后一个 else 的命名规则,即很多人看到的普通1、2,普通1别种、普通2别种,可直接在上面对全部非特殊武将进行修改……
5、以额外指定云妹第八套(即序号 cntr == 7)的服装名称为“幻想風服裝”为例,先复制两行以“elif”开头的代码(最好要复制,Python对语法缩进要求很严格,语法中不能存在tab键缩进,亦不能使用回车后的自动缩进!只能用一个空格一个空格敲出来的才行),至另一行起始处粘贴,修改 warriornum (武将十六进制序号) 与 cntr (服装序号),删除下方中间那张图所示的部分,修改十六进制值部分为繁体中文汉字。
b.用WinHex打开Lavos提供的265KB大小的8383.dat文件,若预导入的文件编号为32000,则跳转至0x341E*0x4=0xD078处(0x341E的算法由来参见第3步),需修改此处开始的一个DWORD的十六进制值(即两个WORD,占四字节),此值的大小可为预导入的编号为32000的武将,其任意一套原始服装处地址的值。查找其原始服装的方法为:仍在此文件中跳转至地址等于【十六进制的凉宫编号差*0x4】处的DWORD值。例如香香的第一套服装编号为729,而夏侯惇首套服装为704,729-704=25=0x19,即跳转至0x19*0x4=0x64,此处的DWORD值为“11001900”,则之前的0xD078处亦为“11001900”。(经测试发现,若与第一套共用同一个RIGB入口地址,则同一名武将同台登场时会贴图错乱。目前想到的解决方法为:换成356第一套使用的RIGB入口地,即“13001C00”,或者356第二套的地址,即“13001D00”。因为356两套似乎是共用了一个RIGB,这么做的原因是系统肯定不会让356两套衣服同时出现;至于没有356服装的武将,则设置成第二套服装的RIGB入口地址即可。另外,猛将传新增五人的地址用不能原算法进行计算,吕玲绮第一套RIGB入口地址算法为:0x26e2*4=0x9b88,即0x9b88是吕玲绮第一套RIGB入口地址,第二套算法为:0x26e3*4=0x9B8C。实际修改中应填入第二套的RIGB入口地址“0x9B8C”)
5、一切准备就绪,可以开始导入了,将导入脚本import.py放至游戏安装目录下,同时在游戏安装目录下建一个文件夹为“import”,将0.dat,8383.data,8384.data与32000.data(要导入的新模型文件,可以从原游戏中提取得到,比如729.data,再改名成32000.data,或通过其它渠道得到……)放至import目录内(非data后缀名文件无影响),然后返回游戏安装目录,在此文件夹的CMD中运行此命令:“import.py import”。
6、运行Launch1.01Edited.exe进入游戏,完毕。
友情提示:
1、进行十六进制计算可以使用Win7自带的计算器,点击菜单栏“查看”——“程序员”……
2、“WinHex17.7 SR-3 汉化未加密版”在本人电脑上也经常出现保存错误,推荐更换低版本WinHex~
3、“0x”为标志十六进制数的前缀,在计算器进行计算和WinHex中进行位移跳转时无需输入!
4、因凉宫修改器无法读出32000开始的武将,建议各MOD大神额外提供TexMOD版下载。或请对原武将模型用凉宫导入过MOD贴图的坛友提供用本人修改后的自制bat小程序(下载请见此贴)导出来的包含该武将MOD贴图+模型的data文件,分享给坛友。
最后附一张坛友 841342418 成功进入游戏后的截图(可同时拥有原始服装与MOD):
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
评分
-
52
查看全部评分
-
|