Board logo

标题: 增加一个能力档的详细改法 [打印本页]

作者: star175    时间: 2008-4-26 17:31     标题: 增加一个能力档的详细改法

在论坛里不断有网友询问如何增加能力档,对于这个问题,一直也没有看到很全面的解答,我个人曾经研究过这个问题,略作说明,不足之处还请指正。
以下的代码和说明均是以我发部的exe第四次修改版为例子。

由于我的exe第四次修改版已经增加了一个X能力档,在这里为了比较好的说明这个改法,就以再增加一个D能力档为例子说明。

目前exe第四次修改版的能力成长档为
                X          S         A          B         C
合格条件  100     90-98     80-88    70-78      
合格成长   5           4         3          2         1


完美条件                         100        90      100
完美成长                          4           3        3


假设现在需要修改为
                X         S            A            B           C          D
合格条件  100     90-98     80-88      70-78     60-68  
合格成长   6          5            4            3           2          1


完美条件                          100         90        100         90
完美成长                            5            4          4           3


步骤一:
用UE打开exe,按照图中的位置修改文字内容:
修改前:
图1
[attach]59963[/attach]
修改后:
图2
[attach]59964[/attach]
把这几个字母的UE位置记下来,然后关闭UE

步骤二:

先修改能力成长代码,用ollydbg打开exe,写代码:
0040736D  |.  3C 32            CMP AL,32                         ;  50×2=100
0040736F  |.  7C 04            JL SHORT Ekd5.00407375
00407371      B0 06            MOV AL,6
00407373  |.  EB 29            JMP SHORT Ekd5.0040739E
00407375  |>  3C 2D            CMP AL,2D                         ;  45×2=90
00407377  |.  7C 04            JL SHORT Ekd5.0040737D
00407379      B0 05            MOV AL,5
0040737B  |.  EB 21            JMP SHORT Ekd5.0040739E
0040737D  |>  3C 28            CMP AL,28                         ;  40×2=80
0040737F  |.  7C 04            JL SHORT Ekd5.00407385
00407381      B0 04            MOV AL,4
00407383  |.  EB 19            JMP SHORT Ekd5.0040739E
00407385  |>  3C 23            CMP AL,23                         ;  35×2=70
00407387  |.  7C 04            JL SHORT Ekd5.0040738D
00407389      B0 03            MOV AL,3
0040738B  |.  EB 11            JMP SHORT Ekd5.0040739E
0040738D      3C 1E            CMP AL,1E                         ;  30×2=60
0040738F      7C 04            JL SHORT Ekd5.00407395
00407391      B0 02            MOV AL,2
00407393      EB 09            JMP SHORT Ekd5.0040739E
00407395      B0 01            MOV AL,1                          ;  小于60的跳转到这里  增加1点
00407397  |.  90               NOP
00407398      90               NOP
00407399      90               NOP
0040739A  |.  90               NOP
0040739B  |.  90               NOP
0040739C  |.  90               NOP
0040739D  |.  90               NOP
0040739E  |>  8BE5             MOV ESP,EBP
004073A0  |.  5D               POP EBP
004073A1  \.  C2 0400          RETN 4
这里改好以后,人物升级时的能力成长就已经可以了,就是这么简单,但显示还是不行,所以还要改显示方面的代码。

步骤三:

修改显示代码
由于现在有六档能力,所以先要找一段6×4=24字节的空间。我的exe里有很多空间,我都是用90填充了,用Ctrl+B,找字节,
随意输入几个90,确定,就会跳到一些代码为都是90的地方,数到有24字节以上的地方就可以拿来用了。
图三:
[attach]59965[/attach]
我用了406A55处的位置。
现在看一下刚才记下的字母在Ue中的位置
Ue地址
X  8AEDA      
S  8AED8
A  8AED6
B  8AED4
C  8AED2
D  8AED0


在这里ob地址=Ue地址+401600
根据这个计算出ob的地址来
OB地址
X  0048C4DA
S  0048C4D8
A  0048C4D6
B  0048C4D4
C  0048C4D2
D  0048C4D0


