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

Автоматическая Активация Скрипта при запуске игры


Submarina

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

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

Используй FindWindow, укажешь заголовок окна и его класс, и при нахождении такого окна - получишь его дескриптор. Дальше тебе останется только получить ID процесса - тут уже используй GetWindowThreadProcessId, с полученным дескриптором. В итоге у тебя будет ID процесса, и дальше к нему подключайся в обычном режиме, а скрипт активируй уже как душе угодно. Garik66 тебе уже предложил вариант.

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

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

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

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

Когда писал сообщение - не видел. Ну пусть будет, может кому пригодится, и не придется мозг ломать

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

1 минуту назад, NullAlex сказал:

Когда писал сообщение - не видел. Ну пусть будет, может кому пригодится, и не придется мозг ломать

Не я не к тому, что твоё сообщение не нужно.:D

 

Чем больше вариантов и информации - всегда лучше.

 

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

А МЫСЛЬ Я ИЗЛАГАЛ GARIK66 ПРАВИЛЬНО, Я ДАЖЕ СКРИПТ СДЕЛАЛ, И У КАЗАЛ ТАМ ЧТО БЫ НЕ НАЗВАНИЯ СКАНИРОВАЛО, А СИГНАТУРУ.

 

СПАСИБО ТЕБЕ ОГРОМНОЕ Garik66 ЗА ТРУДЫ 

СПАСИБО ТЕБЯ NullAlex за помощь, 

NullAlex но мене эти функции мало о чем говорят я не такой умный в программировании как ты 

FindWindow GetWindowThreadProcessId 

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

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

А МЫСЛЬ Я ИЗЛАГАЛ GARIK66 ПРАВИЛЬНО, Я ДАЖЕ СКРИПТ СДЕЛАЛ, И У КАЗАЛ ТАМ ЧТО БЫ НЕ НАЗВАНИЯ СКАНИРОВАЛО, А СИГНАТУРУ.

Это тоже понятно, но если прочитать это:

"Автоматическое отключения скрипта AA при закрытии игры, "

То совсем не понятно, так как перед отключением игры, нужно вначале деактивировать скрипт, иначе "крестик" перед скриптом остаётся.;)

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

21 часа назад, Baracuda сказал:

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

А выложить, чтобы посмотреть?;)

Кстати вместо

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

"Автоматическое отключения скрипта AA при закрытии игры, "

можно автоматически закрыть всю СЕ с таблицей.

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

function SetStateRecord(ID, state)
         addressList = getAddressList()
         memoryRecord = addressList.getMemoryRecordByID(326)
         memoryRecord.Active = state
end

timerAutorun = createTimer(nil,true)
timerAutorun.Interval = 1000
timerAutorun.OnTimer = function ()
signatura = AOBScan("8B 84 98 1C 01 00 00")
if signatura ~= nil then
SetStateRecord("326",true)
else
if signatura == nil then
closeCE()
return caFree
end
end
end

 

ЗЫ: тебе в скрипте нужно только подставить ID твоего скрипта (который ты хочешь активировать) и любую сигнатуру для этой игры, (лучше именно из этого скрипта). 

 

Короткое видео: по этому скрипту

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

АВТО ВКЛЮЧЕНИЯ СКРИПТА, РАБОТАЕТ ТОЛЬКО С ТАЙМЕРОМ, Я ВОТ Я ТАЙМЕ ДОБАВИЛ, И ВСЁ НОРМАЛЬНО СТАЛО.

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

function SetStateRecord(description, state)
         local addressList = getAddressList()
         local memoryRecord = addressList.getMemoryRecordByDescription(description)
         memoryRecord.Active = state
end

local timerAutorun = createTimer(nil, true)
timerAutorun.Interval = 1000
timerAutorun.OnTimer = function ()
signatura = AOBScan("C3 00 00 00 00 48 8D 64 24 D8 C6")
if signatura ~= nil then
SetStateRecord("Step2", true)
end
end

 

 

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

Попробую поискать, по гаг лить, чтобы при закрытии,игры или программы Авто Отключался Скрипт.

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

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

Попробую поискать, по гаг лить, чтобы при закрытии,игры или программы Авто Отключался Скрипт.

Не парься - не найдёшь.

Если только сделать авто пере-подключение СЕ к другому процессу (не игровому, ну например к калькулятору виндовому), при выключении игры, тогда можно будет сделать, а так крестик в таблице так и будет оставаться. 

Но это уже совсем херня. Зачем это нужно?

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

ЗЫ:

А в способе NullAlex

1 час назад, NullAlex сказал:

Используй FindWindow, укажешь заголовок окна и его класс,

тоже самое, название окна игры может поменяться в МОДах и Репаках, так как оно скорее всего будет совпадать с названием exe-ника игры.

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

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

