标题: 【代码修改】用信息传送剧本指令修改游戏封面
性别:未知-离线 鲍三郎

Rank: 1
组别 百姓
级别 在野武将
功绩 0
帖子 18
编号 545350
注册 2023-8-27


发表于 2026-1-13 21:06 资料 短消息 只看该作者
【代码修改】用信息传送剧本指令修改游戏封面

瓦岗有一个非常有意思的功能,就是随着游戏流程推进,再次进入游戏后,标题界面的游戏封面也会随之改变,据说是利用了原版的三鸟来进行这种超越出游戏存档,直接影响全局的操作。游戏自带的宝物图鉴也有这种特点(只要点亮过某个道具,无论之后读哪个存档都会显示),而三鸟和宝物图鉴的信息都存在sv.e5中,因此利用该文件,并结合信息传送实现一个类似点亮宝物图鉴的效果,从而改变游戏开局读取的封面,有助于提升游戏的互动感和沉浸感。在此特别感谢普罗大神,因为这些地址和函数的用法都是他告诉我的

在这之前还要多提一句,6.5发布帖提到
六、环境设定进入公档(数据保存至sv.e5的04-06位置)
整形变量4024 默认0 公档、1 私档(同原版)
我简单测试了一下sv.e5文件各个字节的含义,结果如下,如与实际有出入也请指正
00-02代表三只鸟,为0是没有
03-07是环境设置里的内容,其中
03是花色,四种花色分别取0-3,无取4
04是环境设定中左边一栏的五个勾选,从上到下分别是1、2、4、8、16(10H)
05是讯息显示速度,快中慢分别为012
06是移动速度,快中慢012
07是背景音乐滚动条的大小,取值0-64
08-0f不知道
10-10e,共254个字节,每个字节代表一个道具,为0则宝物图鉴中显示未解锁,不为0则显示解锁,如果data设置中未勾选进入宝物图鉴,那对应这个字节就对游戏没有任何影响

08-0f我推测是暂时没有使用到的字节,因此可以考虑选用这几个字节中的一个用于存储封面对应的编号,但是保险起见,这里选择手动在这些字节最后再扩展一个字节,具体操作如下:(注意,下面改法不适用6.4及之前的引擎)

1.用UE打开SV.E5S,注意要用二进制打开


图片附件: [1] 图片1.jpg (2026-1-13 21:12, 35.66 K)


2.在10F对应的字节添加一个00,并保存


图片附件: [2] 图片2.jpg (2026-1-13 21:12, 75.47 K)


3.使用od将引擎中如下地址的108和10F分别改成109和110


图片附件: [3] 图片3.jpg (2026-1-13 21:16, 90.82 K)


这样就实现了sv.e5的扩展

下面是正式修改代码:
0042BDB1  |.^\E9 70E6FEFF     jmp 0041A426 跳到空地址

0041A426  /> /6A 00           push 0
0041A428  |. |50              push eax
这一段是jmp0041A426破坏掉的原代码,照抄下来

0041A429  |. |68 0F010000     push 10F                                  ; /Arg1 = 10F
0041A42E  |. |E8 4DFEFFFF     call 0041A280                             ; \Ekd5三鸟.0041A280
这一段作用是读取sv.e5中的10F字节,结果输出在eax中
0041A433  |. |50              push eax
这一行对应原代码中42BDB4处为push 0,这个0就代表logo.e5文件中第1张图,修改之后,此处从push 0变为push eax,这个eax的值就是前一行从sv.e5中提取出的数字,后续可以通过剧本指令修改sv.e5中这个字节的值,从而实现封面的替换

0041A434  |. |8B44E4 04       mov eax,dword ptr [esp+4]
复原eax
0041A438  \. |E9 79190100     jmp 0042BDB6
跳回去

这里多提一点,如果觉得前面给sv.e5扩展字节的操作太繁琐,可以尝试直接使用sv.e5中的08-0f字节,这样就不需要进行扩展字节的三个步骤,相应的,41A429处的push 10F也要改成对应的数字,如选用08字节,41A429处即改成push 08。这个改法理论上没问题,但是我个人没有测试过

到这里代码的修改就完成了,接下来是剧本指令的用法,如图


图片附件: [4] 图片4.jpg (2026-1-13 21:16, 24.05 K)


第一行照抄
第二行,第一个数字自己填写,填几就是logo.e5中的几号图,第二个数字271是10F的十进制,如果前面用的是08字节,这里就要填08
第三行照抄
第四行照抄
这个剧本指令的效果就是将sv.e5中对应的字节改成自己设定的数字,因此大部分情况下只需要改第二行的第一个数字。
运行完这一条剧本指令后,再次启动游戏,封面就会改变,因此建议每个r剧本开头都写一条这个指令,这样只需要读取一遍某关的战后存档,之后封面就会变化。
举例:如果写0,代表将封面设置成logo.e5中的第一张图,同理,写5就代表第六张图


图片附件: [5] 图片5.jpg (2026-1-13 21:16, 174.3 K)


如果想新增封面,只需要在logo中新增图,比如新增图序号是33,数字就写32


图片附件: [6] 图片6.jpg (2026-1-13 21:16, 80.93 K)


假如我把这条指令写在r10的最前面,那么只需要读取s9的战后存档,封面就会直接变成这张图(读完档之后不需要专门存档,封面会直接变)


                  
下面是洗隋录系列6.4引擎改法,由于6.4引擎sv.e5中有空闲的字节,因此不需要额外扩展,但是6.4与6.5地址存在一定偏差,具体代码如下
0042BDCF  |.^\E9 9BE6FEFF     jmp 0041A46F

0041A46F  /> /6A 00           push 0
0041A471  |. |50              push eax
0041A472  |. |6A 07           push 7                                    ; /Arg1 = 7
(第七个字节,后面剧本指令中也是7)
0041A474  |. |E8 07FEFFFF     call 0041A280                             ; \Ekd5剧本换封面.0041A280
0041A479  |. |50              push eax
0041A47A  |. |8B44E4 04       mov eax,dword ptr [esp+4]
0041A47E  \. |E9 51190100     jmp 0042BDD4
剧本写法如下


图片附件: [7] 图片7.jpg (2026-1-13 21:16, 37.59 K)


一、三、四行照抄,第二行第二个数字照抄,第二行第一个数字可以自己设定
根据这个思路,开局BGM也可以用同样的方法改变,这里同样提供一个适用6.4洗隋录系列引擎的用法
代码修改:
地址        十六进制数据                       汇编代码                                      注释
00404CB7      6A 08                    push 8
00404CB9      E9 C5570100              jmp 0041A483
跳到空地址
6A 08 E9 C5 57 01 00

0041A483      E8 F8FDFFFF              call 0041A280
0041A488      50                       push eax
0041A489      B9 B8694B00              mov ecx,004B69B8
0041A48E    ^ E9 2BA8FEFF              jmp 00404CBE
E8 F8 FD FF FF 50 B9 B8 69 4B 00 E9 2B A8 FE FF
剧本写法如下


图片附件: [8] 图片8.jpg (2026-1-13 21:16, 52.91 K)


一、三、四行照抄,第二行第二个数字(8)照抄,第二行第一个数字可以自己设定
效果就是指定SoundTrk中任意一个为进游戏BGM,建议每个剧本开头都写一条这个指令,这样只需要读取一遍某关的战后存档,之后BGM就会变化。
举例:如果第二行第一个数字写5,代表将BGM设置成05-AudioTrack 05,同理,写18就代表18-AudioTrack 18

[ 本帖最后由 鲍三郎 于 2026-1-13 21:20 编辑 ]


顶部
性别:未知-离线 ささきこじろう
(屠龙剑圣)

Rank: 7Rank: 7Rank: 7Rank: 7
组别 校尉
级别 右将军
功绩 12
帖子 1163
编号 538932
注册 2019-9-23
来自 柳洞寺


发表于 2026-1-16 09:37 资料 文集 短消息 只看该作者
08-0f的字节是尚未使用的内存区。


顶部

正在浏览此帖的会员 - 共 1 人在线




当前时区 GMT+8, 现在时间是 2026-1-22 15:01
京ICP备2023018092号 轩辕春秋 2003-2023 www.xycq.org.cn

Powered by Discuz! 5.0.0 2001-2006 Comsenz Inc.
Processed in 0.011133 second(s), 9 queries , Gzip enabled

清除 Cookies - 联系我们 - 轩辕春秋 - Archiver - WAP