在406A55处点一下,在Ctrl+E,进入二进制编辑窗口,输入二进制代码,注意转移顺序要颠倒过来。
图四
[attach]59966[/attach]

下面是一个很重要的自定义函数(这个函数在我的exe里已经有了,如果要在别的exe里改,需要找20字节的空间):

00406CC9  /$  55               PUSH EBP
00406CCA  |.  8BEC             MOV EBP,ESP
00406CCC  |.  25 FF000000      AND EAX,0FF
00406CD1  |.  2C 00            SUB AL,0
00406CD3      3C 06            CMP AL,7                             ;  由于最高成长为6,所以这里是7,可以根据实际情况修改
00406CD5  |.  72 02            JB SHORT Ekd5.00406CD9               ;  小于7跳转,什么都不做
00406CD7  |.  B0 05            MOV AL,6                             ;  大于等于7都设为6,这里也可根据实际情况修改
00406CD9  |>  8BE5             MOV ESP,EBP
00406CDB  |.  5D               POP EBP
00406CDC  \.  C3               RETN

这个函数的一个作用是把大于7数值都设为6,这样当你在data中把某项能力设为7或更大时,就不会出现汉字的情况了。

还有一处需要注意:

00406CD1  |.  2C 00            SUB AL,0
这一句代码看上去似乎是多余的,现在也确实如此,这是因为我们现在的成长是从1开始计数的,如果是想岳飞传那样的4、5、6、8,最低档为4,就要靠这一
句来调整了,顺便说一下,在岳飞传里的这一句是 SUB AL,3,大家可以想一想为什么。
以上就是这个自定义函数的两个主要作用了。

步骤四:

在exe里调用这个函数的地方共有5处,就是兵种的五项能力成长了
图五:
[attach]59967[/attach]
这五个地方作用是一样的,就是通过自定义函数返回的值去找到相应的字母位置以表示兵种某项能力档,现在我们先来看一下477Cf7:

00477CF7  |.  E8 CDEFF8FF   CALL GEkd5.00406CC9                      ; 自定义函数,返回eax
00477CFC  |.  8B1485 516A40>MOV EDX,DWORD PTR DS:[EAX*4+406A51]
00477D03  |.  52            PUSH EDX                                 ; /Text

关键的位置在

0477CFC  |.  8B1485 516A40>MOV EDX,DWORD PTR DS:[EAX*4+406A51]

假设兵种的某项能力为1(eax)
EAX*4+406A51=406A55,这个位置就是我们刚才输入了24个字节的起始位置,而它的值就是0048C4D0,也就是字母D在exe里的ob地址了,这样此兵种
的该项能力成长就显示为D了。

以下依葫芦画瓢,修改其余的4处,就可以了。

00477CF7  |.  E8 CDEFF8FF   CALL GEkd5.00406CC9
00477CFC  |.  8B1485 516A40>MOV EDX,DWORD PTR DS:[EAX*4+406A51]

00477D30  |.  E8 94EFF8FF   CALL GEkd5.00406CC9
00477D35  |.  8B0485 516A40>MOV EAX,DWORD PTR DS:[EAX*4+406A51]

00477D69  |.  E8 5BEFF8FF   CALL GEkd5.00406CC9
00477D6E  |.  8B0C85 516A40>MOV ECX,DWORD PTR DS:[EAX*4+406A51]

00477DA0  |.  E8 24EFF8FF   CALL GEkd5.00406CC9
00477DA5  |.  8B1485 516A40>MOV EDX,DWORD PTR DS:[EAX*4+406A51]

00477DD9  |.  E8 EBEEF8FF   CALL GEkd5.00406CC9
00477DDE  |.  8B0485 516A40>MOV EAX,DWORD PTR DS:[EAX*4+406A51]

注意:需要说明的是改这几处代码最好是用Ctrl+E用二进制模式改,用汇编模式改会多占用调一个字节,会把下面一句给冲掉,不注意的话就出错了


修改完毕。