ЗЫ:

А в способе NullAlex

тоже самое, название окна игры может поменяться в МОДах и Репаках, так как оно скорее всего будет совпадать с названием exe-ника игры.

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

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

  • 4 года спустя...
В 17.06.2016 в 17:46, Garik66 сказал:

с автооткрытием процесса игры

а если только эту часть

Спойлер

function SetStateRecord(description, state)
         local addressList = getAddressList()
         local memoryRecord = addressList.getMemoryRecordByDescription(description)
         memoryRecord.Active = state
end

local timerAutorun = createTimer(nil, true)
timerAutorun.Interval = 1000
timerAutorun.OnTimer = function ()
if (getProcessIDFromProcessName("Tutorial-i386.exe")~=nil) then
OpenProcess("Tutorial-i386.exe")
SetStateRecord("Step2", true)
SetStateRecord("Step3", true)
SetStateRecord("Step4", true)
SetStateRecord("Step5", true)
SetStateRecord("Step6", true)
SetStateRecord("Step7", true)
SetStateRecord("Step8", true)
SetStateRecord("Step9", true)
else

мне надо этот скрипт

Спойлер

{ Game   : SR2_pc.exe
  Version:
  Date   : 2021-04-26
  Author : Pitronic

  This script does blah blah blah
}

[ENABLE]

aobscanmodule(_deloper_1_,SR2_pc.exe,8B * * * * * DB * * * * * 85 * B3 * 7D)
alloc(newmem_deloper_1_,$1000)

label(code_deloper_1_)
label(return_deloper_1_)
label(sutki)
label(pogoda)
label(explosion)
label(onk)
label(gravitaciya)
label(rostigroka)
label(rostpeshehodov)
label(racce)
label(PlayerMisfires1)
label(PlayerMisfires2)
label(CarSlaughter1)
label(CarSlaughter2)
label(AngryCars1)
label(AngryCars2)
label(Endurance1)
label(Endurance2)
label(WithoutRecharging1)
label(WithoutRecharging2)
label(RainOfPedestrians1)
label(RainOfPedestrians2)
label(ThePedestrianWar1)
label(ThePedestrianWar2)
label(DrunkPedestrians1)
label(DrunkPedestrians2)
label(SuperSaints1)
label(SuperSaints2)
label(EndlessAmmo1)
label(EndlessAmmo2)
label(TheDeadFlyToTheSky1)
label(TheDeadFlyToTheSky2)
label(heallth)

registersymbol(_deloper_1_)
registersymbol(code_deloper_1_)
registersymbol(sutki)
registersymbol(pogoda)
registersymbol(explosion)
registersymbol(onk)
registersymbol(gravitaciya)
registersymbol(rostigroka)
registersymbol(rostpeshehodov)
registersymbol(racce)
registersymbol(PlayerMisfires1)
registersymbol(PlayerMisfires2)
registersymbol(CarSlaughter1)
registersymbol(CarSlaughter2)
registersymbol(AngryCars1)
registersymbol(AngryCars2)
registersymbol(Endurance1)
registersymbol(Endurance2)
registersymbol(WithoutRecharging1)
registersymbol(WithoutRecharging2)
registersymbol(RainOfPedestrians1)
registersymbol(RainOfPedestrians2)
registersymbol(ThePedestrianWar1)
registersymbol(ThePedestrianWar2)
registersymbol(DrunkPedestrians1)
registersymbol(DrunkPedestrians2)
registersymbol(SuperSaints1)
registersymbol(SuperSaints2)
registersymbol(EndlessAmmo1)
registersymbol(EndlessAmmo2)
registersymbol(TheDeadFlyToTheSky1)
registersymbol(TheDeadFlyToTheSky2)
registersymbol(heallth)

newmem_deloper_1_:
push eax
mov edx,[code_deloper_1_+2]
fld [rostigroka]
fstp [edx+139831C]
fld [rostpeshehodov]
fstp [edx+1398318]
fld [explosion]
fstp [edx+1398314]
fld [gravitaciya]
fstp [edx+1398324]

cmp [sutki],#1
jne @f
mov [edx],#1074000000
mov [sutki],#0
jmp code_deloper_1_
@@:
cmp [sutki],#2
jne @f
mov [edx],#2148000000
mov [sutki],#0
jmp code_deloper_1_
@@:
cmp [sutki],#3
jne @f
mov [edx],#3222000000
mov [sutki],#0
jmp code_deloper_1_
@@:
cmp [sutki],#4
jne @f
mov [edx],#0
mov [sutki],#0
jmp code_deloper_1_

