原帖由 阿尔法孝直 于 2010-8-2 00:08 发表
非攻击性策略成功,要求
随机数%攻击方智力>=防御方智力/x
压迫类、骂声来、假情报类、反间类、封策,x=3
查看类:x=4
止步、牵制,x=5
有策略减伤buff的再算一次,两次都成功了才附加状态上去。
...
我来注释一下:
0040221B /$ 55 PUSH EBP
0040221C |. 8BEC MOV EBP,ESP
0040221E |. 83EC 18 SUB ESP,18
00402221 |. 53 PUSH EBX
00402222 |. 56 PUSH ESI
00402223 |. 57 PUSH EDI
00402224 |. 33C0 XOR EAX,EAX
00402226 |. 8A45 08 MOV AL,BYTE PTR SS:[EBP+8] ;攻击方战场ID,就是秘籍图片里显示的ID,就是部队序号
00402229 |. 8BC8 MOV ECX,EAX
0040222B |. 8D0440 LEA EAX,DWORD PTR DS:[EAX+EAX*2]
0040222E |. C1E0 03 SHL EAX,3
00402231 |. 2BC1 SUB EAX,ECX
00402233 |. 8D88 98C04600 LEA ECX,DWORD PTR DS:[EAX+46C098]
00402239 |. E8 F26E0000 CALL EKD2W95.00409130
0040223E |. 8D0440 LEA EAX,DWORD PTR DS:[EAX+EAX*2]
00402241 |. 03C0 ADD EAX,EAX
00402243 |. 8D04C0 LEA EAX,DWORD PTR DS:[EAX+EAX*8]
00402246 |. 05 E8564500 ADD EAX,EKD2W95.004556E8
0040224B |. 8945 F0 MOV DWORD PTR SS:[EBP-10],EAX ;攻击方基本能力数据地址
0040224E |. 33C0 XOR EAX,EAX
00402250 |. 8A45 0C MOV AL,BYTE PTR SS:[EBP+C] ;防御方战场ID
00402253 |. 8BC8 MOV ECX,EAX
00402255 |. 8D0440 LEA EAX,DWORD PTR DS:[EAX+EAX*2]
00402258 |. C1E0 03 SHL EAX,3
0040225B |. 2BC1 SUB EAX,ECX
0040225D |. 8D88 98C04600 LEA ECX,DWORD PTR DS:[EAX+46C098]
00402263 |. E8 C86E0000 CALL EKD2W95.00409130
00402268 |. 8D0440 LEA EAX,DWORD PTR DS:[EAX+EAX*2]
0040226B |. 03C0 ADD EAX,EAX
0040226D |. 8D04C0 LEA EAX,DWORD PTR DS:[EAX+EAX*8]
00402270 |. 05 E8564500 ADD EAX,EKD2W95.004556E8
00402275 |. 8945 F4 MOV DWORD PTR SS:[EBP-C],EAX ;防御方能力地址
00402278 |. C745 F8 01000>MOV DWORD PTR SS:[EBP-8],1 ;初始化默认计策效果,1成功0失败,方便道具的计算
0040227F |. C645 EC 01 MOV BYTE PTR SS:[EBP-14],1 ;普通武将1次赌博机会
00402283 |. 6A 08 PUSH 8 ; /Arg1 = 00000008;确认是否有减伤buffer
00402285 |. 33C0 XOR EAX,EAX ; |
00402287 |. 8A45 0C MOV AL,BYTE PTR SS:[EBP+C] ; |
0040228A |. 8BC8 MOV ECX,EAX ; |
0040228C |. 8D0440 LEA EAX,DWORD PTR DS:[EAX+EAX*2] ; |
0040228F |. C1E0 03 SHL EAX,3 ; |
00402292 |. 2BC1 SUB EAX,ECX ; |
00402294 |. 8D88 98C04600 LEA ECX,DWORD PTR DS:[EAX+46C098] ; |
0040229A |. E8 B16E0000 CALL EKD2W95.00409150 ; \EKD2W95.00409150
0040229F |. 85C0 TEST EAX,EAX
004022A1 |. 0F84 04000000 JE EKD2W95.004022AB
004022A7 |. C645 EC 02 MOV BYTE PTR SS:[EBP-14],2 ;有减伤buffer两次赌博机会
004022AB |> C645 FC 00 MOV BYTE PTR SS:[EBP-4],0
004022AF |. E9 03000000 JMP EKD2W95.004022B7
004022B4 |> FE45 FC /INC BYTE PTR SS:[EBP-4]
004022B7 |> 33C0 XOR EAX,EAX
004022B9 |. 8A45 FC |MOV AL,BYTE PTR SS:[EBP-4]
004022BC |. 33C9 |XOR ECX,ECX
004022BE |. 8A4D EC |MOV CL,BYTE PTR SS:[EBP-14]
004022C1 |. 3BC1 |CMP EAX,ECX
004022C3 |. 0F8D 7B000000 |JGE EKD2W95.00402344
004022C9 |. 837D F8 00 |CMP DWORD PTR SS:[EBP-8],0
004022CD |. 0F84 71000000 |JE EKD2W95.00402344
004022D3 |. 33C0 |XOR EAX,EAX
004022D5 |. 8A45 14 |MOV AL,BYTE PTR SS:[EBP+14]
004022D8 |. 83F8 02 |CMP EAX,2 ;道具3策略2,道具一定成功的;
004022DB |. 0F85 5E000000 |JNZ EKD2W95.0040233F
004022E1 |. 8B4D F0 |MOV ECX,DWORD PTR SS:[EBP-10]
004022E4 |. E8 276E0000 |CALL EKD2W95.00409110 ;攻智力
004022E9 |. 33C9 |XOR ECX,ECX
004022EB |. 8AC8 |MOV CL,AL
004022ED |. 51 |PUSH ECX ; /Arg1
004022EE |. E8 35500400 |CALL EKD2W95.00447328 ; \随机数
004022F3 |. 83C4 04 |ADD ESP,4
004022F6 |. 8BD8 |MOV EBX,EAX
004022F8 |. 895D E8 |MOV DWORD PTR SS:[EBP-18],EBX
004022FB |. 8B4D F4 |MOV ECX,DWORD PTR SS:[EBP-C]
004022FE |. E8 0D6E0000 |CALL EKD2W95.00409110 ;防智力
00402303 |. 33C9 |XOR ECX,ECX
00402305 |. 8AC8 |MOV CL,AL
00402307 |. 33DB |XOR EBX,EBX
00402309 |. 8A5D 10 |MOV BL,BYTE PTR SS:[EBP+10] ;策略成功率基数,越大计策越容易成功。
0040230C |. 8BC1 |MOV EAX,ECX
0040230E |. 99 |CDQ
0040230F |. F7FB |IDIV EBX
00402311 |. 8B4D E8 |MOV ECX,DWORD PTR SS:[EBP-18]
00402314 |. 3BC8 |CMP ECX,EAX
00402316 |. 0F83 23000000 |JNB EKD2W95.0040233F
0040231C |. 33C0 |XOR EAX,EAX
0040231E |. 8A45 18 |MOV AL,BYTE PTR SS:[EBP+18] ;0兵种附带攻击特效,1策略,兵种特效不会显示下边的策略失败字样
00402321 |. 85C0 |TEST EAX,EAX
00402323 |. 0F84 0F000000 |JE EKD2W95.00402338
00402329 |. 68 00DD4400 |PUSH EKD2W95.0044DD00 ;策略失败字样
0040232E |. 6A 00 |PUSH 0 ;对话框风格,多个样式
00402330 |. E8 006C0300 |CALL EKD2W95.00438F35
00402335 |. 83C4 08 |ADD ESP,8
00402338 |> C745 F8 00000>|MOV DWORD PTR SS:[EBP-8],0 ;失败标识0
0040233F |>^ E9 70FFFFFF \JMP EKD2W95.004022B4
00402344 |> 8B45 F8 MOV EAX,DWORD PTR SS:[EBP-8]
00402347 |. E9 00000000 JMP EKD2W95.0040234C
0040234C |> 5F POP EDI
0040234D |. 5E POP ESI
0040234E |. 5B POP EBX
0040234F |. C9 LEAVE
00402350 \. C3 RETN
[ 本帖最后由 ctermiii 于 2010-8-2 15:19 编辑 ]