Arimor Опубликовано 29 января, 2021 Поделиться Опубликовано 29 января, 2021 Как добавить на трейнер отображение значений найденных в памяти игры по найденным адресам? Ссылка на комментарий Поделиться на другие сайты Поделиться
NubZilla Опубликовано 29 января, 2021 Поделиться Опубликовано 29 января, 2021 4 часа назад, Arimor сказал: Как добавить на трейнер отображение значений найденных в памяти игры по найденным адресам? У меня вот так получилось function CETrainer_CEButton1Click(sender) openProcess("ac_client.exe") CETrainer.CEButton1.Caption = readInteger("50F500") end Показывает количество игроков. 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
Arimor Опубликовано 30 января, 2021 Автор Поделиться Опубликовано 30 января, 2021 15 часов назад, NubZilla сказал: У меня вот так получилось Спасибо, как будет возможность поставить лайк, сделаю :)) Ссылка на комментарий Поделиться на другие сайты Поделиться
Arimor Опубликовано 30 января, 2021 Автор Поделиться Опубликовано 30 января, 2021 16 часов назад, NubZilla сказал: У меня вот так получилось function CETrainer_CEButton1Click(sender) openProcess("ac_client.exe") CETrainer.CEButton1.Caption = readInteger("50F500") end Показывает количество игроков. А как сделать чтобы это значение автоматически обновлялось на актуальное число? Ссылка на комментарий Поделиться на другие сайты Поделиться
Senpai Опубликовано 30 января, 2021 Поделиться Опубликовано 30 января, 2021 14 минут назад, Arimor сказал: А как сделать чтобы это значение автоматически обновлялось на актуальное число? добавить таймер или поток Ссылка на комментарий Поделиться на другие сайты Поделиться
Arimor Опубликовано 30 января, 2021 Автор Поделиться Опубликовано 30 января, 2021 7 минут назад, Senpai сказал: добавить таймер или поток Можно поподробнее? Как внедрить это в код что выше? 17 часов назад, NubZilla сказал: openProcess("ac_client.exe") Почему именно в процессе этого файла нужно искать данные? 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
Arimor Опубликовано 30 января, 2021 Автор Поделиться Опубликовано 30 января, 2021 while true do function CETrainer_CEButton1Click(sender) openProcess("ac_client.exe") CETrainer.CEButton1.Caption = readInteger("50F500") end end Делал так но почему-то CE зависает после такого, делал цикл и внутри функции тоже подвисает. Почему? Ссылка на комментарий Поделиться на другие сайты Поделиться
Xipho Опубликовано 31 января, 2021 Поделиться Опубликовано 31 января, 2021 6 часов назад, Arimor сказал: Делал так но почему-то CE зависает после такого, делал цикл и внутри функции тоже подвисает. Почему? Потому что ты делаешь неправильно. Почитай основы использования LUA в СЕ и вообще основы в целом 16 часов назад, Arimor сказал: Почему именно в процессе этого файла нужно искать данные? Если у тебя другая игра, то и процесс будет другой. Похоже, ты вообще основ не знаешь абсолютно. Рекомендую их изучить, иначе так и будут сыпаться вопросы, а понимания не будет. Ссылка на комментарий Поделиться на другие сайты Поделиться
Arimor Опубликовано 31 января, 2021 Автор Поделиться Опубликовано 31 января, 2021 8 часов назад, Xipho сказал: Потому что ты делаешь неправильно. Почитай основы использования LUA в СЕ и вообще основы в целом Весь день читал, тестировал. Код абсолютно правильный. Тут нету ошибок. 9 часов назад, Xipho сказал: а понимания не будет function CETrainer_CEButton1Click(sender) -- Cоздаем функцию которая сработет по нажатию на кнопку while true do -- создаем бесконечный цикл openProcess("ac_client.exe") -- открываем процесс CETrainer.CEButton1.Caption = readInteger("50F500") -- выводим на кнопку то что причитали из памяти. end -- место где закончить цикл end -- конец функции Выводит но не обновляет. Через ретурн тоже не обновляет. 8 часов назад, Xipho сказал: Похоже, ты вообще основ не знаешь абсолютно. Дело в том, что я изначально вставлял свой процесс игры, но решил протестировать и с тем, что предоставили в коде. Меня удивило, что код работает и решил на всякий случай задать вопрос, может я что то не понимаю. Вы так боитесь показать себя с глупой стороны? Да я указал цикл за пределами функциями, да очень глупо, но в сообщении я указал, что внутри функции. Просто не разобрался как копипаст на форуме работает, такая мелочь сути вопроса не меняет, но вы всё же за неё зацепились, проигнорировав вопрос. 8 часов назад, Xipho сказал: Рекомендую их изучить, иначе так и будут сыпаться вопросы, а понимания не будет. Я уже понял, что лишние вопросы у вас задавать не принято. Какие основы изучить? Я спокойно пишу трейнеры в СЕ, нахожу сигнатуры, да я многое не знаю, но для этого же и существуют форумы чтобы спросить у тех кто уже больше времени посветил этому и разбирается куда больше? Обмен опытом позволяет всем нам двигаться быстрее. Тем более гугл не смог мне помочь в этом вопросе. Все методы циклов, что там есть не помогают, в потоке тоже не работает. Может это вообще невозможно сделать? Вот вы пишите, что я делаю не правильно, хотя бы на ошибки укажите. Но вы не укажите, потому что их там нету. Возможно нужен другой подход. Решение которые мне дали не подходит для вывода информации из памяти и её обновления. Сейчас с таймерами буду разбираться, изучать. Потому, что ребята подсказали куда двигаться за что им благодарен, они ради меня чтобы помочь, потратили своё время я ценю это. Вы же лучше бы просто мимо прошли. Что это за помощь иди основы читай? Что за абстракция, какая польза от этого совета? "Прочитайте всю войну и мир, чтобы сказать, что было сказано в последнем предложении" Рано или поздно я с этим разберусь, но тогда вопрос, зачем форум? Ссылка на комментарий Поделиться на другие сайты Поделиться
NubZilla Опубликовано 31 января, 2021 Поделиться Опубликовано 31 января, 2021 (изменено) В 30.01.2021 в 14:23, Arimor сказал: Спасибо, как будет возможность поставить лайк, сделаю :)) Привет я очень рад помочь))) CETrainer.CEButton1.Caption = readInteger("50F500") Это означает прочитать 32-битный int(readInteger) и присвоить его названию кнопке. Если бы надо прочитать строку то нужно readString. 0x50F500 это просто статический адресс где хранится количество игроков в матче. В 30.01.2021 в 16:08, Arimor сказал: Можно поподробнее? Как внедрить это в код что выше? openProcess("ac_client.exe") Почему именно в процессе этого файла нужно искать данные? Потому что мы сначала открываем нужный нам процесс, а потом читаем память этого процесса. Изменено 31 января, 2021 пользователем NubZilla Ссылка на комментарий Поделиться на другие сайты Поделиться
Arimor Опубликовано 31 января, 2021 Автор Поделиться Опубликовано 31 января, 2021 19 минут назад, NubZilla сказал: Потому что мы сначала открываем нужный нам процесс, а потом читаем память этого процесса. Попробовал его закомментировать, без этого процесса всё равно считывает из памяти нужное число. Получается процесс берется тот, что открыт в СЕ. Спасибо разобрался Осталось понять почему циклы не работают. Ссылка на комментарий Поделиться на другие сайты Поделиться
Xipho Опубликовано 31 января, 2021 Поделиться Опубликовано 31 января, 2021 2 часа назад, Arimor сказал: Осталось понять почему циклы не работают. Используй не цикл, а таймер, раз уж такой знаток. Цикл работает, но у тебя форма не обновляется, потому что цикл запускается в основном потоке формы. Ты вроде так эмоционально говорил, что основы знаешь, но я вижу, что нет, не знаешь, раз не понимаешь, как делается обработка нажатий клавиш в СЕ LUA. Ссылка на комментарий Поделиться на другие сайты Поделиться
Arimor Опубликовано 31 января, 2021 Автор Поделиться Опубликовано 31 января, 2021 2 часа назад, Xipho сказал: Ты вроде так эмоционально говорил, что основы знаешь, 6 часов назад, Arimor сказал: Какие основы изучить? Я спокойно пишу трейнеры в СЕ, нахожу сигнатуры, да я многое не знаю Я говорил про конкретику, для меня основы это 5 лет зубрить учебники и не факт, что постигну всех основ. Поэтому и уточнил какие именно основы изучать? Я написал, что я понимаю и как. Никах основ я не знаю, статьи по Lua и CE уже два дня пока есть свободное время изучаю. А эмоционально потому-что был офф топ не по теме, к чему говорить, что я нечего не знаю иди читай, так под любой темой можно написать. Это флуд из за которого последовала ответная порция флуда, путь в никуда. Если бы я знал, зачем бы я задавал вопрос. 2 часа назад, Xipho сказал: Используй не цикл, а таймер Спасибо, прекращаю эксперименты с циклами. 2 часа назад, Xipho сказал: как делается обработка нажатий клавиш в СЕ LUA. Для чего мне в данном случае обработка нажатия клавиш? function UDF1_CELabel1Click(sender) openProcess("ac_client.exe") UDF1.CELabel1.Caption = readInteger("00F0C668") end Я же могу и на лейбл вывести. Мне не нужно нажимать клавиши, а только выводить актуальное значение из памяти. Ссылка на комментарий Поделиться на другие сайты Поделиться
youneuoy Опубликовано 1 февраля, 2021 Поделиться Опубликовано 1 февраля, 2021 (изменено) 2 часа назад, Arimor сказал: Я же могу и на лейбл вывести. Мне не нужно нажимать клавиши, а только выводить актуальное значение из памяти. значит используй таймер/многопоток/что-то ещё похожее. Бесконечным циклом в основном потоке ты попросту вешаешь программу(она будет только то и делать, что считывать это твоё значение). Ещё вариант - посмотри список возможных евентов(или хз как оно там называется) в конструкторе форм CE(ты ведь его используешь?). Мб можно добавить вызов функции для чтения памяти и обновления надписи в момент обновления формы или чего-то ещё такого, самый быстрый вариант, наверное. Изменено 1 февраля, 2021 пользователем youneuoy Ссылка на комментарий Поделиться на другие сайты Поделиться
Arimor Опубликовано 1 февраля, 2021 Автор Поделиться Опубликовано 1 февраля, 2021 16 минут назад, youneuoy сказал: значит используй таймер/многопоток/что-то ещё похожее. Изучаю вопрос, пока решения с библиотеками находил но это не то. 16 минут назад, youneuoy сказал: посмотри список возможных евентов Все евенты перебрал, остановился на срабатывании функции при запуске. Как форму обновлять ещё незнаю. Ссылка на комментарий Поделиться на другие сайты Поделиться
youneuoy Опубликовано 1 февраля, 2021 Поделиться Опубликовано 1 февраля, 2021 45 минут назад, Arimor сказал: Изучаю вопрос, пока решения с библиотеками находил но это не то. гляди, что мне гугл подсказал - https://wiki.cheatengine.org/index.php?title=createTimer ? Ссылка на комментарий Поделиться на другие сайты Поделиться
Xipho Опубликовано 1 февраля, 2021 Поделиться Опубликовано 1 февраля, 2021 5 часов назад, youneuoy сказал: Бесконечным циклом в основном потоке ты попросту вешаешь программу(она будет только то и делать, что считывать это твоё значение). Я про это выше упомянул, но был не понят ))) Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 1 февраля, 2021 Поделиться Опубликовано 1 февраля, 2021 В 30.01.2021 в 16:08, Arimor сказал: Можно поподробнее? Как внедрить это в код что выше? Например Таймер: Спойлер local function timer_tick(timer) CETrainer.CELabel1.Caption = readInteger('["Tutorial-i386.exe"+002015D0]+480') if DoneState == true then timer.destroy() end end local someTimer = createTimer() someTimer.Interval = 100 someTimer.OnTimer = timer_tick 1 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
Arimor Опубликовано 1 февраля, 2021 Автор Поделиться Опубликовано 1 февраля, 2021 10 часов назад, youneuoy сказал: гляди, что мне гугл подсказал - https://wiki.cheatengine.org/index.php?title=createTimer ? Спасибо, то что надо. Похоже как то не так гуглил. 3 часа назад, Garik66 сказал: Например Таймер: Благодарю за готовое решение. 5 часов назад, Xipho сказал: Я про это выше упомянул, но был не понят ))) 13 часов назад, Arimor сказал: 16 часов назад, Xipho сказал: Используй не цикл, а таймер Спасибо, прекращаю эксперименты с циклами. Может хватит флудить, вы были поняты и я вас тоже поблагодарил. Тему можно закрывать. Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 1 февраля, 2021 Поделиться Опубликовано 1 февраля, 2021 20 минут назад, Arimor сказал: Похоже как то не так гуглил. нужно поучиться и этомуhttps://g.zeos.in/?q=LUA class timer Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 1 февраля, 2021 Поделиться Опубликовано 1 февраля, 2021 23 минуты назад, Arimor сказал: Может хватит флудить, вы были поняты и я вас тоже поблагодарил. А за хамство - минус Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения