铁血丹心

 找回密码
 我要成为铁血侠客
搜索
查看: 4314|回复: 21

原版 Z.DAT 修改攻擊、防禦、輕功屬性最大值問題

[复制链接]
发表于 2011-9-17 17:39 | 显示全部楼层 |阅读模式

马上注册,结交更多侠友!

您需要 登录 才可以下载或查看,没有账号?我要成为铁血侠客

x
本帖最后由 jerry8192 于 2011-10-17 11:37 编辑

就是打敗敵人時,升到第二級後,攻擊、防禦、輕功屬性怎麼突然跳到 255(原本是 100,是不會發生!),這未免太誇張!預設是有符號單字節(-128~127),已經改成無符號單字節(0~255),但攻擊、防禦、輕功屬性最大值還是 0~65535,假設攻擊力:65535,碰一下敵人一觸即死,難道原版 Z.DAT 預設是雙字節,要怎麼才可以改成單字節?
如果用 Fishedit(0.71/0.72) 修改過的 Z.DAT 覆蓋到遊戲目錄時,攻擊、防禦、輕功是不會直接跳到 255,其他沒問題,最後的 BUG 就是胡斐只升到 25 級,且沒辦法升到 30 級,經驗值有超過 32767,就歸零了(0.70 例外)!其他人都可以上到 65535 了!(注:我看不建議玩這版金庸了!)

评分

参与人数 1声望 +10 收起 理由
jy02785317 + 10 我是不会这个了,也就weyl能和你讨论了

查看全部评分

【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2011-9-25 23:07 | 显示全部楼层
原版和各个修改版的z.dat都有错误,错误相对最少的应该是我以前发的0.72带战斗指令的。
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
 楼主| 发表于 2011-9-27 10:49 | 显示全部楼层
本帖最后由 jerry8192 于 2011-10-4 16:42 编辑

將 16 位雙字節已經改成 8 位單字節後,如果攻擊、防禦、輕功屬性最大值調到 200 時,跳轉指令改成無條件(JMP),打敗敵人升級後,攻擊、防禦、輕功屬性怎麼增加到 206(如果屬性最大值調到 255,有溢位,然後就跳回 5),跳轉指令改成無符號小於等於(JBE),如果攻擊、防禦、輕功屬性最大值調到 254 時,打敗敵人升級後,攻擊、防禦、輕功屬性已經加到 255(沒有產生溢位現象) 了!而且已經改了好幾個跳轉指令,已經限制不了 200 整(有符號數,只能 -128~127,沒辦法調到 -55~200),定義的特定數值已經找不到!沒有其他辦法,最後就改了傷害公式!
不然就暫時用 0.70 版的 Z.DAT 吧!
http://www.pediy.com/tutorial/chap2/Chap2-3.htm
原版 Z.DAT
顯示攻擊力
1C967:
0F BF 05 A2 01 07 00→0F B6 05 A2 01 07 00(把 word 改成 byte)
296E5: 7E 09 (條件跳轉指令)  --> EB 09(有溢位)
35390: 7E 09 (條件跳轉指令)  --> EB 09(有溢位)
356FD: 7C 09 (條件跳轉指令)  --> EB 09(有溢位)

顯示防禦力
1CA0D:
0F BF 05 A6 01 07 00→0F B6 05 A6 01 07 00(把 word 改成 byte)
353C2: 7E 09 (條件跳轉指令)  --> EB 09(有溢位)
35789: 7C 09 (條件跳轉指令)  --> EB 09(有溢位)

顯示輕功
1CAB3:
0F BF 05 A4 01 07 00→0F B6 05 A4 01 07 00(把 word 改成 byte)
294FF: 7E 09 (條件跳轉指令)  --> EB 09(有溢位)
353A9: 7E 09 (條件跳轉指令)  --> EB 09(有溢位)
35743: 7C 09 (條件跳轉指令)  --> EB 09(有溢位)
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2011-10-18 01:47 | 显示全部楼层
不改重定位表时20楼应该是正确的
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
 楼主| 发表于 2011-10-17 23:21 | 显示全部楼层
本帖最后由 jerry8192 于 2011-10-18 09:40 编辑
weyl 发表于 2011-10-12 20:59
因为pe文件中有一设置内存地址的重定位表,所以不能修改表示内存地址的双字的位置。把nop放在比较语句的前 ...

