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

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

34 минуты назад, Baracuda сказал:

только сейчас увидел, скрипт работает, добавляет уровень, но только одному герою, а не двоим сразу, это почему так, 

хотя сам скрипт работает со всеми игроками.

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

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

14 минуты назад, Baracuda сказал:

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

Вариантов несколько, но писать и объяснять долго, проще было бы по Скайпу, но у тебя нету вебкамеры (мы уже пробовали).

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

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

попробуй объяснить так, я думаю разберусь.

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

3 минуты назад, Baracuda сказал:

ну примером хотя бы объясни, на каком ни будь скрипте покажи.  

 

19 час назад, Garik66 сказал:

 

Baracuda, короче, у меня сейчас, к сожалению со временем плохо,

 

Если была бы у тебя веб камера,  мы быстро это сделали. А так не могу, очень долго всё это объяснять.

Так как:

14 минуты назад, Garik66 сказал:

Вариантов несколько,

и они зависят от кода игры, как работают инструкции.

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

Для одного из вариантов, сейчас попробую переделать твой скрипт.

 

Вариант 1:

Если инструкция, которую ты выбрал первые два своих обращения делает по двум твоим героям:

Также, как и в первом скрипте уровень будет добавляться при flag = 1 (назначай вручную или хоткеем), потом flag автоматом станет равным 2 и после добавления ещё одного одного уровня, станет равным 0.

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

[ENABLE]

aobscanmodule(Level,EoCApp.exe,8B 46 08 44 8B AE 3C 01 00 00)
alloc(newmem,2048,Level)
label(returnhere)
label(code)
label(flag)
registersymbol(flag)

newmem:
cmp [flag],1
jne @f
add [rsi+08],#1
inc [flag]
jmp code

@@:
cmp [flag],2
jne code
add [rsi+08],#1
mov [flag],0

code:
mov eax,[rsi+08]        // передать новое значение уровня в регистр eax
mov r13d,[rsi+0000013C]
jmp returnhere

flag:
dd 0

Level:
jmp newmem
nop
nop
nop
nop
nop
returnhere:
registersymbol(Level)

[DISABLE]
Level:
db 8B 46 08 44 8B AE 3C 01 00 00

unregistersymbol(Level)
unregistersymbol(flag)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: "EoCApp.exe"+9CB867

"EoCApp.exe"+9CB843: BA 80 00 00 00        -  mov edx,00000080
"EoCApp.exe"+9CB848: 49 8B CC              -  mov rcx,r12
"EoCApp.exe"+9CB84B: FF 90 88 00 00 00     -  call qword ptr [rax+00000088]
"EoCApp.exe"+9CB851: 84 C0                 -  test al,al
"EoCApp.exe"+9CB853: 74 12                 -  je EoCApp.exe+9CB867
"EoCApp.exe"+9CB855: 4D 8B C4              -  mov r8,r12
"EoCApp.exe"+9CB858: 48 8B D7              -  mov rdx,rdi
"EoCApp.exe"+9CB85B: 49 8B CD              -  mov rcx,r13
"EoCApp.exe"+9CB85E: E8 2D 02 F2 FF        -  call EoCApp.exe+8EBA90
"EoCApp.exe"+9CB863: 44 0F B6 F8           -  movzx r15d,al
// ---------- INJECTING HERE ----------
"EoCApp.exe"+9CB867: 8B 46 08              -  mov eax,[rsi+08]
"EoCApp.exe"+9CB86A: 44 8B AE 3C 01 00 00  -  mov r13d,[rsi+0000013C]
// ---------- DONE INJECTING  ----------
"EoCApp.exe"+9CB871: BA 0F 00 00 00        -  mov edx,0000000F
"EoCApp.exe"+9CB876: 8B C8                 -  mov ecx,eax
"EoCApp.exe"+9CB878: 0F AF C8              -  imul ecx,eax
"EoCApp.exe"+9CB87B: FF C9                 -  dec ecx
"EoCApp.exe"+9CB87D: 0F AF C8              -  imul ecx,eax
"EoCApp.exe"+9CB880: 66 0F 6E C1           -  movd xmm0,ecx
"EoCApp.exe"+9CB884: F3 0F E6 C0           -  cvtdq2pd xmm0,xmm0
"EoCApp.exe"+9CB888: F2 41 0F 59 C2        -  mulsd xmm0,xmm10
"EoCApp.exe"+9CB88D: F2 41 0F 5E C1        -  divsd xmm0,xmm9
"EoCApp.exe"+9CB892: F2 44 0F 2C E0        -  cvttsd2si r12d,xmm0
}

 

 

PS: Забыл метку поставить @@, исправил скрипт, если уже проверял, перепроверь. 

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

вот как выглядит два адреса, первый герой, у него адрес в самом верху, http://rgho.st/74N2jbhVw.view

а твой скрипт, добавляет только одному герою, один уровень.

 

