|
本帖最后由 jerry8192 于 2011-10-15 10:35 编辑
就是傷害生命與受傷比例問題,如生命值 10000/10000,增加生命(取負值) = (暗器增加生命/a(數值取 1)-random(5)(隨機數不必管)-暗器能力(數值取 100)*2(如果數值改為 1))/暗器技巧因子(數值取 1),例:霹靂彈暗器傷害 100(負數) 減去暗器技巧 100 等於 -200!
受傷程度=增加生命/4
我做了實驗,丟兩次暗器,結果生命值 9800/10000(受傷程度:50)、9600/10000(受傷程度:100),的確囧到爆!0x3A654h(注:原版地址就減去 6600h):
89 D0 C1 FA 1F C1 E2 02 1B C2 C1 F8 07
mov eax, edx
sar edx, 1Fh
shl edx, 2
sbb eax, edx
sar eax, 2 /4
sar eax, 2,因 sar 是向右偏移,那不就是 2^(-2)=1/4,改成 2^(-7)=1/128,難道就是沒辦法填 1/100,唯一的缺點就是分母,卻只能填指數值!
有訣竅!把它改成:
0x3A654h:
BE 64 00 00 00 89 D0 C1 FA 1F F7 FE 90
mov esi, 64h /100
mov eax, edx
sar edx, 1Fh
idiv esi
nop
idiv 有符號除法,取 n 值,如 n=100,那不就是 1/100 喔!可以任意填整數值!是填在分母,OK!
受傷程度=增加生命/100(跟武功傷害受傷比例的值是一模一樣)
再一次的實驗,投擲暗器時,如暗器技巧分為 100、6600、6700,結果生命值 9900/10000(受傷程度:1)、3400/10000(受傷程度:66),3300/10000(受傷程度:67),終於改成功了!這樣就可以玩得痛快!
|
|