攻防輕重定位表:
攻擊:
0x121CDh:07 10 8B 09 02 A2 01 07
0x11DE6h:07 10 95 09 02 A2 01 07
改成
0x121CDh:07 10 88 09 02 A2 01 07
0x11DE6h:07 10 93 09 02 A2 01 07
輕功:
0x11DEFh:07 10 A4 09 02 A4 01 07
0x11DF8h:07 10 AE 09 02 A4 01 07
改成
0x11DEFh:07 10 A2 09 02 A4 01 07
0x11DF8h:07 10 AD 09 02 A4 01 07
防禦:
0x11E01h:07 10 BD 09 02 A6 01 07
0x11E0Ah:07 10 C7 09 02 A6 01 07
改成
0x11E01h:07 10 BC 09 02 A6 01 07
0x11E0Ah:07 10 C7 09 02 A6 01 07(不變)
建議玩 MOD 專用版(例:蒼龍...)!(-32768~32767)

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要成为铁血侠客

x
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2011-10-12 17:13 | 显示全部楼层
  1. 00035392:  66:C783 A2010700 C800      MOV     [WORD DS:EBX+701A2], C8
  2. 0003539B:  69C6 B6000000              IMUL    EAX, ESI, B6
  3. 000353A1:  66:83B8 A4010700 C8        CMP     [WORD DS:EAX+701A4], FFC8
  4. 000353A9:  EB 09                      JMP     SHORT 000353B4
  5. 000353AB:  66:C780 A4010700 C800      MOV     [WORD DS:EAX+701A4], C8
  6. 000353B4:  69C6 B6000000              IMUL    EAX, ESI, B6
  7. 000353BA:  66:83B8 A6010700 C8        CMP     [WORD DS:EAX+701A6], FFC8
  8. 000353C2:  EB 09                      JMP     SHORT 000353CD
复制代码

我这里反汇编出来的结果是与FFC8比较,应该是你用的反汇编工具在扩展的时候跟dos不一致,推荐用C32ASM。如果改成正确的C800字节数就不够了,等我考虑一下有没有折中的办法。
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2011-10-12 17:24 | 显示全部楼层
jle是有符号小于等于跳转,针对你的情况可以用无符号小于等于跳转即JBE,比较时还是用byte类型。
  1. 00035381:  66:0183 B8010700           ADD     [WORD DS:EBX+701B8], AX
  2. 00035388:  80BB A2010700 C8           CMP     [BYTE DS:EBX+701A2], C8
  3. 0003538F:  90                         NOP
  4. 00035390:  76 09                      JBE     SHORT 0003539B
  5. 00035392:  66:C783 A2010700 C800      MOV     [WORD DS:EBX+701A2], C8
  6. 0003539B:  69C6 B6000000              IMUL    EAX, ESI, B6
  7. 000353A1:  80B8 A4010700 C8           CMP     [BYTE DS:EAX+701A4], C8
  8. 000353A8:  90                         NOP
  9. 000353A9:  76 09                      JBE     SHORT 000353B4
  10. 000353AB:  66:C780 A4010700 C800      MOV     [WORD DS:EAX+701A4], C8
  11. 000353B4:  69C6 B6000000              IMUL    EAX, ESI, B6
  12. 000353BA:  80B8 A6010700 C8           CMP     [BYTE DS:EAX+701A6], C8
  13. 000353C1:  90                         NOP
  14. 000353C2:  76 09                      JBE     SHORT 000353CD
复制代码



【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
 楼主| 发表于 2011-10-12 17:51 | 显示全部楼层
weyl 发表于 2011-10-12 17:24
jle是有符号小于等于跳转,针对你的情况可以用无符号小于等于跳转即JBE,比较时还是用byte类型。

差那麼一點,那就是無符號條件跳轉指令限制不了 200 的問題!
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2011-10-12 18:52 | 显示全部楼层
o? 那现在是什么现象?
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
 楼主| 发表于 2011-10-12 19:00 | 显示全部楼层
本帖最后由 jerry8192 于 2011-10-12 19:01 编辑
weyl 发表于 2011-10-12 18:52
o? 那现在是什么现象?

跟我那個發過的六當家有同樣的現象!



【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2011-10-12 19:20 | 显示全部楼层
把你的z.exe和存档发上来,我试试看
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2011-10-12 20:59 | 显示全部楼层
  1. 00035388:  90                         NOP
  2. 00035389:  80BB A2010700 C8           CMP [BYTE DS:EBX+701A2],C8
  3. 00035390:  76 09                      JBE SHORT 0003539B
  4. 00035392:  66:C783 A2010700 C800      MOV [WORD DS:EBX+701A2],C8
  5. 0003539B:  69C6 B6000000              IMUL EAX,ESI,B6
  6. 000353A1:  90                         NOP
  7. 000353A2:  80B8 A4010700 C8           CMP [BYTE DS:EAX+701A4],C8
  8. 000353A9:  76 09                      JBE SHORT 000353B4
  9. 000353AB:  66:C780 A4010700 C800      MOV [WORD DS:EAX+701A4],C8
  10. 000353B4:  69C6 B6000000              IMUL EAX,ESI,B6
  11. 000353BA:  90                         NOP
  12. 000353BB:  80B8 A6010700 C8           CMP [BYTE DS:EAX+701A6],C8
  13. 000353C2:  76 09                      JBE SHORT 000353CD
  14. 000353C4:  66:C780 A6010700 C800      MOV [WORD DS:EAX+701A6],C8
