07-31-2008, 03:15 PM
I just found the processes of '' itr: kind: xx '' and '' hit_Fa: xx ''.
Here is the process of '' itr: kind: xx ''.
0042E6ED |> \83FA 06 |cmp edx,6 ; Switch (cases 1..7)
0042E6F0 |. 75 0E |jnz short lf2.0042E700
0042E6F2 |. 8B0B |mov ecx,dword ptr ds:[ebx] ; Case 6 of switch 0042E6ED
0042E6F4 |. C681 EA000000 03 |mov byte ptr ds:[ecx+EA],3
0042E700 |> \BE 01000000 |mov esi,1
0042E705 |. 3BD6 |cmp edx,esi
0042E707 |. 0F85 6A020000 |jnz lf2.0042E977
0042E70D |. 8B13 |mov edx,dword ptr ds:[ebx] ; Case 1 of switch 0042E6ED
0042E70F |. 8B4424 0C |mov eax,dword ptr ss:[esp+C]
0042E977 |> \8B4C24 0C |mov ecx,dword ptr ss:[esp+C]
0042E97B |. 83FA 07 |cmp edx,7
0042E97E |. 0F85 FD000000 |jnz lf2.0042EA81
0042E984 |. 8B01 |mov eax,dword ptr ds:[ecx] ; Case 7 of switch 0042E6ED
0042E986 |. 39B8 98000000 |cmp dword ptr ds:[eax+98],edi
0042EA81 |> \83FA 02 |cmp edx,2 ; Switch (cases 2..B)
0042EA84 |. 0F85 FB010000 |jnz lf2.0042EC85
0042EA8A |. 8B03 |mov eax,dword ptr ds:[ebx] ; Case 2 of switch 0042EA81
0042EA8C |. 8B90 68030000 |mov edx,dword ptr ds:[eax+368]
0042EA92 |. 39B2 F8060000 |cmp dword ptr ds:[edx+6F8],esi
0042EC85 |> \83FA 08 |cmp edx,8
0042EC88 |. 75 42 |jnz short lf2.0042ECCC
0042EC8A |. 8B4424 10 |mov eax,dword ptr ss:[esp+10] ; Case 8 of switch 0042EA81
0042EC8E |. 8B33 |mov esi,dword ptr ds:[ebx]
0042EC90 |. 8B50 44 |mov edx,dword ptr ds:[eax+44]
0042EC93 |. 81C2 E8030000 |add edx,3E8
0042ECCC |> \83FA 09 |cmp edx,9
0042ECCF |. 0F85 19010000 |jnz lf2.0042EDEE
0042ECD5 |. 8B33 |mov esi,dword ptr ds:[ebx] ; Case 9 of switch 0042EA81
0042ECD7 |. 8B86 68030000 |mov eax,dword ptr ds:[esi+368]
0042ECDD |. 8B90 F8060000 |mov edx,dword ptr ds:[eax+6F8]
0042ECE3 |. 83FA 03 |cmp edx,3
0042ECE6 |. 0F85 ED000000 |jnz lf2.0042EDD9
0042ECEC |. 8B80 AC000000 |mov eax,dword ptr ds:[eax+AC]
0042ECF2 |. 83F8 FF |cmp eax,-1
0042ECF5 |. 7E 13 |jle short lf2.0042ED0A
0042ECF7 |. 8B56 10 |mov edx,dword ptr ds:[esi+10]
0042EDEE |> \83FA 0A |cmp edx,0A
0042EDF1 |. 0F84 2F070000 |je lf2.0042F526
0042EDF7 |. 83FA 0B |cmp edx,0B
0042EDFA |. 75 0E |jnz short lf2.0042EE0A
0042EDFC |. 8B03 |mov eax,dword ptr ds:[ebx] ; Case B of switch 0042EA81
0042EDFE |. 39B8 20030000 |cmp dword ptr ds:[eax+320],edi
0042EE04 |. 0F8C 1C070000 |jl lf2.0042F526
0042EE0A |> 83FA 03 |cmp edx,3 ; Switch (cases 3..10)
0042EE0D |. 0F85 66020000 |jnz lf2.0042F079
0042EE13 |. 8B13 |mov edx,dword ptr ds:[ebx] ; Case 3 of switch 0042EE0A
0042EE15 |. 897A 40 |mov dword ptr ds:[edx+40],edi
0042EE18 |. 897A 44 |mov dword ptr ds:[edx+44],edi
0042EE1B |. 8B01 |mov eax,dword ptr ds:[ecx]
0042EE1D |. 8978 40 |mov dword ptr ds:[eax+40],edi
0042EE20 |. 8978 44 |mov dword ptr ds:[eax+44],edi
0042EE23 |. 8B01 |mov eax,dword ptr ds:[ecx]
0042EE25 |. 8B13 |mov edx,dword ptr ds:[ebx]
0042EE27 |. 8B70 10 |mov esi,dword ptr ds:[eax+10]
0042EE2A |. 3B72 10 |cmp esi,dword ptr ds:[edx+10]
0042F079 |> \83FA 0E |cmp edx,0E
0042F07C |. 0F85 ED000000 |jnz lf2.0042F16F
0042F082 |. 8B13 |mov edx,dword ptr ds:[ebx] ; Case E of switch 0042EE0A
0042F084 |. 8B01 |mov eax,dword ptr ds:[ecx]
0042F086 |. 8B72 10 |mov esi,dword ptr ds:[edx+10]
0042F089 |. 8B78 10 |mov edi,dword ptr ds:[eax+10]
0042F08C |. 8D46 05 |lea eax,dword ptr ds:[esi+5]
0042F08F |. 3BF8 |cmp edi,eax
0042F16F |. 83FA 0F |cmp edx,0F
0042F172 |. 74 09 |je short lf2.0042F17D
0042F174 |. 83FA 10 |cmp edx,10
0042F177 |. 0F85 2B060000 |jnz lf2.0042F7A8
0042F17D |> 8B33 |mov esi,dword ptr ds:[ebx] ; Cases F,10 of switch 0042EE0A
0042F17F |. 8B96 68030000 |mov edx,dword ptr ds:[esi+368]
0042F185 |. 8B82 F8060000 |mov eax,dword ptr ds:[edx+6F8]
0042F18B |. 3BC7 |cmp eax,edi
0042F18D |. 0F85 86020000 |jnz lf2.0042F419
0042F193 |. 837C24 14 10 |cmp dword ptr ss:[esp+14],10
0042F198 |. 0F85 E4010000 |jnz lf2.0042F382
0042F19E |. 8B4C24 10 |mov ecx,dword ptr ss:[esp+10]
0042F1A2 |. 8BBE 40030000 |mov edi,dword ptr ds:[esi+340]
0042F1A8 |. 85FF |test edi,edi
0042F1AA |. 8B49 44 |mov ecx,dword ptr ds:[ecx+44]
The red number means '' itr: kind: xx ''
I want to creat a '' itr: kind: xx '' could coerce enemy been caught, like '' itr: kind: 3 '', but couldn't when enemy is at a special frame.
And, here is the process of '' hit_Fa: xx ''.
004030EC |. 8B84DA D4070000 mov eax,dword ptr ds:[edx+ebx*8+7D4]
004030F3 |. 33DB xor ebx,ebx ; Switch (cases 5..D)
004030F5 |. 83F8 0B cmp eax,0B
004030F8 |. 894424 20 mov dword ptr ss:[esp+20],eax
004030FC |. 0F85 9C060000 jnz lf2.0040379E
00403102 |. 0FBE81 80000000 movsx eax,byte ptr ds:[ecx+80] ; Case B of switch 004030F3
. . .
. . .
. . .
. . .
. . .
. . .
(The code is too much, I don't want to paste all of it.)
If you want to find other hit_Fa code, just follow the '' Jnz '' code.
The yellow number means '' hit_Fa: xx ''.
I want to creat a hit_Fa: that could hit ground, like hit_Fa: 7, but could be used by anyother id.
And a hit_Fa could chase teammate, like Jan's cure bird (hit_Fa: 4), but could be used by anyother id too.
I spent a lot of time on it but had no idea how it works.
Hope there's someone could help me.
Here is the process of '' itr: kind: xx ''.
0042E6ED |> \83FA 06 |cmp edx,6 ; Switch (cases 1..7)
0042E6F0 |. 75 0E |jnz short lf2.0042E700
0042E6F2 |. 8B0B |mov ecx,dword ptr ds:[ebx] ; Case 6 of switch 0042E6ED
0042E6F4 |. C681 EA000000 03 |mov byte ptr ds:[ecx+EA],3
0042E700 |> \BE 01000000 |mov esi,1
0042E705 |. 3BD6 |cmp edx,esi
0042E707 |. 0F85 6A020000 |jnz lf2.0042E977
0042E70D |. 8B13 |mov edx,dword ptr ds:[ebx] ; Case 1 of switch 0042E6ED
0042E70F |. 8B4424 0C |mov eax,dword ptr ss:[esp+C]
0042E977 |> \8B4C24 0C |mov ecx,dword ptr ss:[esp+C]
0042E97B |. 83FA 07 |cmp edx,7
0042E97E |. 0F85 FD000000 |jnz lf2.0042EA81
0042E984 |. 8B01 |mov eax,dword ptr ds:[ecx] ; Case 7 of switch 0042E6ED
0042E986 |. 39B8 98000000 |cmp dword ptr ds:[eax+98],edi
0042EA81 |> \83FA 02 |cmp edx,2 ; Switch (cases 2..B)
0042EA84 |. 0F85 FB010000 |jnz lf2.0042EC85
0042EA8A |. 8B03 |mov eax,dword ptr ds:[ebx] ; Case 2 of switch 0042EA81
0042EA8C |. 8B90 68030000 |mov edx,dword ptr ds:[eax+368]
0042EA92 |. 39B2 F8060000 |cmp dword ptr ds:[edx+6F8],esi
0042EC85 |> \83FA 08 |cmp edx,8
0042EC88 |. 75 42 |jnz short lf2.0042ECCC
0042EC8A |. 8B4424 10 |mov eax,dword ptr ss:[esp+10] ; Case 8 of switch 0042EA81
0042EC8E |. 8B33 |mov esi,dword ptr ds:[ebx]
0042EC90 |. 8B50 44 |mov edx,dword ptr ds:[eax+44]
0042EC93 |. 81C2 E8030000 |add edx,3E8
0042ECCC |> \83FA 09 |cmp edx,9
0042ECCF |. 0F85 19010000 |jnz lf2.0042EDEE
0042ECD5 |. 8B33 |mov esi,dword ptr ds:[ebx] ; Case 9 of switch 0042EA81
0042ECD7 |. 8B86 68030000 |mov eax,dword ptr ds:[esi+368]
0042ECDD |. 8B90 F8060000 |mov edx,dword ptr ds:[eax+6F8]
0042ECE3 |. 83FA 03 |cmp edx,3
0042ECE6 |. 0F85 ED000000 |jnz lf2.0042EDD9
0042ECEC |. 8B80 AC000000 |mov eax,dword ptr ds:[eax+AC]
0042ECF2 |. 83F8 FF |cmp eax,-1
0042ECF5 |. 7E 13 |jle short lf2.0042ED0A
0042ECF7 |. 8B56 10 |mov edx,dword ptr ds:[esi+10]
0042EDEE |> \83FA 0A |cmp edx,0A
0042EDF1 |. 0F84 2F070000 |je lf2.0042F526
0042EDF7 |. 83FA 0B |cmp edx,0B
0042EDFA |. 75 0E |jnz short lf2.0042EE0A
0042EDFC |. 8B03 |mov eax,dword ptr ds:[ebx] ; Case B of switch 0042EA81
0042EDFE |. 39B8 20030000 |cmp dword ptr ds:[eax+320],edi
0042EE04 |. 0F8C 1C070000 |jl lf2.0042F526
0042EE0A |> 83FA 03 |cmp edx,3 ; Switch (cases 3..10)
0042EE0D |. 0F85 66020000 |jnz lf2.0042F079
0042EE13 |. 8B13 |mov edx,dword ptr ds:[ebx] ; Case 3 of switch 0042EE0A
0042EE15 |. 897A 40 |mov dword ptr ds:[edx+40],edi
0042EE18 |. 897A 44 |mov dword ptr ds:[edx+44],edi
0042EE1B |. 8B01 |mov eax,dword ptr ds:[ecx]
0042EE1D |. 8978 40 |mov dword ptr ds:[eax+40],edi
0042EE20 |. 8978 44 |mov dword ptr ds:[eax+44],edi
0042EE23 |. 8B01 |mov eax,dword ptr ds:[ecx]
0042EE25 |. 8B13 |mov edx,dword ptr ds:[ebx]
0042EE27 |. 8B70 10 |mov esi,dword ptr ds:[eax+10]
0042EE2A |. 3B72 10 |cmp esi,dword ptr ds:[edx+10]
0042F079 |> \83FA 0E |cmp edx,0E
0042F07C |. 0F85 ED000000 |jnz lf2.0042F16F
0042F082 |. 8B13 |mov edx,dword ptr ds:[ebx] ; Case E of switch 0042EE0A
0042F084 |. 8B01 |mov eax,dword ptr ds:[ecx]
0042F086 |. 8B72 10 |mov esi,dword ptr ds:[edx+10]
0042F089 |. 8B78 10 |mov edi,dword ptr ds:[eax+10]
0042F08C |. 8D46 05 |lea eax,dword ptr ds:[esi+5]
0042F08F |. 3BF8 |cmp edi,eax
0042F16F |. 83FA 0F |cmp edx,0F
0042F172 |. 74 09 |je short lf2.0042F17D
0042F174 |. 83FA 10 |cmp edx,10
0042F177 |. 0F85 2B060000 |jnz lf2.0042F7A8
0042F17D |> 8B33 |mov esi,dword ptr ds:[ebx] ; Cases F,10 of switch 0042EE0A
0042F17F |. 8B96 68030000 |mov edx,dword ptr ds:[esi+368]
0042F185 |. 8B82 F8060000 |mov eax,dword ptr ds:[edx+6F8]
0042F18B |. 3BC7 |cmp eax,edi
0042F18D |. 0F85 86020000 |jnz lf2.0042F419
0042F193 |. 837C24 14 10 |cmp dword ptr ss:[esp+14],10
0042F198 |. 0F85 E4010000 |jnz lf2.0042F382
0042F19E |. 8B4C24 10 |mov ecx,dword ptr ss:[esp+10]
0042F1A2 |. 8BBE 40030000 |mov edi,dword ptr ds:[esi+340]
0042F1A8 |. 85FF |test edi,edi
0042F1AA |. 8B49 44 |mov ecx,dword ptr ds:[ecx+44]
The red number means '' itr: kind: xx ''
I want to creat a '' itr: kind: xx '' could coerce enemy been caught, like '' itr: kind: 3 '', but couldn't when enemy is at a special frame.
And, here is the process of '' hit_Fa: xx ''.
004030EC |. 8B84DA D4070000 mov eax,dword ptr ds:[edx+ebx*8+7D4]
004030F3 |. 33DB xor ebx,ebx ; Switch (cases 5..D)
004030F5 |. 83F8 0B cmp eax,0B
004030F8 |. 894424 20 mov dword ptr ss:[esp+20],eax
004030FC |. 0F85 9C060000 jnz lf2.0040379E
00403102 |. 0FBE81 80000000 movsx eax,byte ptr ds:[ecx+80] ; Case B of switch 004030F3
. . .
. . .
. . .
. . .
. . .
. . .
(The code is too much, I don't want to paste all of it.)
If you want to find other hit_Fa code, just follow the '' Jnz '' code.
The yellow number means '' hit_Fa: xx ''.
I want to creat a hit_Fa: that could hit ground, like hit_Fa: 7, but could be used by anyother id.
And a hit_Fa could chase teammate, like Jan's cure bird (hit_Fa: 4), but could be used by anyother id too.
I spent a lot of time on it but had no idea how it works.
Hope there's someone could help me.