cmp [pogoda],#0
jne @f
mov [edx+11186E0],#0
jmp code_deloper_1_
// гнев бога
@@:
cmp [pogoda],#1
jne @f
mov [edx+11186E0],#296053440
mov [pogoda],#0
jmp code_deloper_1_
//  пасмурная погода
@@:
cmp [pogoda],#2
jne @f
mov [edx+11186E0],#296053008
mov [pogoda],#0
jmp code_deloper_1_
// ливень
@@:
cmp [pogoda],#3
jne @f
mov [edx+11186E0],#296053440
mov [pogoda],#0
jmp code_deloper_1_
// летний дождь
@@:
cmp [pogoda],#4
jne @f
mov [edx+11186E0],#296052792
mov [pogoda],#0
jmp code_deloper_1_
// чистое небо
@@:
cmp [pogoda],#5
jne @f
mov [edx+11186E0],#296052360
mov [pogoda],#0
jmp code_deloper_1_

@@:
cmp [onk],#1
jne @f
mov [edx+1398310],(float)6
mov [edx+139832C],(float)11
mov [edx+1398330],(float)22
jmp code_deloper_1_

@@:
cmp [onk],#0
jne @f
mov [edx+1398310],(float)0
mov [edx+139832C],(float)0
mov [edx+1398330],(float)0
jmp code_deloper_1_

code_deloper_1_:
//   mov edx,[SR2_pc.exe+100E734]
readmem(_deloper_1_,6)
pop eax
jmp return_deloper_1_

sutki:
dd 0

pogoda:
dd 0

explosion:
dd (float)0

onk:
dd 0

gravitaciya:
dd (float)0

rostigroka:
dd (float)1

rostpeshehodov:
dd (float)0

racce:
dd 0

// Осечки Игрока
PlayerMisfires1:
dd 0

PlayerMisfires2:
dd 0

// Резня Машин
CarSlaughter1:
dd 0

CarSlaughter2:
dd 0

// Злые Тачки
AngryCars1:
dd 0

AngryCars2:
dd 0

// Выносливость
Endurance1:
dd 0

Endurance2:
dd 0

// Без Перезарядки
WithoutRecharging1:
dd 0

WithoutRecharging2:
dd 0

// Дождь Пешеходами
RainOfPedestrians1:
dd 0

RainOfPedestrians2:
dd 0

// Война Пешеходов
ThePedestrianWar1:
dd 0

ThePedestrianWar2:
dd 0

//Пьяные Пешеходы
DrunkPedestrians1:
dd 0

DrunkPedestrians2:
dd 0

// Супер Святые
SuperSaints1:
dd 0

SuperSaints2:
dd 0

// Бесконечные Боеприпасы
EndlessAmmo1:
dd 0

EndlessAmmo2:
dd 0

// Мёртвые Улетают На Небо
TheDeadFlyToTheSky1:
dd 0

TheDeadFlyToTheSky2:
dd 0

heallth:
dd 0

_deloper_1_:
jmp newmem_deloper_1_
db 90
return_deloper_1_:

[DISABLE]

_deloper_1_:
//  db 8B 15 34 E7 40 01
readmem(code_deloper_1_,6)

unregistersymbol(_deloper_1_)
unregistersymbol(code_deloper_1_)
unregistersymbol(sutki)
unregistersymbol(pogoda)
unregistersymbol(rostigroka)
unregistersymbol(rostpeshehodov)
unregistersymbol(explosion)
unregistersymbol(onk)
unregistersymbol(heallth)
unregistersymbol(gravitaciya)
unregistersymbol(rostigroka)
unregistersymbol(rostpeshehodov)
unregistersymbol(racce)
unregistersymbol(PlayerMisfires1)
unregistersymbol(PlayerMisfires2)
unregistersymbol(CarSlaughter1)
unregistersymbol(CarSlaughter2)
unregistersymbol(AngryCars1)
unregistersymbol(AngryCars1)
unregistersymbol(Endurance1)
unregistersymbol(Endurance2)
unregistersymbol(WithoutRecharging1)
unregistersymbol(WithoutRecharging2)
unregistersymbol(RainOfPedestrians1)
unregistersymbol(RainOfPedestrians2)
unregistersymbol(ThePedestrianWar1)
unregistersymbol(ThePedestrianWar2)
unregistersymbol(DrunkPedestrians1)
unregistersymbol(DrunkPedestrians2)
unregistersymbol(SuperSaints1)
unregistersymbol(SuperSaints2)
unregistersymbol(EndlessAmmo1)
unregistersymbol(EndlessAmmo2)
unregistersymbol(TheDeadFlyToTheSky1)
unregistersymbol(TheDeadFlyToTheSky2)
unregistersymbol(heallth)

dealloc(newmem_deloper_1_)

