I was reading through the code that handles the Corrupt Lancer's AI and found out an interesting feature. Despite what MonAI.txt says the AIParam 8 can actually be used. This param handles the chances for the unit to use skill 3, so if you want to use this AI for a melee fighter you will be able to use up to three abilities =)
Here's the code I found:
Code: Select all
6FCD8755 66:83BF 74010 CMP WORD PTR DS:[EDI+174],0 // check if the skill3 is empty or null
6FCD875D 7C 5C JL SHORT 6FCD87BB // if no skill3, then jump to AI_Attack (regular melee attack)
6FCD875F 8B46 20 MOV EAX,DWORD PTR DS:[ESI+20]
6FCD8762 BA C590C66A MOV EDX,6AC690C5
6FCD8767 F7E2 MUL EDX
6FCD8769 8B4E 24 MOV ECX,DWORD PTR DS:[ESI+24]
6FCD876C 33ED XOR EBP,EBP
6FCD876E 03C1 ADD EAX,ECX
6FCD8770 B9 64000000 MOV ECX,64
6FCD8775 13D5 ADC EDX,EBP
6FCD8777 8946 20 MOV DWORD PTR DS:[ESI+20],EAX
6FCD877A 8956 24 MOV DWORD PTR DS:[ESI+24],EDX
6FCD877D 33D2 XOR EDX,EDX
6FCD877F F7F1 DIV ECX
6FCD8781 33C0 XOR EAX,EAX
6FCD8783 8A43 6D MOV AL,BYTE PTR DS:[EBX+6D]
6FCD8786 0FBF8C47 8000 MOVSX ECX,WORD PTR DS:[EAX*2+EDI+80] // Check AIParam 8 vs a Random[100] roll
6FCD878E 3BD1 CMP EDX,ECX
6FCD8790 7D 29 JGE SHORT 6FCD87BB // if Rand[100] is > than AIParam 8 then just use the melee attack
6FCD8792 0FBF87 740100 MOVSX EAX,WORD PTR DS:[EDI+174] // else use skill 3
6FCD8799 8B5424 20 MOV EDX,DWORD PTR SS:[ESP+20]
6FCD879D 8A8F 82010000 MOV CL,BYTE PTR DS:[EDI+182]
6FCD87A3 55 PUSH EBP
6FCD87A4 55 PUSH EBP
6FCD87A5 52 PUSH EDX
6FCD87A6 50 PUSH EAX
6FCD87A7 51 PUSH ECX
6FCD87A8 8BD6 MOV EDX,ESI
6FCD87AA 8BCB MOV ECX,EBX
6FCD87AC E8 FF77FFFF CALL 6FCCFFB0
6FCD87B1 5F POP EDI
6FCD87B2 5E POP ESI
6FCD87B3 5D POP EBP
6FCD87B4 5B POP EBX
6FCD87B5 83C4 0C ADD ESP,0C
6FCD87B8 C2 0400 RETN 4