轩辕春秋文化论坛 » 步步为营 » 请教,怎么修改三国志英杰传的基本策略伤害?


2015-2-8 16:47 minzh
请教,怎么修改三国志英杰传的基本策略伤害?

如题,我改了一年多的英杰传修改版,如今只有这个问题不能解决了,要适当修改基本策略伤害,如修改焦热200,猛火1000,山洪1200等等,将这些数值改小,如猛火只有800,山洪900等等,请教,这个的代码在哪里?

2015-2-8 18:33 阿尔法孝直
从main.exe的0x30C5E开始:
[quote][font=宋体]
30C5E:mov     al, [si+0Bh]             ;[si+0Bh]的高4位是策略类型,值为0=火,1=水,2=山;低4位是策略威力基数,值为0=低级策略(例如焦热、大漩涡),1=中级策略,2=高级策略
30C61:shr     al, 4
30C64:sub     ah, ah             ;获得AX=策略类型
30C66:mov     cl, [si+0Bh]
30C69:and     cx, 0Fh             ;获得CX=策略威力基数
30C6C:shl     cx, 2
30C6F:add     cx, ax
30C71:inc     cx
30C72:inc     cx
30C73:imul    ax, cx, 100             ;结果是策略基本威力=(策略威力基数*4+2+策略类型)*100
30C76:mov     [bp+var_8], ax
[/font][/quote]

如果是焦热(或大焦热),策略类型=0,策略威力基数=0,策略基本威力=(0*4+2+0)*100=200
如果是海啸,策略类型=1,策略威力基数=2,策略基本威力=(2*4+2+1)*100=1100

[color=Silver][[i] 本帖最后由 阿尔法孝直 于 2015-2-8 20:11 编辑 [/i]][/color]

2015-2-8 19:56 minzh
策略基本威力=(策略威力基数*4+2+策略类型)*100
这个公式中:
策略威力基数、4、2、策略类型、100分别在UltraEdit里面的代码是多少?是从0x30C5E开始吗?

2015-2-8 20:08 阿尔法孝直
0x30C5E开始的是上面那段代码,作用就是根据策略类型和策略威力基数算出策略基本威力。

2015-2-8 20:08 godtype
0x30C5E        8A 44 0B        mov     al, [si+0Bh]             ;[si+0Bh]的高4位是策略类型,值为0=火,1=水,2=山;低4位是策略威力基数,值为0=低级策略(例如焦热、大漩涡),1=中级策略,2=高级策略
0x30C61        C0 E8 04        shr     al, 4
0x30C64        2A E4        sub     ah, ah             ;获得AX=策略类型
0x30C66        8A 4C 0B        mov     cl, [si+0Bh]
0x30C69        83 E1 0F        and     cx, 0Fh             ;获得CX=策略威力基数
0x30C6C        C1 E1 02        shl     cx, 2
0x30C6F        03 C8        add     cx, ax
0x30C71        41        inc     cx
0x30C72        41        inc     cx
0x30C73        6B C1 64        imul    ax, cx, 64             ;结果是策略基本威力=(策略威力基数*4+2+策略类型)*100

2015-2-8 20:59 minzh
感谢传说中的阿尔法孝直和godtype的解答,我理解了, 阿尔法孝直的30C73:imul    ax, cx, 100中,最后应为64吧!
我想把公式改为:策略基本威力=(策略威力基数*3+2+策略类型)*80,那就是0x30C63的数字由4改为3,0x30C75由64改为50,对吧?

[color=Silver][[i] 本帖最后由 minzh 于 2015-2-8 21:05 编辑 [/i]][/color]

2015-2-8 21:03 阿尔法孝直
十六进制的64等于十进制的100

如果要把4改成3,必须要把
0x30C6C        C1 E1 02        shl     cx, 2
这一行改成
0x30C6C        6B C9 03        imul cx,cx,3

[color=Silver][[i] 本帖最后由 阿尔法孝直 于 2015-2-8 21:14 编辑 [/i]][/color]

2015-2-8 21:07 godtype
回复 #6 minzh 的帖子

*3要改0x30C6C ,改成6B C9 03
0x30C75改法没错

类型部分我也不清楚。

页: [1]


Powered by Discuz! Archiver 5.0.0  © 2001-2006 Comsenz Inc.