复制代码

因为pe文件中有一设置内存地址的重定位表,所以不能修改表示内存地址的双字的位置。把nop放在比较语句的前面可以满足。
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
 楼主| 发表于 2011-10-12 19:36 | 显示全部楼层
weyl 发表于 2011-10-12 19:20
把你的z.exe和存档发上来,我试试看

OK! 試試看!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要成为铁血侠客

x
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2011-10-12 20:14 | 显示全部楼层
升级前的存档也发一下
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
 楼主| 发表于 2011-10-12 20:17 | 显示全部楼层
本帖最后由 jerry8192 于 2011-10-12 20:19 编辑
weyl 发表于 2011-10-12 20:14
升级前的存档也发一下

再試一次!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要成为铁血侠客

x
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
 楼主| 发表于 2011-10-12 13:59 | 显示全部楼层
本帖最后由 jerry8192 于 2011-10-12 14:05 编辑

我已經改成長整數(-32768~32767),攻防輕已經調到200,打敗敵人升級時,這三種屬性最大值怎麼超過200(201~206)!其他都沒問題!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要成为铁血侠客

x
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2011-10-12 13:35 | 显示全部楼层
可能是数据的定义部分没有改吧,如果一直用短整数当然固定在127
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
 楼主| 发表于 2011-10-12 07:06 | 显示全部楼层
本帖最后由 jerry8192 于 2011-10-12 09:18 编辑

之前有抓過"除去生命内力,攻擊輕功防禦最大上限的補丁!",現在已經找不到!(在 chaoliu 論壇裡)
內力和生命 最大上限 由原來的999變為9999
可以升級 吃長生命內力最打上限的藥品 或練加生命內力最大上限的書籍 直接
提高  
攻擊 輕功 防禦 的最大上限由原來的100變為255
同樣可以升級 練祕籍 吃藥直接提高
至於拳掌 刀法 劍術 等 我看100已經足夠 再大就亂了

http://hh8.ys168.com/(抱歉!文件已經刪除!)
代碼說明
-----------------------------------------------
a    使用寄存器eax                        m    使用内存地址
b    使用寄存器ebx                        o    使用内存地址並可以加偏移值
c    使用寄存器ecx                        I    使用常數0-31
d    使用寄存器edx                        J    使用常數0-63
S    使用esi                              K    使用常數0-255
D    使用edi                              L    使用常數0-65535
q    使用動態分配字節可尋址寄存器
   (eax、ebx、ecx或edx)               M    使用常數0-3
r    使用任意動態分配的寄存器             N    使用1字節常數(0-255)
g    使用通用有效的地址即可
   (eax、ebx、ecx、edx或内存变量)     O    使用常數0-31
A    使用eax與edx聯合(64位)
能不能像生命、內力最大值那樣子修改,介於 -32768~32767,也可以限制到 200!
我改了好幾百次,攻擊、輕功、防禦的最大上限怎麼還是127,那不就是寄存器的問題!



【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2011-10-12 14:38 | 显示全部楼层
jle改jmp不是变成无条件跳转了吗?说说你的思路
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
 楼主| 发表于 2011-10-12 15:06 | 显示全部楼层
本帖最后由 jerry8192 于 2011-10-12 15:23 编辑

抱歉!改錯地方,還原成有條件跳轉(JLE)!
在 35371 處
imul ebx,esi,000000B6 改成 imul ebx,edx,000000B6
在 3539B, 353B4 處
imul eax,esi,000000B6 改成 imul eax,edx,000000B6
最頭疼的奇怪問題!要怎麼介於 0~255 還是 -32768~32767?
我覺得跟 CMP 指令有關係!
執行遊戲結果,攻防輕屬性最大值還是超過 200(201~206),問題依舊!



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要成为铁血侠客

x
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
 楼主| 发表于 2011-10-12 15:42 | 显示全部楼层
本帖最后由 jerry8192 于 2011-10-12 15:55 编辑
weyl 发表于 2011-10-12 15:23
感觉代码上没什么问题,身上有装备吗?

沒有配過!只有刀、劍,裝甲三項而已!如果配真武劍,把攻擊力 20 改為 128,人物攻擊屬性 127,加起來那不就是 255,這未免改得太誇張!連小兵一砍,一擊斃命!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要成为铁血侠客

x
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2011-10-12 15:23 | 显示全部楼层
感觉代码上没什么问题,身上有装备吗?
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。

本版积分规则

小黑屋|手机版|铁血丹心

GMT+8, 2024-5-18 03:24

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表