Pitronic Опубликовано 4 сентября, 2022 Поделиться Опубликовано 4 сентября, 2022 Когда то на форуме нашёл полезный Lua скрипт по авто активации чита. Спойлер function SetStateRecord(description, state) local addressList = getAddressList() local memoryRecord = addressList.getMemoryRecordByDescription(description) memoryRecord.Active = state end timerAutorun = createTimer(nil,true) timerAutorun.Interval = 1000 timerAutorun.OnTimer = function () if (getProcessIDFromProcessName("FarCry.exe")~=nil) then OpenProcess("FarCry.exe") --getAddressList().getMemoryRecordByDescription('EnableCheckbox1').Active = true end end Сейчас возникла необходимость исползоват этот код в таблице. но придобавлении в таблицу он не добавляется пишет что не весь код годенн к инекции Спойлер {$lua} function SetStateRecord(description, state) local addressList = getAddressList() local memoryRecord = addressList.getMemoryRecordByDescription(description) memoryRecord.Active = state end timerAutorun = createTimer(nil,true) timerAutorun.Interval = 1000 timerAutorun.OnTimer = function () if (getProcessIDFromProcessName("FarCry.exe")~=nil) then OpenProcess("FarCry.exe") --getAddressList().getMemoryRecordByDescription('EnableCheckbox1').Active = true end end {$asm} Как правильно написать этот скрипт для табличного варианта? Ссылка на комментарий Поделиться на другие сайты Поделиться
MasterGH Опубликовано 7 сентября, 2022 Поделиться Опубликовано 7 сентября, 2022 Какую логику работы скриптов хотим получить? Вариант1 1. Если нажали на галку в таблице CE, то делать автоматически аттач к процессу? 2. Как только подключился процесс, то активировать другую галку? Или вариант2 1. Чтобы нажали на галку и начался поиск процесса 2. Как только процесс найден, то все вложенные записи под этой же галкой показались(развернулись)? Критерий "Как правильно написать этот скрипт для табличного варианта?" мне пока не совсем понятен. Ссылка на комментарий Поделиться на другие сайты Поделиться
Pitronic Опубликовано 7 сентября, 2022 Автор Поделиться Опубликовано 7 сентября, 2022 (изменено) 1 час назад, MasterGH сказал: мне пока не совсем понятен Этот скрипт пишется в луа в верху таьлици и активирует скрипт в таблице сразу после запуска игры, мне нужен этот скрипт именно в таблице, чтоб при активации скрипта активировался другой скрипт указаный в этом месте getAddressList().getMemoryRecordByDescription('EnableCheckbox1').Active = true -- поиск по имени скрипта он у меня не добавляется в таблицу вот такая ошибка. Спойлер Изменено 7 сентября, 2022 пользователем Pitronic Дополнение Ссылка на комментарий Поделиться на другие сайты Поделиться
Pitronic Опубликовано 7 сентября, 2022 Автор Поделиться Опубликовано 7 сентября, 2022 В общем мне даже не обязательно подключение к процессу се уже подключено, мне нужна активация диактивация дочерних скриптов в таблице. Активировал один он автоматом активировал другой. Ссылка на комментарий Поделиться на другие сайты Поделиться
imaginary Опубликовано 7 сентября, 2022 Поделиться Опубликовано 7 сентября, 2022 2 часа назад, Pitronic сказал: Активировал один он автоматом активировал другой. 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
Pitronic Опубликовано 7 сентября, 2022 Автор Поделиться Опубликовано 7 сентября, 2022 Лена спасибо. Самое смешное что я сам На эту тему урок дезал Здесь Но почему то не догнал. Ссылка на комментарий Поделиться на другие сайты Поделиться
MasterGH Опубликовано 7 сентября, 2022 Поделиться Опубликовано 7 сентября, 2022 9 часов назад, Pitronic сказал: В общем мне даже не обязательно подключение к процессу се уже подключено, мне нужна активация диактивация дочерних скриптов в таблице. Активировал один он автоматом активировал другой. Хотя ответ был, но я приведу функции, которые могут пригодится 1. Открытие процесса: openProcess("Tutorial-i386.exe") 2. Добавить процесс в список процессов для автоподкючения: getAutoAttachList().add("Tutorial-i386.exe") 3. Функция, которая срабатывает, когда процесс подключился: function onOpenProcess(processid) // здесь некоторый код end 4. Активация записи по её имени: getAddressList().getMemoryRecordByDescription("Название записи в таблице CE").Active = true. Если такой записи еще в таблице нет, то вызовет ошибку. 5. При добавлении записи в CE сразу вызывается код в АА-скрипте. Так CE проверяет все, что там находится. Это может создать лишний таймер. Как это проверить? Через логи и print() Спойлер // перед добавлением скрипта, запись уже уже должна быть создана в таблице с пустыми [ENABLE] и [DISABLE] {$lua} print('инициализирован "'..memrec.Description..'"') {$asm} [ENABLE] {$lua} print('активирован "'..memrec.Description..'"') {$asm} [DISABLE] {$lua} print('не активирован "'..memrec.Description..'"') {$asm} 6. Если объединить пункты выше и отказаться от таймера, то получится что-то вроде этого. Спойлер [ENABLE] {$lua} process_name = 'Tutorial-i386.exe' -- Название процесса record_name = 'Активирующий скрипт' -- Название записи getAutoAttachList().add(process_name) -- Автоподключение function onOpenProcess(process_id) -- Обработчик подключения -- активация record записи getAddressList().getMemoryRecordByDescription(record_name).Active = true end [DISABLE] 9 часов назад, Pitronic сказал: он у меня не добавляется в таблицу вот такая ошибка. 7. Ошибка, очень похоже, связана с названием записи напротив галки. Т.е. она отсутствует. 8. Ну, а как программное разворачивать вложенные читы и активировать их? Идем в документацию и что-то вроде этого ищем про memoryRecord.Options. Выставляnm Options можно как вручную так и скриптом Спойлер local addressList = getAddressList() local memoryRecord = getAddressList().getMemoryRecordByDescription("Активирующий скрипт") memoryRecord.Options = "moHideChildren, moActivateChildrenAsWell, moAllowManualCollapseAndExpand" memoryRecord.Active = true --[[ Options: String set - a string enclosed by square brackets filled with the options seperated by a comma. Valid options are: moHideChildren, moActivateChildrenAsWell, moDeactivateChildrenAsWell, moRecursiveSetValue, moAllowManualCollapseAndExpand, moManualExpandCollapse, moAlwaysHideChildren]]-- Спойлер Таблица на всякий случай, если потребуется для изучения или проверки Tutorial-i386.CT Более полно все функции описаны в документации Хотя там не все есть. Например, про "memrec" внутри уже созданного АА-скрипта. Тогда не нужно использовать local memoryRecord = getAddressList().getMemoryRecordByDescription("Активирующий скрипт"), а сразу memrec и с ним работать. Ссылка на комментарий Поделиться на другие сайты Поделиться
Pitronic Опубликовано 7 сентября, 2022 Автор Поделиться Опубликовано 7 сентября, 2022 24 минуты назад, MasterGH сказал: могут пригодится Скопировал ваш код, скорее всего именно пригодится, я обычно трейнеры с чекбоксами делаю по готовой форме, что я когда-то сделал. Если без этого скрипта делать как мне советует, imaginary придётся форму править, а так добавил скрипт в таблицу. Дочерние скрипты в низ, и чекбоксы на исполняемые скрипты делать которые всегда наверху. Ссылка на комментарий Поделиться на другие сайты Поделиться
Partizan Опубликовано 7 сентября, 2022 Поделиться Опубликовано 7 сентября, 2022 Может не в тему. Но как сделать средствами СЕ вменяемый тренер. Допустим на эту таблицу? Ссылка на комментарий Поделиться на другие сайты Поделиться
Pitronic Опубликовано 8 сентября, 2022 Автор Поделиться Опубликовано 8 сентября, 2022 13 часов назад, Partizan сказал: вменяемый тренер Не понял твою мысль но если это подойдёт Жми сюда Ссылка на комментарий Поделиться на другие сайты Поделиться
MasterGH Опубликовано 8 сентября, 2022 Поделиться Опубликовано 8 сентября, 2022 18 часов назад, Partizan сказал: Может не в тему. Но как сделать средствами СЕ вменяемый тренер. Допустим на эту таблицу? Ну, такой я предлагать не буду 😃 Спойлер http://i.imgur.com/mhHAyN6.png Ну, может такой вменямый (визуально)? Спойлер http://forum.cheatengine.org/files/capture2_108.jpg Большое количество опций, наверно, лучше оставить в таблице как есть без трейнеров. Вот пример Спойлер Или вот такая вменяемая таблица? Спойлер Или такая Спойлер Во всяком случае можно выбрать отдельные опции или сгруппировать их, что-то вроде этого вполне вменяемо (сделан на Cheat Engine) Спойлер А если опций еще больше и нужны галки, то тогда использовать контролы. Списки, вкладки и т.п. Ссылка на комментарий Поделиться на другие сайты Поделиться
Pitronic Опубликовано 15 декабря, 2022 Автор Поделиться Опубликовано 15 декабря, 2022 (изменено) В 07.09.2022 в 20:07, MasterGH сказал: которые могут пригодится В общем так, пустая таблица работает. А вот таблица с читами для игры хромает. Вот скрипт в луа что вверху вставляю. Спойлер local timerAutorun = createTimer(nil, true) timerAutorun.Interval = 1000 timerAutorun.OnTimer = function () if (getOpenedProcessID() ~= getProcessIDFromProcessName("engine.exe")) then OpenProcess("engine.exe") end if (getOpenedProcessID() ~= getProcessIDFromProcessName("game.exe")) then OpenProcess("game.exe") end if (getOpenedProcessID() ~= getProcessIDFromProcessName("Pet Show Craze.exe")) then OpenProcess("Pet Show Craze.exe") end end local addressList = getAddressList() local memoryRecord = getAddressList().getMemoryRecordByDescription("Activation") memoryRecord.Options = "moHideChildren, moActivateChildrenAsWell, moAllowManualCollapseAndExpand" memoryRecord.Active = true активирующий скрипт пустой. В дочерних читах скрипты асм. Как работает. Если таблицу запустить после игры и согласится выполнить скрипт работает нормально. А если тоже самой сделать до запуска игры. Активирующий скрипт включается дочерние читы остаются выключенными. Наверное там нужна проверка на присоединение к процессу. Изменено 15 декабря, 2022 пользователем Pitronic исправление орфографии Ссылка на комментарий Поделиться на другие сайты Поделиться
Xipho Опубликовано 16 декабря, 2022 Поделиться Опубликовано 16 декабря, 2022 14 часов назад, Pitronic сказал: Наверное там нужна проверка на присоединение к процессу. Ну так добавь ее, в чем проблема? Ссылка на комментарий Поделиться на другие сайты Поделиться
Pitronic Опубликовано 16 декабря, 2022 Автор Поделиться Опубликовано 16 декабря, 2022 (изменено) 2 часа назад, Xipho сказал: в чем проблема Я не знаю как. Вообще луа не знаю. Пользуюсь тем что мне кто то когда то дал, или нашёл на просторах интернета. Единственное что получается, пробую изменять методом тыка уже готовое под себя, Как например здесь Изменено 16 декабря, 2022 пользователем Pitronic исправление орфографии Ссылка на комментарий Поделиться на другие сайты Поделиться
Xipho Опубликовано 16 декабря, 2022 Поделиться Опубликовано 16 декабря, 2022 2 минуты назад, Pitronic сказал: Я не знаю как. Вообще луа не знаю. Пользуюсь тем что мне кто то когда то дал, или нашёл на просторах интернета. Единственное что получается, пробую изменять методом тыка уже готовое под себя. За то время, пока ты методом тыка пытаешься менять, уже можно было без проблем изучить основы Lua, тем более, что это очень простой язык. Ссылка на комментарий Поделиться на другие сайты Поделиться
Pitronic Опубликовано 16 декабря, 2022 Автор Поделиться Опубликовано 16 декабря, 2022 1 минуту назад, Xipho сказал: можно было без проблем изучить основы Lua Язык может и простой если знать источник информации. А искать эти источники честно признаюсь лень, так как больше времени провожу в играх и взломах. Руки не доходят до всего остального. Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения