原帖由 阿尔法孝直 于 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 编辑 ]