标题:
请教1下CCZ原版,许子将教学后给全宝的宝物等级如何修改?
[打印本页]
作者:
jjnxx
时间:
2012-10-15 10:44
标题:
请教1下CCZ原版,许子将教学后给全宝的宝物等级如何修改?
原版收到的全部宝物都是3级,不管曹操自己等级如何。
想改成,收到的全部宝物的等级,和曹操自己的等级挂钩,也就是说如果曹操1上来是50级,那么收到的全部宝物就都是9级MAX,这样。
目前知道这需要通过修改EXE来实现。
看了下以前的贴子,也有朋友提到过想修改这个。
http://www.xycq.net/forum/viewth ... =%D0%ED%D7%D3%BD%AB
不过贴子里GODTYPE贴出来的代码,我确实无法看懂。
请教有没有稍微更详细点的修改方法?
作者:
WHITESHIP
时间:
2012-10-15 11:15
这段我也看不懂,毅大改过的代码倒是易懂了。都是加加减减,没有PUSH的。
原版曹操传调试起来太麻烦,我就没去试了。
00434EF1 |. 83E8 02 |SUB EAX,2 ; |
00434EF8 |. 24 04 |AND AL,4 ; |
我猜宝物等级应该在这两句里。
作者:
jjnxx
时间:
2012-10-15 11:43
标题:
回复 #2 WHITESHIP 的帖子
例如 00434EF1 是地址吧?
请问怎么用UE在EXE里找到 0043EF1这个地址?
我用UE打开EXE文件,只能找到 000 开头的地址,找不到00开头的地址,最后1行貌似也只到 0009E7FX
作者:
WHITESHIP
时间:
2012-10-15 11:49
标题:
回复 #3 jjnxx 的帖子
唔,UE和OD的地址是互相转化的。
原版曹操传里,OD地址=UE的地址+400C00。(具体规律我没摸透)
所以434eF1=342F1。
而我发的两句代码分别占2、3个字节,所以要往342F1后面2个,也就是 83 E8 02 的02。即342F3处。
以此类推,后面那个就在342F9两处。
[
本帖最后由 WHITESHIP 于 2012-10-15 11:51 编辑
]
作者:
jjnxx
时间:
2012-10-15 13:13
标题:
回复 #4 WHITESHIP 的帖子
多谢啦。
地址会找了,不过真要修改的话,是不是把这类值每个从00试到FF,试255次啊,然后查看结果
作者:
WHITESHIP
时间:
2012-10-15 13:23
为什么要试255次…………
试一次就行了啊,如果改了游戏里还是3级,就说明不是这里。
如果有反应再慢慢摸计算规律啊。
然后你改下剧本吧,直接在某个地方加入许子将教学,不用每次重开游戏。
最后就是注意备份,很容易改坏exe的。
作者:
513633522
时间:
2012-10-15 23:21
00434EA2 |> 8A45 FC /MOV AL,BYTE PTR SS:[EBP-4]
00434EA5 |. 04 01 |ADD AL,1
00434EA7 |. 8845 FC |MOV BYTE PTR SS:[EBP-4],AL
00434EAA |> 8B4D FC MOV ECX,DWORD PTR SS:[EBP-4]
00434EAD |. 81E1 FF000000 |AND ECX,0FF
00434EB3 |. 83F9 68 |CMP ECX,68
00434EB6 |. 7D 58 |JGE SHORT 00434F10
00434EB8 |. 8B4D FC |MOV ECX,DWORD PTR SS:[EBP-4]
00434EBB |. 81E1 FF000000 |AND ECX,0FF
00434EC1 |. 6BC9 19 |IMUL ECX,ECX,19
00434EC4 |. 81C1 40114A00 |ADD ECX,004A1140
00434ECA |. E8 3147FDFF |CALL 00409600
00434ECF |. 85C0 |TEST EAX,EAX
00434ED1 |. 74 3B |JE SHORT 00434F0E
00434ED3 |. 6A 00 |PUSH 0
00434ED5 |. 8B4D FC |MOV ECX,DWORD PTR SS:[EBP-4]
00434ED8 |. 81E1 FF000000 |AND ECX,0FF
00434EDE |. 6BC9 19 |IMUL ECX,ECX,19
00434EE1 |. 81C1 40114A00 |ADD ECX,004A1140
00434EE7 |. E8 FE77FDFF |CALL 0040C6EA
00434EEC |. 25 FF000000 |AND EAX,0FF ; |
00434EF1 |. 83E8 02 |SUB EAX,2 ; |
00434EF4 |. F7D8 |NEG EAX ; |
00434EF6 |. 1BC0 |SBB EAX,EAX ; |
00434EF8 |. 24 04 |AND AL,4 ; |
00434EFA |. 05 FF000000 |ADD EAX,0FF ; |
00434EFF |. 50 |PUSH EAX ; |Arg2
00434F00 |. 8A55 FC |MOV DL,BYTE PTR SS:[EBP-4] ; |
00434F03 |. 52 |PUSH EDX ; |Arg1
00434F04 |. B9 70074B00 |MOV ECX,004B0770 ; |
00434F09 |. E8 8E88FDFF |CALL 0040D79C ; \0040D79C
00434F0E |>^EB 92 \JMP SHORT 00434EA2
作者:
513633522
时间:
2012-10-15 23:23
标题:
回复 #7 513633522 的帖子
上楼时godtybe给出的地址
然后就可以分析了
等会 我贴出我分析的结果
作者:
513633522
时间:
2012-10-15 23:27
看图 我改成4级了 效果 图 我把第一关给搞定 看完剧情 进入第二关战前准备 浪费我的时间啊 为了测试分析结果
不能传图了!!
[
本帖最后由 513633522 于 2012-10-15 23:40 编辑
]
作者:
513633522
时间:
2012-10-15 23:28
获得全宝
00434EA2 |> /8A45 FC /MOV AL,BYTE PTR SS:[EBP-4] 计数
00434EA5 |. |04 01 |ADD AL,1
00434EA7 |. |8845 FC |MOV BYTE PTR SS:[EBP-4],AL
00434EAA |> |8B4D FC MOV ECX,DWORD PTR SS:[EBP-4]
00434EAD |. |81E1 FF000000 |AND ECX,0FF
00434EB3 |. |83F9 68 |CMP ECX,68 超出道具数量跳出
00434EB6 |. |7D 58 |JGE SHORT Ekd5.00434F10
00434EB8 |. |8B4D FC |MOV ECX,DWORD PTR SS:[EBP-4]
00434EBB |. |81E1 FF000000 |AND ECX,0FF
00434EC1 |. |6BC9 19 |IMUL ECX,ECX,19 *25
00434EC4 |. |81C1 40114A00 |ADD ECX,Ekd5.004A1140 注释1
00434ECA |. |E8 3147FDFF |CALL Ekd5.00409600 是否特殊宝物(是就是1)
00434ECF |. |85C0 |TEST EAX,EAX
00434ED1 |. |74 3B |JE SHORT Ekd5.00434F0E 不是特殊宝物 跳到下次循环
00434ED3 |. |6A 00 |PUSH 0
00434ED5 |. |8B4D FC |MOV ECX,DWORD PTR SS:[EBP-4]
00434ED8 |. |81E1 FF000000 |AND ECX,0FF
00434EDE |. |6BC9 19 |IMUL ECX,ECX,19
00434EE1 |. |81C1 40114A00 |ADD ECX,Ekd5.004A1140
00434EE7 |. |E8 FE77FDFF |CALL Ekd5.0040C6EA 武器类型
00434EEC |. |25 FF000000 |AND EAX,0FF
00434EF1 |. |83E8 02 |SUB EAX,2
00434EF4 |. |F7D8 |NEG EAX
00434EF6 |. |1BC0 |SBB EAX,EAX ; |
00434EF8 |. |24 04 |AND AL,4 ; |
00434EFA |. |05 FF000000 |ADD EAX,0FF ; |
00434EFF |. |50 |PUSH EAX 上面一段计算什么取反之类的我不懂 估计是等级 看注释2
00434F00 |. |8A55 FC |MOV DL,BYTE PTR SS:[EBP-4] ; |
00434F03 |. |52 |PUSH EDX
00434F04 |. |B9 70074B00 |MOV ECX,Ekd5.004B0770 参考注释1
00434F09 |. |E8 8E88FDFF |CALL Ekd5.0040D79C
00434F0E |>^\EB 92 \JMP SHORT Ekd5.00434EA2
注释1:
参考godtybe 如何使用Ollydbg修改曹操传引擎
6、其他一些从DATA中导入的内存地址
1)物品属性(68H个)
IMUL ECX,ECX,19
ADD ECX,004A1140
5、4B0770
也是常见的:MOV ECX,4B0770,从这里开始存放的内容也很重要,基本上都是存档中内容。
挑选几个简单说一下:
+6,即4B0776是章编号,0号武将的头像从第3章(章编号2)开始会从face.e5的第1-4张图片转用第5-8张图片,就是从这里判断的,当然具体的程序代码在其他地方。
C-F,即4B077C—4B077F是金钱的地址
+12,即4B0782是忠奸度
+13开始,即4B0783开始,每三位是一种武器或者防具或者辅助,一直到004B09DA为止。
其他的可以看岱瀛的帖,不多说了。
岱瀛:解读KOEI曹操传代码
从004A1140开始是武器等的本质属性的开始
004A1140-004A114F一共可以显示八个汉字 (16字节)
+10 结束符号
+11 武器类型
+12 价钱
+13 宝物图标
+14 特殊效果
+15 武器1级是多少值
+16 特殊效果值
+17 升一级加多少值
+18 是否特殊宝物(是就是1)
4B0783开始,每三位是一种武器或者防具或者辅助,一直到004B09DA为止,可以自己随便设置,代码见附1.
对于武器和防具第一位为代码,第二位为等级,第三位为该物品的经验值.对于辅助第一位为代码,第二位是ff,第三位是00.
注释2:
这些计算应该是为了对辅助宝物无等级的处理,
[
本帖最后由 513633522 于 2012-10-15 23:29 编辑
]
作者:
513633522
时间:
2012-10-15 23:31
00434EFF |. |50 |PUSH EAX 上面一段计算什么取反之类的我不懂 估计是等级 看注释2
把PUSH EAX 改成 PUSH 4就是全宝物等级为4
这个不影响游戏 连辅助都是4级 但不影响显示和效果 我看不懂那些计算 其实可以自己写个判断是否为辅助之类的函数
作者:
513633522
时间:
2012-10-15 23:34
标题:
临走赠言
其实这些东西根据前辈们给出的代码 加上各类大神教程贴 就能分析个差不多
翻翻帖子 问题还是能解决的
感谢大神们的神贴
作者:
513633522
时间:
2012-10-15 23:37
标题:
推卸错误责任
如果本人分析有错 ,本人不负任何责任,修改前请备份,毕竟本人只是个菜鸟
欢迎光临 轩辕春秋文化论坛 (http://xycq.org.cn/forum/)
Powered by Discuz! 5.0.0