активируешь скрипт, записываешь в flag 1 добавляется 1 уровень 1 игроку, и Flag становится на 2, ещё раз в Flag добавляешь 1, он всё равно записывает 1 уровень первому игроку, и Flag остаётся на 2.

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

2 минуты назад, Baracuda сказал:

вот как выглядит два адреса, первый герой, у него адрес в самом верху, http://rgho.st/74N2jbhVw.view

Скрипт проверь.

я его подккоректировал:

PS: Забыл метку поставить @@, исправил скрипт, если уже проверял, перепроверь. 

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

4 минуты назад, Baracuda сказал:

а твой скрипт, добавляет только одному герою, один уровень.

Ну если уже проверил обновлённый скрипт, то значит игровая инструкция работает по другому, а не как я описал в варианте:

 

15 минуту назад, Garik66 сказал:

Если инструкция, которую ты выбрал первые два своих обращения делает по двум твоим героям:

 

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

Только что, Baracuda сказал:

я так понял, если у меня будут 4 героя, мене надо будет в писать cmp [flag],3  cmp [flag],4

Получается, что так, только не забывай в каждой секции inc [flag] и в последней - обнулить flag/

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

нашел другую инструкция, сделал скрипт, из этой инструкции это инструкция работает со всеми героями, и твоими, и нейтральными, и врагами, она также прибавляет уровень, я сделал
инструкция с 4 игроками, чтобы можно было добавлять, сразу 4 игрокам по одному уровню, но всё равно добавляет только 2 моим игрокам, которыми я управляю.

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

[ENABLE]

aobscanmodule(Level,EoCApp.exe,8B 4B 08 83 C1 0A)
alloc(newmem,2048,Level)
label(returnhere)
label(code)
label(flag)
registersymbol(flag)

newmem:
cmp [flag],1
jne @f
add [rbx+08],#1
inc [flag]
jmp code

@@:
cmp [flag],2
jne @f
add [rbx+08],#1
mov [flag],0

@@:
cmp [flag],3
jne @f
add [rbx+08],#1
mov [flag],0

@@:
cmp [flag],4
jne code
add [rbx+08],#1
mov [flag],0

code:
mov ecx,[rbx+08]
add ecx,0A
jmp returnhere

flag:
dd 0

Level:
jmp newmem
nop
returnhere:
registersymbol(Level)

[DISABLE]
Level:
db 8B 4B 08 83 C1 0A

unregistersymbol(Level)
unregistersymbol(flag)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: "EoCApp.exe"+E48F2B

"EoCApp.exe"+E48F0A: 48 FF C2                 -  inc rdx
"EoCApp.exe"+E48F0D: 48 83 C1 08              -  add rcx,08
"EoCApp.exe"+E48F11: 49 3B D1                 -  cmp rdx,r9
"EoCApp.exe"+E48F14: 75 BA                    -  jne EoCApp.exe+E48ED0
"EoCApp.exe"+E48F16: 85 FF                    -  test edi,edi
"EoCApp.exe"+E48F18: 75 05                    -  jne EoCApp.exe+E48F1F
"EoCApp.exe"+E48F1A: BF 64 00 00 00           -  mov edi,00000064
"EoCApp.exe"+E48F1F: 40 0F B6 D6              -  movzx edx,sil
"EoCApp.exe"+E48F23: 48 8B CB                 -  mov rcx,rbx
"EoCApp.exe"+E48F26: E8 55 34 00 00           -  call EoCApp.exe+E4C380
// ---------- INJECTING HERE ----------
"EoCApp.exe"+E48F2B: 8B 4B 08                 -  mov ecx,[rbx+08]
"EoCApp.exe"+E48F2E: 83 C1 0A                 -  add ecx,0A
// ---------- DONE INJECTING  ----------
"EoCApp.exe"+E48F31: 0F AF C1                 -  imul eax,ecx
"EoCApp.exe"+E48F34: 0F AF C7                 -  imul eax,edi
"EoCApp.exe"+E48F37: 66 0F 6E C0              -  movd xmm0,eax
"EoCApp.exe"+E48F3B: 0F 5B C0                 -  cvtdq2ps xmm0,xmm0
"EoCApp.exe"+E48F3E: F3 0F 5E 05 56 8A 2C 00  -  divss xmm0,[EoCApp.exe+111199C]
"EoCApp.exe"+E48F46: F3 0F 2C F8              -  cvttss2si edi,xmm0
"EoCApp.exe"+E48F4A: 89 7C 24 48              -  mov [rsp+48],edi
"EoCApp.exe"+E48F4E: 40 84 F6                 -  test sil,sil
"EoCApp.exe"+E48F51: 0F 85 CD 00 00 00        -  jne EoCApp.exe+E49024
"EoCApp.exe"+E48F57: 48 8B B3 B0 01 00 00     -  mov rsi,[rbx+000001B0]
}

 

это если бы у меня были 4 героя а не 2 я бы пролетел

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

13 минуты назад, Baracuda сказал:

это если бы у меня были 4 героя а не 2 я бы пролетел

Потому что читаешь не внимательно:

40 минуты назад, Garik66 сказал:

только не забывай в каждой секции inc [flag] и в последней - обнулить flag/

Вот так нужно:

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

[ENABLE]

aobscanmodule(Level,EoCApp.exe,8B 4B 08 83 C1 0A)
alloc(newmem,2048,Level)
label(returnhere)
label(code)
label(flag)
registersymbol(flag)

newmem:
cmp [flag],1
jne @f
add [rbx+08],#1
inc [flag]
jmp code

@@:
cmp [flag],2
jne @f
add [rbx+08],#1
inc [flag]
jmp code

@@:
cmp [flag],3
jne @f
add [rbx+08],#1
inc [flag]
jmp code

@@:
cmp [flag],4
jne code
add [rbx+08],#1
mov [flag],0

code:
mov ecx,[rbx+08]
add ecx,0A
jmp returnhere

flag:
dd 0

Level:
jmp newmem
nop
returnhere:
registersymbol(Level)

[DISABLE]
Level:
db 8B 4B 08 83 C1 0A

unregistersymbol(Level)
unregistersymbol(flag)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: "EoCApp.exe"+E48F2B

"EoCApp.exe"+E48F0A: 48 FF C2                 -  inc rdx
"EoCApp.exe"+E48F0D: 48 83 C1 08              -  add rcx,08
"EoCApp.exe"+E48F11: 49 3B D1                 -  cmp rdx,r9
"EoCApp.exe"+E48F14: 75 BA                    -  jne EoCApp.exe+E48ED0
"EoCApp.exe"+E48F16: 85 FF                    -  test edi,edi
"EoCApp.exe"+E48F18: 75 05                    -  jne EoCApp.exe+E48F1F
"EoCApp.exe"+E48F1A: BF 64 00 00 00           -  mov edi,00000064
"EoCApp.exe"+E48F1F: 40 0F B6 D6              -  movzx edx,sil
"EoCApp.exe"+E48F23: 48 8B CB                 -  mov rcx,rbx
"EoCApp.exe"+E48F26: E8 55 34 00 00           -  call EoCApp.exe+E4C380
// ---------- INJECTING HERE ----------
"EoCApp.exe"+E48F2B: 8B 4B 08                 -  mov ecx,[rbx+08]
"EoCApp.exe"+E48F2E: 83 C1 0A                 -  add ecx,0A
// ---------- DONE INJECTING  ----------
"EoCApp.exe"+E48F31: 0F AF C1                 -  imul eax,ecx
"EoCApp.exe"+E48F34: 0F AF C7                 -  imul eax,edi
"EoCApp.exe"+E48F37: 66 0F 6E C0              -  movd xmm0,eax
"EoCApp.exe"+E48F3B: 0F 5B C0                 -  cvtdq2ps xmm0,xmm0
"EoCApp.exe"+E48F3E: F3 0F 5E 05 56 8A 2C 00  -  divss xmm0,[EoCApp.exe+111199C]
"EoCApp.exe"+E48F46: F3 0F 2C F8              -  cvttss2si edi,xmm0
"EoCApp.exe"+E48F4A: 89 7C 24 48              -  mov [rsp+48],edi
"EoCApp.exe"+E48F4E: 40 84 F6                 -  test sil,sil
"EoCApp.exe"+E48F51: 0F 85 CD 00 00 00        -  jne EoCApp.exe+E49024
"EoCApp.exe"+E48F57: 48 8B B3 B0 01 00 00     -  mov rsi,[rbx+000001B0]
}

 

Вот этот скрипт будет добавлять уровень 4 героям.

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

Только что, Baracuda сказал:

я так Игорь пробовал, пока ответа ждал твоего, всё равно прибавляет 2 игрокам а не 4.

Твоих героев сколько?

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

когда начинаешь игру с начало, то их всего 2, а после можно нанять ещё 2, и того будет 4 это максимум.

вот я и говорю что по ходу игры если бы я нанял ещё двоих я бы не смог им добавить уровень 

я тебя просил сделать только на 2, но я думал там сам справлюсь, и добавлю сам а теперь что-то завис я.

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

Ты сперва найми этих 2 героев и проверь скрипт. Увидишь - скрипт будет добавлять 4-ым именно твоим героям. (так работает твоя инструкция).

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

PS: Но я бы делал подобный скрипт (если бы делал конечно ;)) не так.

А по другому. 

Т.е. чтобы добавлялся уровень именно тому герою, которому я хочу.

 

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

я бы сделать, я толком не знаю как базовые адреса делать.

а через ID переключения не будет, я с переключением делать не умею, вот вчера получилось, видео которое ты смотрел,

я на о бум святых делал, подбирал сидел смешения.

 

я имею введу 

Адрес базовый +b0 я это значении подбирал

потом ты мене подсказал как базовый соединить с остальными

и получилось вот так

 

адрес уровня      - [[item-ptr]+b0]+008

адрес прочности - [[item-ptr]+b0]+154

 

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

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

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

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