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

[Dishonored]Неправильная работа супер-прыжка

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

Всем привет.

У меня возникла такая проблема, что при использовании скрипта на супер-прыжок персонаж вместо того чтобы подпрыгнуть вверх, прыгает вниз и в итоге оказывается под землёй.

Скорее всего я неправильно написал сам скрипт так, что если знаете что не так, то помогите.

↓Скрипт↓

Спойлер

{ Game   : Dishonored.exe
  Version: 
  Date   : 2020-01-19
  Author : MrNeumiller

  This script does blah blah blah
}



[ENABLE]



aobscanmodule(SuperJump,Dishonored.exe,F3 0F 10 8E CC 00 00 00 F3 0F 5C 55 B4) // should be unique
alloc(newmem,$1000)



label(code)
label(key)
label(return)



newmem:
  cmp [key],#1
  jne code
  add dword ptr [esi+CC],(float)500
  mov [key],#0
  jmp code



key:
  dd 0



code:
  movss xmm1,[esi+000000CC]
  jmp return



SuperJump:
  jmp newmem
  nop 3
return:



registersymbol(SuperJump)
registersymbol(key)



[DISABLE]



SuperJump:
  db F3 0F 10 8E CC 00 00 00



unregistersymbol(SuperJump)
unregistersymbol(key)
dealloc(newmem)



{
// ORIGINAL CODE - INJECTION POINT: "Dishonored.exe"+2C0B5D

"Dishonored.exe"+2C0B2D: F3 0F 11 55 EC                 -  movss [ebp-14],xmm2
"Dishonored.exe"+2C0B32: 75 7D                          -  jne Dishonored.exe+2C0BB1
"Dishonored.exe"+2C0B34: 0F 2F 05 F8 50 13 01           -  comiss xmm0,[Dishonored.exe+D350F8]
"Dishonored.exe"+2C0B3B: 76 74                          -  jna Dishonored.exe+2C0BB1
"Dishonored.exe"+2C0B3D: F3 0F 59 C1                    -  mulss xmm0,xmm1
"Dishonored.exe"+2C0B41: 0F 28 D8                       -  movaps xmm3,xmm0
"Dishonored.exe"+2C0B44: 0F 2F 1D 34 6C 03 01           -  comiss xmm3,[Dishonored.exe+C36C34]
"Dishonored.exe"+2C0B4B: 76 64                          -  jna Dishonored.exe+2C0BB1
"Dishonored.exe"+2C0B4D: F3 0F 10 96 C4 00 00 00        -  movss xmm2,[esi+000000C4]
"Dishonored.exe"+2C0B55: F3 0F 10 86 C8 00 00 00        -  movss xmm0,[esi+000000C8]
// ---------- INJECTING HERE ----------
"Dishonored.exe"+2C0B5D: F3 0F 10 8E CC 00 00 00        -  movss xmm1,[esi+000000CC]
// ---------- DONE INJECTING  ----------
"Dishonored.exe"+2C0B65: F3 0F 5C 55 B4                 -  subss xmm2,[ebp-4C]
"Dishonored.exe"+2C0B6A: F3 0F 5C 45 B8                 -  subss xmm0,[ebp-48]
"Dishonored.exe"+2C0B6F: F3 0F 5C 4D BC                 -  subss xmm1,[ebp-44]
"Dishonored.exe"+2C0B74: F3 0F 5E E3                    -  divss xmm4,xmm3
"Dishonored.exe"+2C0B78: 0F 28 DC                       -  movaps xmm3,xmm4
"Dishonored.exe"+2C0B7B: F3 0F 59 DA                    -  mulss xmm3,xmm2
"Dishonored.exe"+2C0B7F: F3 0F 11 5D D0                 -  movss [ebp-30],xmm3
"Dishonored.exe"+2C0B84: 8B 4D D0                       -  mov ecx,[ebp-30]
"Dishonored.exe"+2C0B87: F3 0F 59 C4                    -  mulss xmm0,xmm4
"Dishonored.exe"+2C0B8B: F3 0F 11 45 D4                 -  movss [ebp-2C],xmm0
}

 

Заранее спасибо!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
33 минуты назад, MrNeumiller сказал:

У меня возникла такая проблема

addss dword ptr [esi+CC],(float)500

накатывать надо... это тебе не целое число.  Первый раз вижу такую реализацию прыжка :) 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
5 минут назад, LIRW сказал:

addss dword ptr [esi+CC],(float)500

