04-15-2009, 08:49 PM
I remade the whole davis ai in the dll + made it press DJA if the enemy ID is above 200(for the 2 level lf2 thing):
and
To disable the DJA stuff just replace:
CMP DWORD PTR DS:[EAX+6F4h],0Bh ; davis
JE DJA_1
CMP DWORD PTR DS:[EAX+6F4h],19Bh
JE DJA_2
jmp return
with:
CMP DWORD PTR DS:[EAX+6F4h],0Bh ; davis
JE no_DJA
CMP DWORD PTR DS:[EAX+6F4h],19Bh
JNZ return
Code:
;===========Davis stuff===========
Davis_return dd 00404DAEh
Davis_C1 dd 00403270h
Davis_C2 dd 00417190h
Davis_C3 dd 004451C0h
Davis_DP dd 004060EEh
and
Code:
AI_Davis proc
CMP DWORD PTR DS:[EAX+6F4h],0Bh ; davis
JE DJA_1
CMP DWORD PTR DS:[EAX+6F4h],19Bh
JE DJA_2
jmp return
DJA_1:
MOV EDX,DWORD PTR DS:[ESI+EBP*4+194h]
MOV EAX,DWORD PTR DS:[EDX+368h]
CMP DWORD PTR DS:[EAX+6F4h],200
jng no_DJA
MOV BYTE PTR DS:[ECX+0DCh],3
DJA_2:
MOV EDX,DWORD PTR DS:[ESI+EBP*4+194h]
MOV EAX,DWORD PTR DS:[EDX+368h]
CMP DWORD PTR DS:[EAX+6F4h],200
jnl no_DJA
MOV BYTE PTR DS:[ECX+0DCh],3
no_DJA:
CMP DWORD PTR DS:[ECX+308h],96h
JLE a ; jmp a
MOV EDX,DWORD PTR DS:[ESI+EBP*4+194h]
MOV EAX,DWORD PTR DS:[EDX+10h]
SUB EAX,DWORD PTR DS:[ECX+10h]
PUSH EAX
CALL [Davis_C1]
ADD ESP,4
CMP EAX,118h
JGE a ; jmp a
MOV EDX,DWORD PTR DS:[EDX+18h]
SUB EDX,DWORD PTR DS:[ECX+18h]
PUSH EDX
CALL [Davis_C1]
ADD ESP,4
CMP EAX,1Eh
JGE a ; jmp a
PUSH 0Ah
PUSH 5Dh
CALL [Davis_C2]
ADD ESP,8h
TEST EAX,EAX
JNZ a ; jmp a
MOV EDX,DWORD PTR DS:[ESI+EDI*4+194h]
MOV BL,BYTE PTR DS:[EDX+80h]
TEST BL,BL
JNZ b ; jmp b
MOV ECX,DWORD PTR DS:[ESI+EBP*4+194h]
MOV EAX,DWORD PTR DS:[EDX+10h]
MOV ECX,DWORD PTR DS:[ECX+10h]
CMP ECX,EAX
JG @c ; jmp c
b:
CMP BL,1 ; b
JNZ a ; jmp a
MOV ECX,DWORD PTR DS:[ESI+EBP*4+194h]
MOV EAX,DWORD PTR DS:[EDX+10h]
MOV ECX,DWORD PTR DS:[ECX+10h]
CMP ECX,EAX
JGE a ; jmp a
JLE d ; jmp d
@c:
MOV BYTE PTR DS:[EDX+0D7h],3 ;c
d:
POP EDI ; d
POP EBP
POP EBX
MOV EAX,1
POP ESI
ADD ESP,8
RETN 1Ch
a:
MOV EAX,DWORD PTR DS:[ESI+EDI*4+194h] ; a
MOV EDX,DWORD PTR DS:[EAX+70h]
MOV EAX,DWORD PTR DS:[EAX+368h]
IMUL EDX,EDX,178h
CMP DWORD PTR DS:[EDX+EAX+7D0h],122h
JNZ e ; jmp e
MOV ECX,DWORD PTR DS:[ESI+EBP*4+194h]
CMP DWORD PTR DS:[ECX+14h],0
JGE e ; jmp e
MOV EDX,DWORD PTR DS:[ESI+EDI*4+194h]
MOV BYTE PTR DS:[EDX+0CBh],0
MOV EAX,DWORD PTR DS:[ESI+EDI*4+194h]
e:
MOV BYTE PTR DS:[EAX+0D2h],1
PUSH 5h ; e
PUSH 5Eh
CALL [Davis_C2]
ADD ESP,8h
TEST EAX,EAX
JE f ; jmp f
MOV EAX,DWORD PTR SS:[ESP+28h]
CMP EAX,10h
JE f ; jmp f
CMP EAX,8h
JNZ return ; jmp to end
f:
MOV ECX,DWORD PTR SS:[ESP+1Ch] ; f
MOV EBX,DWORD PTR DS:[ESI+ECX*4+194h]
MOV EBP,DWORD PTR DS:[ESI+EDI*4+194h]
MOV EDX,DWORD PTR DS:[EBX+10h]
FLD QWORD PTR SS:[EBP+40h]
MOV DWORD PTR SS:[ESP+20h],EDX
CALL [Davis_C3]
SUB EAX,DWORD PTR SS:[EBP+10h]
ADD EAX,DWORD PTR SS:[ESP+20h]
PUSH EAX
CALL [Davis_C1]
ADD ESP,4
CMP EAX,64h
JGE return ; jmp to end
MOV EAX,DWORD PTR DS:[EBX+18h]
MOV ECX,EBP
SUB EAX,DWORD PTR DS:[ECX+18h]
PUSH EAX
CALL [Davis_C1]
ADD ESP,4
CMP EAX,7
JGE return ; jmp to end
CMP DWORD PTR DS:[ECX+308h],0C8h
JLE return ; jmp to end
MOV AL,BYTE PTR DS:[ECX+80h]
TEST AL,AL
JNZ g ; jmp g
MOV EDX,DWORD PTR SS:[ESP+20h]
CMP DWORD PTR DS:[ECX+10h],EDX
JL dp
g:
CMP AL,1 ; g
JNZ return ; jmp davis 3
MOV EAX,DWORD PTR SS:[ESP+20h]
CMP DWORD PTR DS:[ECX+10h],EAX
JG dp ; jmp davis 3
return: jmp Davis_return
dp: jmp Davis_DP
AI_Davis endp
To disable the DJA stuff just replace:
CMP DWORD PTR DS:[EAX+6F4h],0Bh ; davis
JE DJA_1
CMP DWORD PTR DS:[EAX+6F4h],19Bh
JE DJA_2
jmp return
with:
CMP DWORD PTR DS:[EAX+6F4h],0Bh ; davis
JE no_DJA
CMP DWORD PTR DS:[EAX+6F4h],19Bh
JNZ return
10 ʏᴇᴀʀs sɪɴᴄᴇ ɪʀᴄ ɢᴏᴏᴅ.ɪ ᴡᴀʟᴋ ᴛʜʀᴏᴜɢʜ ᴛʜᴇ ᴇᴍᴘᴛʏ sᴛʀᴇᴇᴛs ᴛʀʏɪɴɢ ᴛᴏ ᴛʜɪɴᴋ ᴏғ sᴏᴍᴇᴛʜɪɴɢ ᴇʟsᴇ ʙᴜᴛ ᴍʏ ᴘᴀᴛʜ ᴀʟᴡᴀʏs ʟᴇᴀᴅs ᴛᴏ ᴛʜᴇ ɪʀᴄ. ɪ sᴛᴀʀᴇ ᴀᴛ ᴛʜᴇ sᴄʀᴇᴇɴ ғᴏʀ ʜᴏᴜʀs ᴀɴᴅ ᴛʀʏ ᴛᴏ sᴜᴍᴍᴏɴ ᴛʜᴇ ɢᴏᴏᴅ ɪʀᴄ. ɪ ᴡᴀᴛᴄʜ ᴏᴛʜᴇʀ ɪʀᴄ ᴄʜᴀɴɴᴇʟs ʙᴜᴛ ɪᴛ ɪs ɴᴏ ɢᴏᴏᴅ. ɪ ᴘᴇsᴛᴇʀ ᴢᴏʀᴛ ᴀɴᴅ ᴛʀʏ ᴛᴏ ʀᴇsɪsᴛ ʜɪs sᴇxɪɴᴇss ʙᴜᴛ ɪᴛ ɪs ᴀʟʟ ᴍᴇᴀɴɪɴɢʟᴇss. ᴛʜᴇ ᴇɴᴅ ɪs ɴᴇᴀʀ.ɪ ᴛʜᴇɴ ᴜsᴜᴀʟʟʏ ʀᴇᴀᴅ sᴏᴍᴇ ᴏʟᴅ ɪʀᴄ ʟᴏɢs ᴀɴᴅ ᴄʀʏ ᴍʏsᴇʟғ ᴛᴏ sʟᴇᴇᴘ.