标题:
6.1版exe策略免疫兵种的BUG及修复
[打印本页]
作者:
贝莉卡
时间:
2021-2-24 21:25
标题:
6.1版exe策略免疫兵种的BUG及修复
按理说,如果某兵种策略免疫,那么所有非必中策略对他的命中率应该是0%(必中策略,例如加血,是不免疫的)
但是实际上会发现,有些策略的命中率是1%。经过调试,原因如下:
0043B8D2 |> \8B4D E4 MOV ECX,DWORD PTR SS:[EBP-1C]
0043B8D5 |. E8 36ADFCFF CALL Ekd5.00406610
0043B8DA |. 3C 0B CMP AL,0B
0043B8DC |. 75 05 JNZ SHORT Ekd5.0043B8E3
0043B8DE |. 33C0 XOR EAX,EAX
0043B8E0 |. 8945 F0 MOV DWORD PTR SS:[EBP-10],EAX //这里是对于指定兵种,命中率赋值0%
0043B8E3 |> FF75 E4 PUSH DWORD PTR SS:[EBP-1C]
0043B8E6 |. FF75 F0 PUSH DWORD PTR SS:[EBP-10]
0043B8E9 |. FF75 D8 PUSH DWORD PTR SS:[EBP-28]
0043B8EC |. FF75 E8 PUSH DWORD PTR SS:[EBP-18]
0043B8EF |. E8 FAD5FCFF CALL Ekd5.00408EEE //但是这个函数又会把0%修正成1%
0043B8F4 |. 8945 F0 MOV DWORD PTR SS:[EBP-10],EAX
解决方案就是把两段代码顺序交换一下:
0043B8D2 FF75 E4 PUSH DWORD PTR SS:[EBP-1C]
0043B8D5 FF75 F0 PUSH DWORD PTR SS:[EBP-10]
0043B8D8 FF75 D8 PUSH DWORD PTR SS:[EBP-28]
0043B8DB FF75 E8 PUSH DWORD PTR SS:[EBP-18]
0043B8DE E8 0BD6FCFF CALL Ekd5.00408EEE
0043B8E3 8945 F0 MOV DWORD PTR SS:[EBP-10],EAX
0043B8E6 8B4D E4 MOV ECX,DWORD PTR SS:[EBP-1C]
0043B8E9 E8 22ADFCFF CALL Ekd5.00406610
0043B8EE 3C 0B CMP AL,0B
0043B8F0 75 05 JNZ SHORT Ekd5.0043B8F7
0043B8F2 33C0 XOR EAX,EAX
0043B8F4 8945 F0 MOV DWORD PTR SS:[EBP-10],EAX
这里修改过之后,就不能再用形象指定器修改策略免疫的兵种了
如果要改,以后还要在OB里改
欢迎光临 轩辕春秋文化论坛 (http://xycq.org.cn/forum/)
Powered by Discuz! 5.0.0