[ 本帖最后由 star175 于 2008-4-26 17:39 编辑 ]

图片附件: 01.jpg (2008-4-26 17:31, 12.03 K) / 该附件被下载次数 273
http://xycq.org.cn/forum/attachment.php?aid=59963



图片附件: 02.jpg (2008-4-26 17:31, 12.7 K) / 该附件被下载次数 258
http://xycq.org.cn/forum/attachment.php?aid=59964



图片附件: 03.jpg (2008-4-26 17:31, 10.49 K) / 该附件被下载次数 249
http://xycq.org.cn/forum/attachment.php?aid=59965



图片附件: 04.jpg (2008-4-26 17:31, 13.49 K) / 该附件被下载次数 241
http://xycq.org.cn/forum/attachment.php?aid=59966



图片附件: 05.jpg (2008-4-26 17:31, 6.06 K) / 该附件被下载次数 229
http://xycq.org.cn/forum/attachment.php?aid=59967


作者: BCWCNQJ    时间: 2008-4-26 19:13

STAR越来越牛了....
作者: 37610716    时间: 2008-4-26 19:43

这个的确,但他也不象有些人很大的架子,基本上别人问什么回答什么,没有什么觉得不耐烦的语气。
作者: 神的儿子    时间: 2008-4-26 23:27

看着有点晕, 但还是撑下去学吧.
作者: qw65    时间: 2008-4-27 07:09

我想了好久,现在马上回去试试
作者: 战神奉先    时间: 2008-4-27 07:13     标题: 回复 #5 dzbcorg0804 的帖子

含有广告成分
作者: longxinghen    时间: 2008-4-27 10:27

真是厉害啊,
学习学习
作者: yanguodong    时间: 2008-4-27 14:20

楼主进步很快呀关于能力显示以前我还是请教周瑜才弄明白的
作者: csydemon    时间: 2008-4-27 19:00

恩 恩 恩 看了半天 好象有点点懂了 谢谢~!
作者: winrar2008    时间: 2008-4-27 21:06

佩服楼上的,我看半天一点也没看懂
作者: 37610716    时间: 2008-4-30 07:33

前面的可以照葫芦画瓢改,后面的就不懂了,如果楼主能跟上UE的修改方法就.....
作者: paro    时间: 2008-5-21 20:32

收藏之,现在正用了!
OB虽然能用但是函数的意义一点也不明白!
作者: 37610716    时间: 2008-5-21 20:57     标题: 回复 #12 paro 的帖子

那你就照葫芦画瓢吧!
作者: 大鸟劲生    时间: 2008-5-23 19:13

佩服LZ   不过还是有点不明白  决定 再去研究
作者: 乱世枭雄    时间: 2008-6-2 08:56     标题: 帮忙看看好吗?

我已经初步改好了,本来是想把X成长改为9的,但是进入游戏点击人物右键查看的时候就出错弹出,所以只好改为8的成长了,还有我改的这个 我发现成长还是有问题,就拿曹操来说吧,我改的A(80-88)的成长是6,data文件里设置的也是6,但是实际升级的时候他5围中属性是90以上的升级时成长变成了我设置的S(90-98)的7的成长了,还有其他的人也是这样,不知道说明问题,有可能是我画葫芦画错了,能请你帮我看看吗?如果可以的话,麻烦你帮我改正其中错误的地方,把成长改为X10,S8,A6,B5,C4,D3,并且告诉我完美成长的条件及数值,因为我看不出它自动的数值是多少,谢谢,给你添麻烦了,如能帮忙改好,小弟感激不尽!

            X          S         A          B            C          d
合格条件   100     90-98    80-88    70-78     60-68      60-
合格成长   10           8        6          5         4             3

完美条件     ?      ?     100         90       100         ?
完美成长     ?      ?      ?        ?          ?          ?

(上面的完美条件及完美成长的数值还请一并告之,谢谢)

[ 本帖最后由 乱世枭雄 于 2008-6-2 22:06 编辑 ]

