Cillstrik Опубликовано 7 декабря, 2021 Поделиться Опубликовано 7 декабря, 2021 Привет.Мне нужно сделать трейнер который будет исполнять такую последовательность действий. 1.Искать процесс xrEngine.exe, если нашёл то 2. 2.Активировать скрипт из таблицы 3.Ожидать 5 секунд 4.Деактивировать скрипт из таблицы 5.Ожидать 5 секунд 6.Вернутся на 2 Я искал по форуму но так и не понял как это сделать объясните поподробнее пожалуйста. Ссылка на комментарий Поделиться на другие сайты Поделиться
Antonshka Опубликовано 8 декабря, 2021 Поделиться Опубликовано 8 декабря, 2021 8 часов назад, Cillstrik сказал: 1.Искать процесс xrEngine.exe, если нашёл то 2. Можно так: - Открытие процесса записать в самое начало Lua Engine. openProcess(processid) : causes cheat engine to open the given processid openProcess(processname): causes cheat engine to find and open the given process - В СЕ дизайнере создать форму, на форме создать таймер, с интервалом 5000 милисекунд. В событии таймера (OnTimer) проверять, если скрипт в таблице не активирован, то активировать, а если активирован, то деактивировать. Спойлер openProcess("TOTALCMD64.EXE") if (getOpenedProcessID() == 0) then print("Can't open process") --closeCE() --return caFree end al = getAddressList() someScriptNameInTable = al.getMemoryRecordByDescription("someScriptNameInTable") function UDF1_CETimer1Timer(sender) if someScriptNameInTable.Active == false then someScriptNameInTable.Active = true elseif someScriptNameInTable.Active == true then someScriptNameInTable.Active = false end end Ссылка на комментарий Поделиться на другие сайты Поделиться
Xipho Опубликовано 8 декабря, 2021 Поделиться Опубликовано 8 декабря, 2021 7 часов назад, Antonshka сказал: function UDF1_CETimer1Timer(sender) if someScriptNameInTable.Active == false then someScriptNameInTable.Active = true elseif someScriptNameInTable.Active == true then someScriptNameInTable.Active = false end end Тогда уж вот так: function UDF1_CETimer1Timer(sender) someScriptNameInTable.Active = !someScriptNameInTable.Active end Правда не уверен, что not есть в луа. Вроде должен быть. Ссылка на комментарий Поделиться на другие сайты Поделиться
Antonshka Опубликовано 9 декабря, 2021 Поделиться Опубликовано 9 декабря, 2021 14 часов назад, Xipho сказал: Тогда уж вот так: function UDF1_CETimer1Timer(sender) someScriptNameInTable.Active = !someScriptNameInTable.Active end Да, так определенно лучше. 14 часов назад, Xipho сказал: Правда не уверен, что not есть в луа. Вроде должен быть. Да, только похоже что ты по привычке написал С++ вариан not'a. В Lua not так и пишется - not. Правда вчера я не понял почему not не сработал вот в этой ситуации --Допустим процесс открыть не удалось if (not getOpenedProcessID()) then -- Так не работает, несмотря на то что getOpenedProcessID() вернул 0 if (not (getOpenedProcessID())) then -- И так тоже не работает if (getOpenedProcessID() == 0) then -- Так работает print("Can't open process") --closeCE() --return caFree end Из celua.txt getOpenedProcessID() : Returns the currently opened process. If none is open, returns 0 Пришлось сравнивать с нолем, вместо not. Хотя в С++ в таких ситуациях not отрабатывает нормально. Ссылка на комментарий Поделиться на другие сайты Поделиться
Xipho Опубликовано 9 декабря, 2021 Поделиться Опубликовано 9 декабря, 2021 1 час назад, Antonshka сказал: Пришлось сравнивать с нолем, вместо not. Хотя в С++ в таких ситуациях not отрабатывает нормально. В плюсах есть автокаст. То есть, 0 трактуется как false, а любой не ноль - как true. В луа такого, похоже, нет, потому нужны явные сравнения. Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения