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.