|
本帖最后由 jerry8192 于 2011-10-28 18:37 编辑
攻擊防禦之差=
[攻方武學常識之和*2+(攻方人物基本攻擊*3+所使用武學攻擊)*(1/2)+武器裝備加成+武功武器配合加成]
-(守方有效武學常識之和*2+守方人物基本防禦+武器裝備加成)*3
dseg02:000392C5 movsx edx, word_901A2[ecx] ; 攻擊力
dseg02:000392C5 ;
dseg02:000392CC mov eax, edx
dseg02:000392CE shl eax, 2
dseg02:000392D1 sub eax, edx
dseg02:000392D3 lea edx, [eax+edi]
dseg02:000392D6 mov eax, edx
dseg02:000392D8 sar edx, 1Fh
dseg02:000392DB sub eax, edx
dseg02:000392DD sar eax, 1
dseg02:000392DF mov ebx, eax
dseg02:000392E1 cmp word_9017A[ecx], 0 ; 手持
dseg02:000392E9 jl short loc_392FF
dseg02:000392EB movsx eax, word_9017A[ecx] ; 手持
dseg02:000392F2 imul eax, 0BEh
dseg02:000392F8 add bx, word_A27AC[eax] ; 加攻擊力
dseg02:000392FF
dseg02:000392FF loc_392FF: ; CODE XREF: war_WugongHartLife+161j
dseg02:000392FF movsx eax, [esp+14h+personid]
dseg02:00039304 imul eax, 0B6h
dseg02:0003930A cmp word_9017C[eax], 0 ; 身穿
dseg02:00039312 jl short loc_39328
dseg02:00039314 movsx eax, word_9017C[eax] ; 身穿
dseg02:0003931B imul eax, 0BEh
dseg02:00039321 add bx, word_A27AC[eax] ; 加攻擊力
dseg02:00039328
dseg02:00039328 loc_39328: ; CODE XREF: war_WugongHartLife+18Aj
dseg02:00039328 add bx, word_E6EBA ; 武器武功配合增加攻擊力
dseg02:0003932F add ebx, esi
我已經把敵方的防禦力調為0,並已經配上霹靂狂刀(武力+15、輕功+10)、軟蝟甲(武力+5、防禦+20),那我方也配上霹靂狂刀(武力+15、輕功+10)、軟蝟甲(武力+5、防禦+20),用野球拳攻擊時,傷害值是 1380,如我敵方與我方沒有裝備時,傷害值則是 1400,那不就是傷害值相差 20 沒錯!
如果改成:
攻擊防禦之差=
[攻方武學常識之和*2+所使用武學攻擊*(1/2)+(攻方人物基本攻擊+武器裝備加成)*3+武功武器配合加成]
-守方有效武學常識之和*2+(守方人物基本防禦+武器裝備加成)*3
那(攻方人物基本攻擊+武器裝備加成)*3-(守方人物基本防禦+武器裝備加成)*3,而且兩個都可以抵消!這樣平衡了吧!
有別的辦法可以改成這樣嗎?(但我修改彙編代碼時,雖然已經做了重定位,改了很多次,運行遊戲程序,到了戰鬥畫面時,攻擊敵方顯示傷害值總是會一直出錯!因為我太折騰了吧!)
|
|