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

[Divinity - Original Sin 2] Как сделать фильтр для игрока?


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

Привет. Помогите найти решение данной  задачи. Как сделать код что бы он работал только с игроком, Id игрока и врага есть, но структура параметров оружия и эффектов является общей . Как сделать что бы значение установленные мной работали с героем а с врагами восстанавливались оригинальные значения ?

 

Спойлер

push r8
mov r8, [r12+120]
cmp [r8+340], 44E74000  // Enemy-44B54000; Player-44E74000
pop r8
jne @f



push rdi
mov rdi,(float)0.30 // добавляет 30% к вероятности срабатывания эффекта оружия
movd xmm11,rdi
addps xmm9,xmm11

mov [r13+28],(float)18 // Это количество ходов от эффекта оружия , заклинаний и умений оно меняется у всех, т.к структура общая.

pop rdi



@@:

movss xmm9,[r13+28] // Оригинальная инструкция

mulss xmm9,xmm12

jmp return

 

 

Изменено пользователем Xipho
В следующий раз будет пред за несоблюдение правил оформления постов.
Ссылка на комментарий
Поделиться на другие сайты

21 час назад, Жажда Знаний сказал:

Как сделать

@Жажда Знаний, ты же давно на форуме, мы всегда просим выложить полностью СЕ-ный скрипт с Логами.

А по поводу нерабочего скрипта у тебя явная ошибка. попробуй так (если конечно фильтр верен):

Спойлер

push r8
// mov r8, [r12+120]    // вот здесь, судя по оригин. интсрукции, должен
                        // быть регистр r13
mov r8, [r13+120]       // вот так
cmp [r8+340], 44E74000
jne @f

mov r8,(float)0.30
movd xmm11,r8
addps xmm9,xmm11
mov [r13+28],(float)18

@@:
pop r8
movss xmm9,[r13+28] // Оригинальне инструкции
mulss xmm9,xmm12
jmp return

 

 

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

Спойлер

mov rcx,rbx
"EoCApp.exe"+161DBC6: 89 43 28                 -  mov [rbx+28],eax
"EoCApp.exe"+161DBC9: F3 41 0F 10 4D 2C        -  movss xmm1,[r13+2C]
"EoCApp.exe"+161DBCF: E8 3C 75 FC FF           -  call EoCApp.exe+15E5110
"EoCApp.exe"+161DBD4: 48 8B D3                 -  mov rdx,rbx
"EoCApp.exe"+161DBD7: 48 8B CF                 -  mov rcx,rdi
"EoCApp.exe"+161DBDA: E8 A1 B7 E5 FF           -  call EoCApp.exe+1479380
"EoCApp.exe"+161DBDF: E9 94 FD FF FF           -  jmp EoCApp.exe+161D978
"EoCApp.exe"+161DBE4: 49 8B 76 08              -  mov rsi,[r14+08]
"EoCApp.exe"+161DBE8: 41 8B 4E 14              -  mov ecx,[r14+14]
// ---------- INJECTING HERE ----------
"EoCApp.exe"+161DBEC: F3 45 0F 10 4D 28        -  movss xmm9,[r13+28]
// ---------- DONE INJECTING  ----------
"EoCApp.exe"+161DBF2: F3 45 0F 59 CC           -  mulss xmm9,xmm12
"EoCApp.exe"+161DBF7: 4C 8D 34 CE              -  lea r14,[rsi+rcx*8]
"EoCApp.exe"+161DBFB: 4C 3B F6                 -  cmp r14,rsi
"EoCApp.exe"+161DBFE: 0F 84 80 FD FF FF        -  je EoCApp.exe+161D984
"EoCApp.exe"+161DC04: 48 8B 7C 24 60           -  mov rdi,[rsp+60]
"EoCApp.exe"+161DC09: 0F 1F 80 00 00 00 00     -  nop [rax+00000000]
"EoCApp.exe"+161DC10: 48 8B 1E                 -  mov rbx,[rsi]
"EoCApp.exe"+161DC13: 48 85 FF                 -  test rdi,rdi
"EoCApp.exe"+161DC16: 74 35                    -  je EoCApp.exe+161DC4D
"EoCApp.exe"+161DC18: 4D 85 E4                 -  test r12,r12
}

Вот логи. Фильтра правильный, но ваш вариант неправильный, выдает ошибку. В скрипте смещение на ходы не 28 а 2c. Регистр r12 выходит на структуру игрока по указателям, r13  только по параметрам оружия и эффектов.

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

10 минут назад, Жажда Знаний сказал:

Фильтра правильный, но ваш вариант неправильный, выдает ошибку.

Ну я опирался на твой скрипт. А в твоем описании (и скрипте) много что не понятно - нужно смотреть в живую. А иначе много вопросов нужно задавать.

Если есть время, скайп и микрофон - могу посмотреть.

 

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

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

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

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