附件: 我改的文件.rar (2008-6-2 22:06, 229.81 K) / 该附件被下载次数 312
http://xycq.org.cn/forum/attachment.php?aid=61847
作者: geming060    时间: 2008-6-2 09:19

为了实现自己的MOD努力学下去吧!
作者: 爱咋咋地    时间: 2008-6-2 09:56

能不能将改好后的EXE文件发上来啊!
作者: godtype    时间: 2008-6-2 13:25     标题: 回复 #15 乱世枭雄 的帖子

正确的成长公式是:(个人成长+兵种成长(即DATA的设值))/2
所以(8+6)/2=7。
没有错的。

X设定为9会出错?应该不可能吧,我照这份教程帮东吴改了新成长档都没有问题。
作者: 乱世枭雄    时间: 2008-6-2 16:47     标题: 回复 #18 godtype 的帖子

我也不知道为什么,但是在DATA里改了大将军的攻击为9进入游戏右键查看攻击力为X的人物的时候就会弹出,如果你有空的话,也请帮我看看怎么回事,感激不尽!
作者: 乱世枭雄    时间: 2008-6-2 18:00



QUOTE:
原帖由 godtype 于 2008-6-2 13:25 发表
正确的成长公式是:(个人成长+兵种成长(即DATA的设值))/2
所以(8+6)/2=7。
没有错的。

X设定为9会出错?应该不可能吧,我照这份教程帮东吴改了新成长档都没有问题。

我原来设定的是X8,S7,A6.。。。的,所以按照你这个公式算的话应该是(7+6)/2=6.5,难道是四舍五入变成7这样算吗,我不知道是不是这样的算法,还请指点一二啊,谢谢!
另外同样是曹操,我改成智力和统帅100的话,升一级智力和统帅成长就变成11的成长了,这个是完美成长的增量吗?
作者: godtype    时间: 2008-6-2 21:37     标题: 回复 #20 乱世枭雄 的帖子

你发的附件无论怎样看都还是旧的5档人物成长(最高值5),何来6档?何来成长7?
配上你的DATA,就更别说11的成长。

另外曹操传中所有计算得出的数值的小数点后都省去,只算整数部分。
作者: 乱世枭雄    时间: 2008-6-2 21:59

难道是我发错了,我测试看看再发上来
作者: godtype    时间: 2008-6-3 08:30     标题: 回复 #22 乱世枭雄 的帖子

00406CD1  |. 2C 02                   SUB AL,2
00406CD3     3C 09                   CMP AL,9
00406CD5  |. 72 02                   JB SHORT 00406CD9
00406CD7     B0 08                   MOV AL,8

修改上面的红色部分,DATA中可以设回9以上数值(9以上全显示为X)

附件是你的EXE的详细成长档。

[ 本帖最后由 godtype 于 2008-6-3 08:33 编辑 ]

图片附件: 0.GIF (2008-6-3 08:30, 8.89 K) / 该附件被下载次数 198
http://xycq.org.cn/forum/attachment.php?aid=61888


作者: 乱世枭雄    时间: 2008-6-3 17:03     标题: 回复 #23 godtype 的帖子

非常感谢,现在已经改好了~你的热心帮助我不会忘记的!
另外我还想改一下这个EXE里的破甲攻击,就是完全改成和岳飞传里的那样。按照帖子我只能改成固定数值,但是还是跟最大HP有关,现在不最大怎么去掉这个,还请你指点一下~谢谢

[ 本帖最后由 乱世枭雄 于 2008-6-3 17:13 编辑 ]

图片附件: screenshot1.GIF (2008-6-3 17:13, 195.67 K) / 该附件被下载次数 239
http://xycq.org.cn/forum/attachment.php?aid=61909



图片附件: screenshot2.GIF (2008-6-3 17:13, 206.77 K) / 该附件被下载次数 212
http://xycq.org.cn/forum/attachment.php?aid=61910


作者: godtype    时间: 2008-6-3 21:57     标题: 回复 #24 乱世枭雄 的帖子

请作者Star175回答。
作者: yejingtang    时间: 2009-4-2 09:13