{
// ORIGINAL CODE - INJECTION POINT: SR2_pc.exe.text+A9DFB

SR2_pc.exe.text+A9DD2: B9 09 00 00 00     - mov ecx,00000009
SR2_pc.exe.text+A9DD7: 8D 74 24 6C        - lea esi,[esp+6C]
SR2_pc.exe.text+A9DDB: 8D 7C 24 48        - lea edi,[esp+48]
SR2_pc.exe.text+A9DDF: 89 5C 24 1C        - mov [esp+1C],ebx
SR2_pc.exe.text+A9DE3: F3 A5              - repe movsd
SR2_pc.exe.text+A9DE5: 8B 75 08           - mov esi,[ebp+08]
SR2_pc.exe.text+A9DE8: 83 FE FF           - cmp esi,-01
SR2_pc.exe.text+A9DEB: 0F 84 C7 02 00 00  - je SR2_pc.exe.text+AA0B8
SR2_pc.exe.text+A9DF1: 80 7D 0C 01        - cmp byte ptr [ebp+0C],01
SR2_pc.exe.text+A9DF5: 0F 85 81 02 00 00  - jne SR2_pc.exe.text+AA07C
// ---------- INJECTING HERE ----------
SR2_pc.exe.text+A9DFB: 8B 15 34 E7 40 01  - mov edx,[SR2_pc.exe+100E734]
// ---------- DONE INJECTING  ----------
SR2_pc.exe.text+A9E01: DB 05 34 E7 40 01  - fild dword ptr [SR2_pc.exe+100E734]
SR2_pc.exe.text+A9E07: 85 D2              - test edx,edx
SR2_pc.exe.text+A9E09: B3 01              - mov bl,01
SR2_pc.exe.text+A9E0B: 7D 06              - jnl SR2_pc.exe.text+A9E13
SR2_pc.exe.text+A9E0D: D8 05 D8 BF E5 00  - fadd dword ptr [SR2_pc.exe.rdata+A3FD8]
SR2_pc.exe.text+A9E13: DC 0D 30 C0 E5 00  - fmul qword ptr [SR2_pc.exe.rdata+A4030]
SR2_pc.exe.text+A9E19: 8B 4D 48           - mov ecx,[ebp+48]
SR2_pc.exe.text+A9E1C: 85 C9              - test ecx,ecx
SR2_pc.exe.text+A9E1E: D9 5C 24 10        - fstp dword ptr [esp+10]
SR2_pc.exe.text+A9E22: 7C 3A              - jl SR2_pc.exe.text+A9E5E
}

 

чтоб сам включался только с одним универсальным Step чтоб во все любые скрипты такие вставить и они автоматический активировались. а отключать не обязательно, отключать и включать через флаги можно. Возожно так? Это мне нужно для так называемого скрипта Активировать трейнер. Чтоб на одну гарячую клавишу меньше, и ушла необходимость объединять скрипты. Очень надо! Пожалуйста.

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

9 часов назад, Pitronic сказал:

mov [edx+1398310],(float)0

:offtopic: Что то какая то не логичная бессмыслица....  Строчку с адресом пропускаешь в поиске места... "8B 15 34 E7 40 01" а во что (что то пишешь) не далеко от адреса то ушло.  И если уж будет другая версия игры, то во что ты пишешь, явно будет другим, а это вылет.  Далее следуют комментарии, мол игра то вылетает (при активации той или иной функции) , а ты сиди и думай, почему это происходит  :)  А ответ прост: другая версия игры. Так что смысла в пропуске aobscan байт - ну просто нет, и меньше будет проблем. Уж лучше пусть не работает, чем вылетает.  Или же я ошибаюсь, а ты уже проверил и учел этот момент и всё работает ? 

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

11 часов назад, Pitronic сказал:

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

А в чём проблема? Бери, да вставляй.

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

1 час назад, LIRW сказал:

всё работает ? 

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

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

В 18.06.2016 в 12:56, Garik66 сказал:

Скрипт:

этот скрипт срабатывает только при нажатии кнопочки поддтвердить, в трейнере этого не сделаешь.

 

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

14 часов назад, Pitronic сказал:

этот скрипт срабатывает только при нажатии кнопочки поддтвердить, в трейнере этого не сделаешь.

Как это не сделаешь? Еще как сделаешь. Что мешает тебе этот скрипт стриггерить при показе формы трейнера?

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

1 час назад, Xipho сказал:

стриггерить при показе формы трейнера

А как это реализовать? Что в луа дописать надо?

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

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

А как это реализовать?

А что ты всё хочешь сделать я не пойму :rolleyes: активировать же трейнер можно и клавишу..  Или что ты конкретно задумал в кратце ?

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

6 часов назад, Pitronic сказал:

А как это реализовать? Что в луа дописать надо?

Надо дописать код, который сработает на событие открытия формы трейнера, и в этом коде прописать активацию того скрипта, который автоматически активирует те твои "активационные скрипты".

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

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

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

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