Razi Опубликовано 5 декабря, 2016 Поделиться Опубликовано 5 декабря, 2016 Почему CE зависает при вызове Lua скрипта горячими клавишами? Есть таблица с 2 Lua скриптами. В таблице 2 Lua скрипта(Lua script и скрипт для флага script-flag). Назначаю на эти 2 Lua скрипта горячие кнопки. Но, при нажатии горячих кнопок для активирования скриптов cheat engine зависает. (Или зависает во время назначения горячих кнопок на скрипты.) Вопрос: почему происходит зависание на работающих скриптах? Спрашиваю потому что хочу сделать трейнер из таблицы, а для этого нужно вызывать скрипты горячими кнопками. Может нужно поставить таймер в Lua script? У меня версия cheat engine 6.4. Вот ссылка на таблицу: http://rgho.st/74D6ktTnb Ссылка на комментарий Поделиться на другие сайты Поделиться
Razi Опубликовано 6 декабря, 2016 Автор Поделиться Опубликовано 6 декабря, 2016 Покажу пример Lua скрипта, и этот скрипт добавлен в таблицу, через "assign to current cheat table" . И вот в нем по идее что-то не так, потому что из-за этого скрипта скорее всего происходит зависание CE. Может кто-то сможет увидеть, где может быть ошибка. Кроме этого в таблице еще есть три адреса и они названы: FIRSTAdress, SECONDAdress, THIRDAdress. Также еще есть скрипт для флага: Script-flag. И сам флаг: BUTTONCHECK. Скрытый текст {$lua} al = getAddressList() BUTTONCHECK = al.getMemoryRecordByDescription("BUTTONCHECK") FIRSTAdress = al.getMemoryRecordByDescription("FIRSTAdress") function buttondown() if BUTTONCHECK.Value~="??" then if FIRSTAdress.Value~="??" then if BUTTONCHECK.Value=="2" then BUTTONCHECK.Value="1" else if BUTTONCHECK.Value~="??" then if FIRSTAdress.Value~="??" then if BUTTONCHECK.Value=="1" then BUTTONCHECK.Value="0" else if BUTTONCHECK.Value~="??" then if FIRSTAdress.Value~="??" then if BUTTONCHECK.Value=="0" then BUTTONCHECK.Value="0" end end end end end end end end end end function buttonup() if BUTTONCHECK.Value~="??" then if FIRSTAdress.Value~="??" then if BUTTONCHECK.Value=="0" then BUTTONCHECK.Value="1" else if BUTTONCHECK.Value~="??" then if FIRSTAdress.Value~="??" then if BUTTONCHECK.Value=="1" then BUTTONCHECK.Value="2" else if BUTTONCHECK.Value~="??" then if FIRSTAdress.Value~="??" then if BUTTONCHECK.Value=="2" then BUTTONCHECK.Value="2" end end end end end end end end end end createHotkey("buttondown", VK_LEFT); createHotkey("buttonup", VK_RIGHT); al = getAddressList() BUTTONCHECK = al.getMemoryRecordByDescription("BUTTONCHECK") FIRSTAdress = al.getMemoryRecordByDescription("FIRSTAdress") SECONDAdress = al.getMemoryRecordByDescription("SECONDAdress") THIRDAdress = al.getMemoryRecordByDescription("THIRDAdress") function forupper() if BUTTONCHECK.Value~="??" then if FIRSTAdress.Value~="??" then if BUTTONCHECK.Value=="0" then FIRSTAdress.Value=FIRSTAdress.Value+8 else if BUTTONCHECK.Value~="??" then if FIRSTAdress.Value~="??" then if BUTTONCHECK.Value=="1" then SECONDAdress.Value=SECONDAdress.Value+8 else if BUTTONCHECK.Value~="??" then if FIRSTAdress.Value~="??" then if BUTTONCHECK.Value=="2" then THIRDAdress.Value=THIRDAdress.Value+8 end end end end end end end end end end function fordownder() if BUTTONCHECK.Value~="??" then if FIRSTAdress.Value~="??" then if BUTTONCHECK.Value=="0" then FIRSTAdress.Value=FIRSTAdress.Value-8 else if BUTTONCHECK.Value~="??" then if FIRSTAdress.Value~="??" then if BUTTONCHECK.Value=="1" then SECONDAdress.Value=SECONDAdress.Value-8 else if BUTTONCHECK.Value~="??" then if FIRSTAdress.Value~="??" then if BUTTONCHECK.Value=="2" then THIRDAdress.Value=THIRDAdress.Value-8 end end end end end end end end end end createHotkey("forupper", VK_UP); createHotkey("fordownder", VK_DOWN); [Enable] [Disable] Вот еще скрипт для флага: Script-flag. Скрытый текст [ENABLE] alloc(SELECTOR,2048) label(BUTTONCHECK) registersymbol(BUTTONCHECK) SELECTOR: BUTTONCHECK: dd 0 [DISABLE] unregistersymbol(BUTTONCHECK) dealloc(SELECTOR) Ссылка на комментарий Поделиться на другие сайты Поделиться
Vlad2 Опубликовано 6 декабря, 2016 Поделиться Опубликовано 6 декабря, 2016 Почему секции [Enable] [Disable], в конце скрипта? И вообще почему ты просто не занесешь скрипт в луа окно? Там где ему место. Сделано криво, потому и не работает Ссылка на комментарий Поделиться на другие сайты Поделиться
Trix Опубликовано 6 декабря, 2016 Поделиться Опубликовано 6 декабря, 2016 Быть может, дело в том, что действие выполняется в одном потоке? Ссылка на комментарий Поделиться на другие сайты Поделиться
Dino Опубликовано 6 декабря, 2016 Поделиться Опубликовано 6 декабря, 2016 2 часа назад, Trix сказал: Быть может, дело в том, что действие выполняется в одном потоке? ага, так и есть. LUA скрипты выполняются в главном потоке СЕ Ссылка на комментарий Поделиться на другие сайты Поделиться
Razi Опубликовано 6 декабря, 2016 Автор Поделиться Опубликовано 6 декабря, 2016 (изменено) 4 часа назад, Vlad2 сказал: И вообще почему ты просто не занесешь скрипт в луа окно? Там где ему место. Он там и был, но перенес его в таблицу, потому что хочу вызывать скрипт в трейнере через горячие клавиши. А что можно как-то активировать скрипт из Lua окна в трейнере по горячим клавишам? В общем нужно сделать трейнер для этой таблицы, а для этого нужно вызывать активацию Lua скрипта и активацию флага по горячим клавишам. Скрипт для флага находится в таблице, значит на него можно поставить горячие кнопки. А что делать с Lua скриптом незнаю. 2 часа назад, Dino сказал: ага, так и есть. LUA скрипты выполняются в главном потоке СЕ Подскажите пожалуйста что нужно сделать с этой таблицей, чтоб получился рабочий трейнер. Сам скрипт работает нормально. Изменено 6 декабря, 2016 пользователем Razi Ссылка на комментарий Поделиться на другие сайты Поделиться
Razi Опубликовано 6 декабря, 2016 Автор Поделиться Опубликовано 6 декабря, 2016 Самое интересное, что если скрипты находятся в таблице, и активировать Lua скрипт и скрипт для флага по нажатию мышкой по обоим чекбоксам, то никаких зависаний не происходит и скрипты работают так как надо. Ссылка на комментарий Поделиться на другие сайты Поделиться
Razi Опубликовано 9 декабря, 2016 Автор Поделиться Опубликовано 9 декабря, 2016 Продолжая тему. Тогда вопрос такой. Как сделать трейнер из Lua скрипта, если Lua скрипт находится в Lua окне? Нашел только один способ: переместить Lua скрипт в таблицу и поставить на него горячие кнопки. Ссылка на комментарий Поделиться на другие сайты Поделиться
Razi Опубликовано 20 декабря, 2016 Автор Поделиться Опубликовано 20 декабря, 2016 (изменено) В итоге Garik66 сказал главную подсказку. (Спасибо Garikу66 за это.) Подсказав, что LUA-скрипт в трейнере сам активируется. Я думал что по идее он и должен сам активироваться, но когда создавал трейнер выскакивала ошибка: Error:"72.0" is an invalid integer // при добавлении +8 к значению в адресе по горячей кнопке "вверх" через Lua скрипт Error:"56.0" is an invalid integer // при отнимании -8 от значения в адресе по горячей кнопке "вниз" через Lua скрипт В итоге маленький трейнер не работал и не работает. Оказывается если создавать маленький трейнер до 100 кб то показывает эту ошибку, а если создавать большой трейнер (более 3-х мб), то все работает без ошибок. Интересно узнать почему в маленьком трейнере показывает эту ошибку, а в большом трейнере не показывает? Изменено 20 декабря, 2016 пользователем Razi Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения