2025-2-12 19:39
漫漫苦短
回复 #58 神雕小侠 的帖子
2.3.剧情部分把张合改成张郃用UE编辑器改SNRxM.R3就行,搜BIG5码B1 69 A6 58(张合),改为B1 69 AD A8(张郃)。非剧情对话在IPPAN0M.R3,搜C3 BF AE 63(藩宮)就能找到这句话。这两个文件应该都是没用LS11压缩的,如果是压缩的我就没办法了。
1.这个图在HEXZCHR.R3里,目前只有人物代码只有0000(劉備)0004(呂布)和0008(曹操)有特殊形象,其他都是按照兵种来的,我想到的解决方法:曹操小号骑赤兔(曹奉先,让呂布骑狗去)!
[code]seg002:7455 56 push si
seg002:7456 9A 6C 93 F2 2C call sub_3628C ;获取部队兵种代码
seg002:745B 88 46 FF mov [bp+var_1], al ;兵种代码保存在var_1
...
seg002:7467 6A 02 push 2
seg002:7469 56 push si
seg002:746A 9A BC 40 F2 2C call sub_30FDC ;混乱返回1
seg002:746F 0B C0 or ax, ax ;判断部队是否混乱
seg002:7471 75 3A jnz short loc_343CD
seg002:7473 39 04 cmp [si], ax ;判断是不是0000劉備
seg002:7475 75 0A jnz short loc_343A1
seg002:7477 56 push si
seg002:7478 9A 6C 93 F2 2C call sub_3628C ;又取了一次兵种代码,不是保存在var_1了吗?
seg002:747D 04 26 add al, 26h ;劉備使用26(短兵)27(长兵)28(战车)
seg002:747F EB 3B jmp short loc_343DC
seg002:7481 loc_343A1: ; CODE XREF: sub_3436C+29↑j
seg002:7481 83 3C 04 cmp word ptr [si], 4 ;判断是不是0004呂布
seg002:7484 75 06 jnz short loc_343AC
seg002:7486 C6 46 FB 2D mov [bp+var_5], 2Dh ;呂布使用2D
seg002:748A EB 33 jmp short loc_343DF
seg002:748C loc_343AC: ; CODE XREF: sub_3436C+38↑j
seg002:748C 83 3C 08 cmp word ptr [si], 8 ;判断是不是0008曹操
seg002:748F 75 06 jnz short loc_343B7
seg002:7491 C6 46 FB 2E mov [bp+var_5], 2Eh ;曹操使用2E
seg002:7495 EB 28 jmp short loc_343DF
seg002:7497 loc_343B7: ; CODE XREF: sub_3436C+43↑j
seg002:7497 56 push si
seg002:7498 9A F6 40 F2 2C call sub_31016
seg002:749D 3D 01 00 cmp ax, 1
seg002:74A0 1A C0 sbb al, al
seg002:74A2 F6 D8 neg al
seg002:74A4 8A 4E FF mov cl, [bp+var_1]
seg002:74A7 02 C9 add cl, cl
seg002:74A9 02 C1 add al, cl
seg002:74AB EB 0F jmp short loc_343DC ;普通部队使用0-25
seg002:74AD loc_343CD: ; CODE XREF: sub_3436C+25↑j
seg002:74AD 56 push si
seg002:74AE 9A F6 40 F2 2C call sub_31016
seg002:74B3 3D 01 00 cmp ax, 1
seg002:74B6 1A C0 sbb al, al
seg002:74B8 24 01 and al, 1
seg002:74BA 04 2B add al, 2Bh ;混乱部队使用2B, 2C
seg002:74BC loc_343DC: ; CODE XREF: sub_3436C+33↑j sub_3436C+5F↑j
seg002:74BC 88 46 FB mov [bp+var_5], al
seg002:74BF 68 1C 09 push offset aBHexzchrR3 ; "B:HEXZCHR.R3"
seg002:74C2 8D 86 72 FE lea ax, [bp+var_18E]
seg002:74C6 50 push ax
seg002:74C7 9A D6 1F F6 1C call sub_1EF36 ;打开HEXZCHR.R3文件[/code]
另外把刘备兵种变非步兵系程序会出错(强行变不是用道具)应该不是形象的问题,我用likelove的dosbox内存修改工具把seg002:747E改成了29h,可以正常显示放火(29)放水(2A)和混乱,并且可以正常移动,因为那就是一张贴图。
2025-2-12 21:07
神雕小侠
回复 #59 likelove 的帖子
非常感谢兄台的解答,我大概能看懂,不过工作量还是蛮大的,看来还是能有个编辑器更好呀
2025-2-12 21:10
神雕小侠
[quote]原帖由 [i]翡翠衾寒[/i] 于 2025-2-12 14:18 发表
加油加油!!
十二年前我尝试用龙吟大大的编辑器改了一点点剧本,没想到今天突然想上论坛来看一眼,竟然有志同道合的人
想请教下LZ用的是龙吟在2012年3月发布的那个编辑器嘛?后来龙吟有发布更新的编辑器嘛?
三个问题确实都 ... [/quote]
是的我就是用的这个版本的编辑器,测试出来有一些bug,不过结合UltraEdit也可以解决大多数的问题,至于编辑器后来有没有更新就不清楚了
2025-2-12 22:07
likelove
解压的部分R3文件
2025-2-12 23:24
神雕小侠
[quote]原帖由 [i]漫漫苦短[/i] 于 2025-2-12 19:39 发表
2.3.剧情部分把张合改成张郃用UE编辑器改SNRxM.R3就行,搜BIG5码B1 69 A6 58(张合),改为B1 69 AD A8(张郃)。非剧情对话在IPPAN0M.R3,搜C3 BF AE 63(藩宮)就能找到这句话。这两个文件应该都是没用LS11压缩的,如果是压缩的 ... [/quote]
感谢兄台指点,经过测试已经修正张郃的bug;
对于特殊形象的问题我是这样考虑的,原版游戏中吕布的关卡并不太多,也不太难,因此我打算参照原著增加有吕布的关卡数量和难度,他的特殊形象还是有保留价值;
对于曹操小号的问题,我曾经设想只用曹操的大号,一开始仅装备青釭剑和吴子兵法,后期通过相关指令再给他配备上玉玺、倚天剑和孟德新书,但未能成功,貌似游戏中获得道具的指令都仅限于刘备本人,张飞的三尖刀和赵云的青釭剑也只能通过单挑得到,好像再无其他途径了,不知道有没有更好的办法解决
用小号只能显示普通的骑兵形象,这个问题倒也不是不能接受,主要是我太追求完美(chui mao qiu ci)了
2025-2-13 01:32
翡翠衾寒
IPPAN0M.R3应该是没有编辑器的,如果直接修改对话是不是可能会产生偏移问题?
2025-2-13 20:20
神雕小侠
[quote]原帖由 [i]翡翠衾寒[/i] 于 2025-2-13 01:32 发表
IPPAN0M.R3应该是没有编辑器的,如果直接修改对话是不是可能会产生偏移问题? [/quote]
昨晚用UltraEdit测试了一下,直接修改big5码就可以解决的,偏移倒不是啥问题,只要修改之后的字数不增加就没有影响
[color=Silver][[i] 本帖最后由 神雕小侠 于 2025-2-13 21:11 编辑 [/i]][/color]
2025-2-13 21:19
神雕小侠
借热度继续请问:
我想修改道具屋的对白,还有我方武将撤退时的“遗言”(如图),但文字好像并不保存在IPPAN0M里面,请问应该如何修改?
[color=Silver][[i] 本帖最后由 神雕小侠 于 2025-2-13 21:20 编辑 [/i]][/color]
2025-2-14 22:15
likelove
道具屋的对话要改exe
我方战场撤退对话在hexgrp中,由sub_23B4E调用。
“全軍,撤退!
兄長,我對不起您…….
大哥,對不起,沒想到會被……”
2025-2-15 23:40
神雕小侠
[quote]原帖由 [i]likelove[/i] 于 2025-2-14 22:15 发表
道具屋的对话要改exe
我方战场撤退对话在hexgrp中,由sub_23B4E调用。
“全軍,撤退!
兄長,我對不起您…….
大哥,對不起,沒想到會被……” [/quote]
感谢,道具屋的对话我已经在exe中找到并成功修改,但撤退对话在hexgrp中一个都没有查到
2025-2-20 23:56
likelove
[quote]原帖由 [i]神雕小侠[/i] 于 2025-2-15 23:40 发表
感谢,道具屋的对话我已经在exe中找到并成功修改,但撤退对话在hexgrp中一个都没有查到 [/quote]
上面有解压版R3文件
2025-2-22 20:20
漫漫苦短
回复 #71 likelove 的帖子
可以修改解压版R3文件,但是还要再压缩回去才能适配main.exe,不然main.exe读取不了修改后的数据,我现在没有找到这种LS11解压缩工具,设计与修改中的都是其他游戏的,而且也不知道在main.exe或那些com文件中有没有压缩成LS11文件的代码,你是用什么工具进行修改的:hz1004:
2025-2-22 23:32
likelove
ls的解压本坛有工具,但压缩的没有。github上也能搜到解压的代码
又看了一下主程序代码和他人的文档,可以使用解压后的文件,需要对r3文件作拼接和修改。
读取资源、解压缩在这里
[code]seg001:2080 ; 从文件读资源
seg001:2080 ; Attributes: bp-based frame
seg001:2080
seg001:2080 ; int __stdcall __far s_ReadFileByIndex(int handle, int buff, int seg, int index)
seg001:2080 s_ReadFileByIndex proc far ; CODE XREF: sub_10F74+30P
seg001:2080 ; sub_111D8+44P ...
[/code]
ls文件由10字节(以下均为16进制)文件头,100字节压缩字典,压缩节表C * N,分节的压缩数据构成
压缩节表在110这个位置,每个节由C字节构成,最后以2字节00收尾
每节表的信息:
[code]seg001:20B8 8D 86 F8 FB lea ax, [bp+var_408] ; 之前猜测有误,这个是压缩的节表
seg001:20B8 ; 每节信息是数组变量,长度C,存读出来的数据
seg001:20B8 ; 前4个为压缩后长度,如0000 20e4表示压缩后长度20e4
seg001:20B8 ; 中4个为压缩前长度,如0000 3900,表示压缩前长度3900
seg001:20B8 ; 后4个为资源偏移,如0000 0138表示从文件0138处解压
seg001:20BC 16 push ss ; seg
seg001:20BD 50 push ax ; buff
seg001:20BE 6A 0C push 0Ch ; bytestoRead
seg001:20C0 FF 76 06 push [bp+handle] ; handle
seg001:20C3 9A D4 4F F6 0C call s_ReadFile_1
[/code]
主程序是写死的:hz1015:,默认就是ls文件,所以解压后的他不认
[code]seg001:219A 8B 46 FC mov ax, [bp+var_4_beforpacked]
seg001:219D 8B 56 FE mov dx, [bp+var_2]
seg001:21A0 39 46 F8 cmp [bp+var_8_afterpacked], ax
seg001:21A3 75 16 jnz short l_F11B_need_unpack
seg001:21A5 39 56 FA cmp [bp+var_6], dx
seg001:21A8 75 11 jnz short l_F11B_need_unpack
seg001:21AA FF 76 0A push [bp+seg] ; seg
seg001:21AD FF 76 08 push [bp+buff] ; buff
seg001:21B0 50 push ax ; bytestoRead
seg001:21B1 FF 76 06 push [bp+handle] ; handle
seg001:21B4 9A D4 4F F6 0C call s_ReadFile_1
seg001:21B9 EB 0F jmp short loc_F12A
seg001:21BB ; ---------------------------------------------------------------------------
seg001:21BB
seg001:21BB l_F11B_need_unpack: ; CODE XREF: s_ReadFileByIndex+123j
seg001:21BB ; s_ReadFileByIndex+128j
seg001:21BB FF 76 0A push [bp+seg]
seg001:21BE FF 76 08 push [bp+buff]
seg001:21C1 50 push ax ; length
seg001:21C2 FF 76 06 push [bp+handle]
seg001:21C5 9A 08 20 F6 0C call s_EF68_unpack?
[/code]
21A0处有比较,看节表中压缩后、压缩前数据是否相等,不等则去解压,相等则直接读。
既然是写死的,只能拼接文件了
R3文件解压缩后,原始R3文件节表之后的数据全部删除(最后一项0000之后),然后把解压后的数据拼过来。这时要改几个数据,把每一项节表的压缩后数据都改为压缩前,使21A0处比较相等,再把偏移改成解压后的
比如hexgrp原始节表
[code]before after off
20e4 3900 0138
02a5 032f 221c
027d 04d2 24c1[/code]
改成
[code]before after off
3900 3900 0138
032f 032f 3a38
04d2 04d2 3d67[/code]
附上修改后的hexgrp,测试是可用的。
2025-2-23 00:01
likelove
end1grp等不能解压的原因也找到了,节表的数据存储方式变了
main读取节表信息是比较古老的,高位的word放在前,低位word放在后,是大端模式,所以可以看到逐字节拼出来
可能是end1grp等换了程序员,是正常的小端,低地址在前。
2025-2-27 22:07
likelove
部分解压过的R3文件可用了。可直接替换原始文件。
2025-3-21 23:42
神雕小侠
[quote]原帖由 [i]likelove[/i] 于 2025-2-27 22:07 发表
部分解压过的R3文件可用了。可直接替换原始文件。 [/quote]
感谢兄弟提供的文件,经过测试效果不错!:Th
2025-3-23 01:29
神雕小侠
第一章界桥之战更新完成
对敌我双方阵容做了一些修订,每个城市里的NPC对话也做了大量修改,感谢大家支持!
2025-3-24 12:06
神雕小侠
这里还有一个小小的遗憾,张郃字“儁乂”,但不论在GB2312码还是BIG5码中都没有“儁”字,因此这里只得用“俊乂”,如果哪位兄弟有更好的解决办法还请多多指教!:Th
2025-4-1 14:13
翡翠衾寒
请问楼主 荥阳之战是怎么用现有的这些编辑工具增加进去的?
这是一张用其他地图改出来的战场图,还是一张全新的图?
2025-4-1 17:21
神雕小侠
回复 #79 翡翠衾寒 的帖子
我用的是龙吟的编辑器,地图是修改的,暂时尚未找到新增地图的办法
2025-4-3 00:01
翡翠衾寒
回复 #80 神雕小侠 的帖子
那可以理解为这就会“占据”一个地图位置嘛(也就是说某个原本的战场不会出现了)?
2025-4-3 13:19
神雕小侠
回复 #81 翡翠衾寒 的帖子
对的,原版游戏有几个战场意义不大,我的规划里就把它删掉了
2025-4-7 14:37
翡翠衾寒
回复 #82 神雕小侠 的帖子
同感,我觉得第一章很多的分支选择稍微有点啰嗦
2025-4-7 15:01
翡翠衾寒
回复 #46 神雕小侠 的帖子
这是怎么确定的啊
同样也在想怎么修改道具屋售卖列表的问题
2025-4-8 20:17
神雕小侠
[quote]原帖由 [i]翡翠衾寒[/i] 于 2025-4-7 15:01 发表
这是怎么确定的啊
同样也在想怎么修改道具屋售卖列表的问题 [/quote]
也是前辈做出来了修改器,可以修改原版游戏中各地点的宝物,我就在main.exe中搜索每一关的宝物地址,一点一点摸索出来的,先附上第一章的宝物地址表吧,中间有空白的几个地点不是没查到,是懒得写了,都是按照顺序排下来的。按照这个表格可以把原本没有道具屋的地点也添加出售的道具,只要再加上道具屋这个人物就行。
[color=Silver][[i] 本帖最后由 神雕小侠 于 2025-4-8 20:20 编辑 [/i]][/color]
2025-4-8 20:26
神雕小侠
[quote]原帖由 [i]翡翠衾寒[/i] 于 2025-4-7 14:37 发表
同感,我觉得第一章很多的分支选择稍微有点啰嗦 [/quote]
确实如此,后面有几个分支也是如此,不过我想增加几张地图,目前还不得要领,兄台有什么好办法么?
2025-6-21 14:08
babayetu
走清河的界桥袁绍军阵容也太可怕了吧,快满员30个将领级别:hz1044:
2025-6-25 16:12
木可柯
谁能发个整合好的加强版给我?直接跟我联系,有报酬。联系方式13807086781
2025-6-28 16:44
神雕小侠
回复 #87 babayetu 的帖子
哈哈,我也是看到练级高手太多,就想做一个最难的界桥来,看看有没有兄弟挑战
另外我增加的武将也都不是凭空添加的,要么史书中有记载,要么原著中有描述,要么也是评书三国中有提到,在后面我会尽量做到交代每一位武将的结局
[color=Silver][[i] 本帖最后由 神雕小侠 于 2025-6-28 16:49 编辑 [/i]][/color]
2025-6-28 16:51
神雕小侠
回复 #88 木可柯 的帖子
还没有整合好的呀,因为我还没做完呐
目前我发布了已经做好的第一章第一节,正在测试调整第一章第二节,做好了再发上来
[color=Silver][[i] 本帖最后由 神雕小侠 于 2025-6-28 16:52 编辑 [/i]][/color]
2025-8-13 15:34
木可柯
我下载后解压不了,不知道为什么,能否发一份给我,这是我的邮箱[email]kehenghui1983@163.com[/email]也可以跟我联系,这是我的电话13807086781。可以发红包表示感谢,这是青春的记忆,很希望玩一玩修订版的。谢谢。
页:
1
[2]
Powered by Discuz! Archiver 5.0.0
© 2001-2006 Comsenz Inc.