头都晕~~
作者: lgk100    时间: 2009-4-2 12:46

修改岳飞传时发现:
如果把某单位的五围改超过100,也能按提两档加一的成长。
这也是因为加了能力档吗?
作者: squall122    时间: 2009-4-2 14:40

正好最近想研究这方面,受教了
作者: star175    时间: 2009-4-2 16:38

这个古董都被挖出来了
5.1版的地址已经改变,此方法不再适用
作者: renson007    时间: 2009-10-19 00:36

我用原版的曹操传按照LZ的方法试了下,结果出错
步骤一和二基本一样
步骤三因为原版的406A55处没有空位,我用了485DD3(UE地址是851D3)这个空白位置
步骤四用了485DEB后面的空白位置
画瓢的地方我是这样改的

00477CF7  |.  E8 CDEFF8FF   CALL GEkd5.00485DEB(其中GEkd5中的“G”米有显示出来)
00477CFC  |.  8B1485 516A40>MOV EDX,DWORD PTR DS:[EAX*4+485DCF]
(485DCF这个位置是根据LZ的换算方法自己瞎算的,即485DD3-EAX*4=485DCF,不知对不对?)
所有修改保存后,结果就打不开了,文件出错了

附上修改的文件,麻烦帮忙看一下哪里改错?该怎么改?

附件: 1Ekd5.rar (2009-10-19 00:36, 208.04 K) / 该附件被下载次数 203
http://xycq.org.cn/forum/attachment.php?aid=82830
作者: 欧洋    时间: 2011-11-26 09:19

看不懂!!!!!!!!!!!!!!!!
作者: 欧洋    时间: 2011-11-26 09:19

谁能教教我啊!!!!!!!!!!!
作者: 欧洋    时间: 2011-11-26 09:19

没有人吗?????????????????
作者: 子墨虚乌有    时间: 2012-10-27 21:52

现在 5.8 的 exe 该如何修改 找不到 代码在哪一段啊
作者: godtype    时间: 2012-10-28 12:52



QUOTE:
原帖由 子墨虚乌有 于 2012-10-27 21:52 发表
现在 5.8 的 exe 该如何修改 找不到 代码在哪一段啊

大部分改法不变。不同的是以下几点:
1、步骤二的代码全部放在4072F2里面。
2、步骤三的406CC9改成406CA8。
3、步骤四的几条带 EAX*4+406A51 代码全部调整到47816E里面,只要改
004781B1  |. FF3485 11BA420>PUSH DWORD PTR DS:[EAX*4+42BA11]
004781B8  |. FF348D 11BA420>PUSH DWORD PTR DS:[ECX*4+42BA11]
004781DF  |> 8B1485 11BA420>MOV EDX,DWORD PTR DS:[EAX*4+42BA11]
这三条即可。
作者: 子墨虚乌有    时间: 2012-10-29 16:36

如图 没有位置扩充了 怎么办呢

图片附件: [实际图] 1.png (2012-10-29 16:36, 15.7 K) / 该附件被下载次数 124
http://xycq.org.cn/forum/attachment.php?aid=124238


作者: godtype    时间: 2012-10-29 16:59

没位置就要去找空白位置,然后JMP出去改写,这个是引擎修改的必备基本知识。
作者: g0960533573    时间: 2012-11-1 22:13     标题: 回复 #1 star175 的帖子

头都晕~~
不过受教了~~
作者: vieri8108    时间: 2014-5-4 20:06

对着试一下

[ 本帖最后由 vieri8108 于 2014-5-4 20:11 编辑 ]
作者: 59054695    时间: 2014-5-27 13:18     标题: 回复 #35 godtype 的帖子

请问6.0步骤四是哪个位置呢
作者: 59054695    时间: 2014-10-18 19:12     标题: 回复 #1 star175 的帖子

请教一下,6.0的改法是不是和5.9一样?5.9改成功了,6.0失败了。
作者: star175    时间: 2014-10-20 11:55

6.0 和5.9一样
作者: li448588879    时间: 2015-7-16 10:44