Cheat engine не может это скомпилировать поэтому я не знаю, что делать.?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
24 минуты назад, MrNeumiller сказал:

Cheat engine не может это скомпилировать поэтому я не знаю, что делать.?

Ну так я и не говорил, что надо делать именно так :lol: я имел введу, что писать туда над через addss

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
19 минут назад, LIRW сказал:

Ну так я и не говорил

Ну это я понял, но суть остаётся неизменна как не крути этот скрипт невозможно скомпилировать.

Вообще думаю что-то типа этого сделать:

addss xmm0,(float)500

P.S Это не сработало.:lol:

Изменено пользователем MrNeumiller
Добавление кода.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
14 минут назад, MrNeumiller сказал:

Вообще думаю что-то типа этого сделать:

так не пишется.. а зачем тебе add ? 

mov dword ptr [esi+CC],(float)500  // так пиши.. попрет

Так извиняюсь... перепутал:lol:  у тебя функция то не верная... 

На вот тебе его, пылился всё равно.

Спойлер

[ENABLE]

aobscanmodule(Jumpe,Dishonored.exe,F3 0F 10 87 BC 01 00 00 F3 0F * * * * * 8B 48 7C) // should be unique
alloc(newmem,$1000)

label(code)
label(return)

newmem:
mov [edi+000001BC],(float)100
code:
  movss xmm0,[edi+000001BC]
  jmp return

Jumpe:
  jmp newmem
  db 90 90 90
return:
registersymbol(Jumpe)

[DISABLE]

Jumpe:
  db F3 0F 10 87 BC 01 00 00

unregistersymbol(Jumpe)
dealloc(newmem)

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
10 минут назад, LIRW сказал:

а зачем тебе add

Ну просто если использовать add, то к координате Y будет добавляться 500, но если ставить значение через mov, то будет выходить так. Например, я нахожусь внизу и координата Y=-500 (Такое возможно сам видел),а это значит что если я впишу туда просто 500, то меня подкинет так что я разобьюсь, но часто у персонажа координата Y=2000,а из этого можно понять, что я улечу под землю.

А вообще мне нужно хотя бы чтоб вверх подкидывало или поднимало через скрипт,но чёртов cheat engine не хочет мне помогать в этом.:mellow:

Изменено пользователем MrNeumiller
Текст сместился.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
1 минуту назад, MrNeumiller сказал:

А вообще мне нужно хотя бы чтоб вверх подкидывало

Я тебе дал правильный прыжок место. Он прыгает как над. или всё же тебе надо что бы вверх подымало персонажа ? вот именно подымало ? 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
2 минуты назад, LIRW сказал:

что бы вверх подымало персонажа ?

Можно и так мне уже не сильно важно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
1 час назад, LIRW сказал:

На вот тебе его, пылился всё равно.

Спасибо! Это подходящий вариант, правда смещение у меня другое, но не в этом суть, мне осталось немного доработать скрипт и всё будет работать идеально!

P.S Получился вот такой страшный скрипт.

Спойлер

[ENABLE]

 

aobscanmodule(Elevator,Dishonored.exe,F3 0F 10 80 CC 00 00 00 8D 55) // should be unique
alloc(newmem,$1000)

 

label(code)
label(key)
label(more)
label(more2)
label(more3)
label(return)

 

newmem:
  cmp [key],#1
  jne more
  mov [eax+CC],(float)100
  mov [key],#0
  jmp code

 

more:
  cmp [key],#2
  jne more2
  mov [eax+CC],(float)500
  mov [key],#0
  jmp code

 

more2:
  cmp [key],#3
  jne more3
  mov [eax+CC],(float)1000
  mov [key],#0
  jmp code

 

more3:
  cmp [key],#4
  jne code
  mov [eax+CC],(float)1500
  mov [key],#0
  jmp code

 

key:
dd 0

 

code:
  movss xmm0,[eax+000000CC]
  jmp return

 

Elevator:
  jmp newmem
  nop 3

return:

 

registersymbol(Elevator)
registersymbol(key)

 

[DISABLE]

 

Elevator:
  db F3 0F 10 80 CC 00 00 00

 

unregistersymbol(Elevator)
unregistersymbol(key)
dealloc(newmem)
 

 

Изменено пользователем MrNeumiller
Добавление P.S
  • Плюс 1

Поделиться сообщением


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

Хоть этой теме уже неделя я напишу, что лучше для создания подобия лифта использовать поинтер на Y координату.

P.S Тему можно закрывать. 

Поделиться сообщением


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

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

×

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

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