04-18-2012, 06:11 PM
I've been successful in copying AI's from one character to another on many occasions. I use Lord Silva's AI copying technique and I have never had problems before.
Yesterday using the same techniques I copied the AI of ID: 4 to ID's 60-66 when I ran into a problem. The new ID's now properly use their new AI with no problems, but now characters with ID's 1 and 2 (there might be more as well) crash the game when they are put as computer controlled.
I really don't know exactly why this happened, but I do have a theory.
I noticed this while modifying the exe in ollydebug.
I replaced the line that determines the start of the AI for ID: 4
with this
just like Lord Silva's guide describes.
For some reason, once I do that, two extra lines of code come out of nowhere and appear right after the changed line, making it all look like this:
What does NOP mean? could that be causing an error leading to ID's 1 and 2 not being 'read'?
If anyone needs further clarification, I can try to add more info.
Any help would be greatly appreciated.
Yesterday using the same techniques I copied the AI of ID: 4 to ID's 60-66 when I ran into a problem. The new ID's now properly use their new AI with no problems, but now characters with ID's 1 and 2 (there might be more as well) crash the game when they are put as computer controlled.
I really don't know exactly why this happened, but I do have a theory.
I noticed this while modifying the exe in ollydebug.
I replaced the line that determines the start of the AI for ID: 4
Code:
004041F1 . 83B8 F4060000 >CMP DWORD PTR DS:[EAX+6F4],4
with this
Code:
004041F1 . E9 94230400 JMP lf2.0044658A
just like Lord Silva's guide describes.
For some reason, once I do that, two extra lines of code come out of nowhere and appear right after the changed line, making it all look like this:
Code:
004041F1 . E9 94230400 JMP lf2_erro.0044658A
004041F6 90 NOP
004041F7 90 NOP
004041F8 . 0F85 63010000 JNZ lf2_erro.00404361
004041FE > 81B9 08030000 >CMP DWORD PTR DS:[ECX+308],168
What does NOP mean? could that be causing an error leading to ID's 1 and 2 not being 'read'?
If anyone needs further clarification, I can try to add more info.
Any help would be greatly appreciated.