大神好牛啊!按着大神的教程成功在原版曹操传里增加了X档~~
作者: vieri8108    时间: 2016-3-28 21:43

6.1版的步骤4好像不一样了啊?我把第三行的00472DDF 改成了00472DDB,结果一旦切到有最低一档能力的兵种就退出游戏。
00478194  |.  E8 11EBF8FF   CALL Ekd5.00406CAA
00478199  |.  8B4D F8       MOV ECX,DWORD PTR SS:[EBP-8]
0047819C  |.  BA DB2D4700   MOV EDX,Ekd5.00472DDB
004781A1  |.  3AC1          CMP AL,CL
004781A3  |.  74 2F         JE SHORT Ekd5.004781D4
004781A5  |.  FF3482        PUSH DWORD PTR DS:[EDX+EAX*4]
004781A8  |.  FF348A        PUSH DWORD PTR DS:[EDX+ECX*4]
004781AB  |.  77 0B         JA SHORT Ekd5.004781B8
004781AD  |.  B8 A7035000   MOV EAX,Ekd5.005003A7
004781B2  |.  C645 FC 2B    MOV BYTE PTR SS:[EBP-4],2B
004781B6  |.  EB 09         JMP SHORT Ekd5.004781C1
004781B8  |>  B8 A0035000   MOV EAX,Ekd5.005003A0
004781BD  |.  C645 FC 3B    MOV BYTE PTR SS:[EBP-4],3B
004781C1  |>  50            PUSH EAX                                 ; |Format
004781C2  |.  8D55 EC       LEA EDX,DWORD PTR SS:[EBP-14]            ; |
004781C5  |.  52            PUSH EDX                                 ; |s
004781C6  |.  FF15 C0624800 CALL DWORD PTR DS:[<&USER32.wsprintfA>]  ; \wsprintfA
004781CC  |.  83C4 10       ADD ESP,10
004781CF  |.  8D45 EC       LEA EAX,DWORD PTR SS:[EBP-14]
004781D2  |.  EB 07         JMP SHORT Ekd5.004781DB
004781D4      8B0482        MOV EAX,DWORD PTR DS:[EDX+EAX*4]
作者: godtype    时间: 2016-5-14 17:34

6.1版改法(红色部分为我另外改的,可省部分操作)
========================
看不明白的请找其他看得明白的人解释。
========================
步骤一不变

步骤二在4072F2

步骤三只需要在步骤一写入新的SABC字符即可,不用再找一段N×4字节的空间。
本例子是将SABC字符改写在从472DE3开始的位置。
这里472DE3指向的是最低档的字符,但是在代码中要改成最低档字符的位置减2。

另外函数406CC9在406CAA。

步骤四需修改下面代码
0047819C  |. BA E12D4700    MOV EDX,00472DE1   <===注意步骤三的说明

004781A5  |. 52             PUSH EDX
004781A6  |. 8D55 FC        LEA EDX,DWORD PTR SS:[EBP-4]
004781A9  |. 52             PUSH EDX
004781AA  |. E8 3149F9FF    CALL 0040CAE0   <===注意这里要另外找空白位置写新函数,这里提供的位置仅供参考
004781AF  |. 52             PUSH EDX
004781B0  |. 51             PUSH ECX
004781B1  |. 90             NOP
004781B2  |. 90             NOP
004781B3  |. 90             NOP
004781B4  |. 90             NOP
004781B5  |. 90             NOP
004781B6  |. 90             NOP
004781B7  |. 90             NOP
004781B8  |. 90             NOP
004781B9  |. 90             NOP
004781BA  |. 90             NOP
004781BB  |. 90             NOP
004781BC  |. 90             NOP
004781BD  |. 90             NOP
004781BE  |. 90             NOP
004781BF  |. 90             NOP
004781C0  |. 90             NOP

004781D4  |> 8D0442         LEA EAX,DWORD PTR DS:[EDX+EAX*2]

