Перейти к содержанию

[Resident Evil 6] Спавн дропов и зомби


Рекомендуемые сообщения

Записал видео в какой-то степени обучающего видео о том, как можно сделать спавн объектов и зомби.

Сначала определяется как создаются объекты в игре, потом пытаемся воспроизвести спавн

Так же используется condition breakpoint для отладки информации и еще некоторые возможности Cheat Engine
(первое видео было записано 9 декабря 2017 года, второе - 24 декабря 2017 года)

Видео 1 и скрипт к нему:

Spoiler

 

Скрытый текст

 


[ENABLE]
//code from here to '[DISABLE]' will be used to enable the cheat
alloc(newmem,2048)
label(returnhere)
label(originalcode)
label(exit)
label(data)

newmem: //this is allocated memory, you have read,write,execute access
//place your code here

pushad
pushf

push 9
call user32.GetAsyncKeyState
cmp eax,0
je originalcode

mov [data],esi

mov eax,eax
mov ebx, 017FAA00
mov esi,[017C54C0]
push 0
push ebx
mov ecx,esi
call 005752B0

mov edi,[data]

mov edx,[edi+50]
mov [eax+50],edx
mov edx,[edi+54]
mov [eax+54],edx
mov edx,[edi+58]
mov [eax+58],edx

originalcode:

popf
popad

mov cl,[esi+00004E88]

exit:
jmp returnhere

data:
dd 0
dd 0
dd 0
dd 0
dd 0

"BH6.exe"+64D4E9:
jmp newmem
nop
returnhere:


 
 
[DISABLE]
//code from here till the end of the code will be used to disable the cheat
dealloc(newmem)
"BH6.exe"+64D4E9:
mov cl,[esi+00004E88]
//Alt: db 8A 8E 88 4E 00 00

 

 

 

 

Видео 2 и скрипт к нему:

Spoiler

 

Скрытый текст

[ENABLE]
//code from here to '[DISABLE]' will be used to enable the cheat
alloc(newmem,2048)
label(returnhere)
label(originalcode)
label(exit)
label(data)

newmem: //this is allocated memory, you have read,write,execute access
//place your code here

pushad
pushf

mov [data],esi


push 9
call user32.GetAsyncKeyState
cmp eax,0
je originalcode

call kernel32.GetTickCount
sub eax,[data+4]
cmp eax,200
jb @f

/*
mov eax,eax
mov ebx, 017FAA00
mov esi,[017C54C0]
push 0
push ebx
mov ecx,esi
call 005752B0

mov [data+8],eax

mov esi,[data]

mov ecx,[esi+50]
mov [eax+50],ecx
mov ecx,[esi+54]
mov [eax+54],ecx
mov ecx,[esi+58]
mov [eax+58],ecx
*/


/*

spawn item

mov eax,[data]
mov ecx,[017C54C0]
push 1
push eax
call 005786B0
*/

mov esi,[017C540C]
mov ebp, 17D105C
push 0
push 0
push ebp
mov eax,[esi]
mov edx,[eax+40]
mov ecx,esi
call edx

mov esi,[data]

mov ecx,[esi+50]
mov [eax+50],ecx
mov ecx,[esi+54]
mov [eax+54],ecx
mov ecx,[esi+58]
mov [eax+58],ecx


call kernel32.GetTickCount
mov [data+4],eax

originalcode:

popf
popad

mov cl,[esi+00004E88]

exit:
jmp returnhere

data:
dd 0 //esi
dd 0 //tick
dd 0 //last created

"BH6.exe"+64D4E9:
jmp newmem
nop
returnhere:


 
 
[DISABLE]
//code from here till the end of the code will be used to disable the cheat
dealloc(newmem)
"BH6.exe"+64D4E9:
mov cl,[esi+00004E88]
//Alt: db 8A 8E 88 4E 00 00

 

 

  • Плюс 3
Ссылка на комментарий
Поделиться на другие сайты

какой способ?)возможно тут сложнее чем в некоторых играх) потому что когда я спавню их (зомби), то они мне не дают ничего
у них где то там еще инфа лежит о том, что примерно выпадает

для ознакомительного видео я думаю хватит и того что есть

это я еще не полез рассказывать про файлы .lot и еще другое)

в первом видео я не сразу понял почему они были в начале на уровне головы

там edi это CameraCtrl, поэтому у меня на видео они выше были чем голова

Изменено пользователем X86Jumps
Ссылка на комментарий
Поделиться на другие сайты

ну я же с чего-то должен был начать, нужна была зацепка

в файлах спавна (.lot) указаны именно названия моделей, поэтому можно использовать

хотя там же рядом есть вызов функции, которая по названию модели, вернула бы нужный указатель (который я вставлял)

Ссылка на комментарий
Поделиться на другие сайты

11 минуту назад, X86Jumps сказал:

хотя там же рядом есть вызов функции, которая по названию модели, вернула бы нужный указатель

Ты её исследовал? Если да, то там есть какая-нибудь функция выделяющая память под структуру?

Ссылка на комментарий
Поделиться на другие сайты

я находил функцию, которая возвращает нужный указатель по строке

там ничего не выделяется, потому что все данные уже есть

cSetItemInfo созданы уже были на каждый объект (бочки, зомби)

Ссылка на комментарий
Поделиться на другие сайты

×
×
  • Создать...

Важная информация

Находясь на нашем сайте, Вы автоматически соглашаетесь соблюдать наши Условия использования.