0040CAE0  /$ 55             PUSH EBP
0040CAE1  |. 8BEC           MOV EBP,ESP
0040CAE3  |. 51             PUSH ECX
0040CAE4  |. 50             PUSH EAX
0040CAE5  |. 8B55 0C        MOV EDX,DWORD PTR SS:[EBP+C]
0040CAE8  |. 8D0442         LEA EAX,DWORD PTR DS:[EDX+EAX*2]
0040CAEB  |. 50             PUSH EAX
0040CAEC  |. 8D0C4A         LEA ECX,DWORD PTR DS:[EDX+ECX*2]
0040CAEF  |. 51             PUSH ECX
0040CAF0  |. 8B4D FC        MOV ECX,DWORD PTR SS:[EBP-4]
0040CAF3  |. 8B45 F8        MOV EAX,DWORD PTR SS:[EBP-8]
0040CAF6  |. 3AC1           CMP AL,CL
0040CAF8  |. 77 0D          JA SHORT 0040CB07
0040CAFA  |. 8B55 08        MOV EDX,DWORD PTR SS:[EBP+8]
0040CAFD  |. C602 2B        MOV BYTE PTR DS:[EDX],2B
0040CB00  |. B8 A7035000    MOV EAX,005003A7
0040CB05  |. EB 0B          JMP SHORT 0040CB12
0040CB07  |> 8B55 08        MOV EDX,DWORD PTR SS:[EBP+8]
0040CB0A  |. C602 3B        MOV BYTE PTR DS:[EDX],3B
0040CB0D  |. B8 A0035000    MOV EAX,005003A0
0040CB12  |> 8B55 F4        MOV EDX,DWORD PTR SS:[EBP-C]
0040CB15  |. 8B4D F0        MOV ECX,DWORD PTR SS:[EBP-10]
0040CB18  |. 8BE5           MOV ESP,EBP
0040CB1A  |. 5D             POP EBP
0040CB1B  \. C2 0800        RETN 8


完毕。

追加补充:STAR原来的代码和此改法均仅对应单字节的字符,如果要设置成双字节的字符(例如A+),一般不建议(因为实际的显示效果会不够长,需要自己另外调整界面格局),实在要改就要将上面的代码中所有*2的进行代码调整(不能简单地改成*3)。

[ 本帖最后由 godtype 于 2016-5-14 23:01 编辑 ]
作者: a2197810    时间: 2016-5-14 18:17     标题: 回复 #45 godtype 的帖子

谢谢大神讲解 回去我慢慢看
作者: luojianpiaofeng    时间: 2016-5-14 21:05



QUOTE:
原帖由 godtype 于 2016-5-14 17:34 发表
6.1版改法(红色部分为我另外改的,可省部分操作)
========================
步骤一不变

步骤二在4072F2

步骤三只需要在步骤一写入新的SABC字符即可,不用再找一段N×4字节的空间。
本例子就改写在47 ...

毅大如此敬业,乃是我等小白的福音。
作者: 完颜大神威    时间: 2016-5-14 21:36     标题: 回复 #45 godtype 的帖子

步骤三整段都看不懂,恳求再解释一下可好?在472DE3改什么?我添加7能力档UE转换后472DE3那的地址用二进制编辑位置不够咋办?
作者: godtype    时间: 2016-5-14 23:02

修改部分说明,以后不再回复,包括未来不确定是否存在的版本。
作者: ★天空★    时间: 2016-5-15 16:54

多谢毅大的具体解释,哪天会去试一试。

加注:真是太感谢毅大的解释了,我6.1成功修改了!

[ 本帖最后由 ★天空★ 于 2016-5-22 00:13 编辑 ]
作者: wangba    时间: 2016-5-19 22:13


作者: kasimmax    时间: 2016-5-27 22:41

6.1引擎成功增加能力档了…………各位专家果然都是好手段!!!
作者: 陈溪    时间: 2016-6-5 09:27

厉害呀
作者: okokwori    时间: 2024-9-30 09:10

原版改的老出错




欢迎光临 轩辕春秋文化论坛 (http://xycq.org.cn/forum/) Powered by Discuz! 5.0.0