Fixer Опубликовано 16 октября, 2013 Поделиться Опубликовано 16 октября, 2013 Всем привет!Представляю вам свою вторую работу по части экспериментов!!! В этот раз добавил... нет, не догадаетесь! SpeedHack!!!ЕЩЕ НИКТО НЕ ДОГАДАЛСЯ ЗАСУНУТЬ В ТРЕЙНЕР - СПИДХАК!!! Может не знают, как его в LUA сделать, а может не хотят...Но я всеже решился)))Итак, вот ScreenShoot:Итак, в остальном все то же, что и в первой работе.Сделал сигнатуру байтов в чек боксы. Хоткеи думаю сами знаете как делается Не судите строго... первый раз делаю сх сейчас еще раз проверял... забыл поставить защиту от растяжки печаль, печаль... 2 Ссылка на комментарий Поделиться на другие сайты Поделиться
Kvazimado Опубликовано 16 октября, 2013 Поделиться Опубликовано 16 октября, 2013 В Дишореде есть несколько умений, которые по времени работают - замедление времени, зрение и вселение.Причем, у них свой таймер, поэтому нередко бывает, что использовав замедление времени, и включив зрение, что то да слетает через какое то время)Кроме того, иногда бывает необходимым сделать прыжок (телепортирование), но его никто не пытался увеличить - дальность телепорта)И еще - когда работают волынки. Смотрители ходят с такими, то магия сразу сваливается. Было бы неплохо это убрать)Ну это как вариант, если захочется попробовать себя и дальше) Ссылка на комментарий Поделиться на другие сайты Поделиться
Fixer Опубликовано 16 октября, 2013 Автор Поделиться Опубликовано 16 октября, 2013 В Дишореде есть несколько умений, которые по времени работают - замедление времени, зрение и вселение.Причем, у них свой таймер, поэтому нередко бывает, что использовав замедление времени, и включив зрение, что то да слетает через какое то время)Кроме того, иногда бывает необходимым сделать прыжок (телепортирование), но его никто не пытался увеличить - дальность телепорта)Ну это как вариант, если захочется попробовать себя и дальше)да, да, да... я не пробывал искать координаты игроков, но как подсказывает опыт - они статичны. можно сделать в чек бокс телепорт, однако жаль что в хоткей нельзя... на хоткей было бы удобней)а на счет лицензированного вх (черное зрение) оно действительно по времени работает... только не знаю как это время уловить) ведь никакой полоски нету) еслиб была - сделал бы) Ссылка на комментарий Поделиться на другие сайты Поделиться
doc9009 Опубликовано 16 октября, 2013 Поделиться Опубликовано 16 октября, 2013 ну так в чем проблема? берешь 1) поиск неизвестного значения(скорей всего float) 2) врубаешь умение ждешь секунду 3) делаешь отсев на уменьшилось 4) делаешь 2 и 3 пункты так пока время не кончится 5) как время закончилось ждешь пока восстановится и врубаешь умение и повторяешь пункты 2, 3, 4, 5 пока не найдешь нужный адрес, а найдешь ты его в этой игре таким образом 100% Ссылка на комментарий Поделиться на другие сайты Поделиться
Fixer Опубликовано 17 октября, 2013 Автор Поделиться Опубликовано 17 октября, 2013 ну так в чем проблема? берешь 1) поиск неизвестного значения(скорей всего float) 2) врубаешь умение ждешь секунду 3) делаешь отсев на уменьшилось 4) делаешь 2 и 3 пункты так пока время не кончится 5) как время закончилось ждешь пока восстановится и врубаешь умение и повторяешь пункты 2, 3, 4, 5 пока не найдешь нужный адрес, а найдешь ты его в этой игре таким образом 100%Ок! Спасиб)ребят, а вот на счет спидхака еще никто ничего не сказал Ссылка на комментарий Поделиться на другие сайты Поделиться
Kvazimado Опубликовано 17 октября, 2013 Поделиться Опубликовано 17 октября, 2013 Я не проверял еще, если будет работать с ДЛСами, то проверю, иначе ни как)) А вообще, там вроде не такая уж и большая территория, хотя не знаю) Ссылка на комментарий Поделиться на другие сайты Поделиться
ZOCKIR Опубликовано 17 октября, 2013 Поделиться Опубликовано 17 октября, 2013 Fixer а развернуть трейнер можно было убрать. А спидхак я не проверял, вкл.выкл чекбокс СПИДХАКА выходит одно и то ж сообщение с этим как? Ссылка на комментарий Поделиться на другие сайты Поделиться
Fixer Опубликовано 22 октября, 2013 Автор Поделиться Опубликовано 22 октября, 2013 Fixer а развернуть трейнер можно было убрать. А спидхак я не проверял, вкл.выкл чекбокс СПИДХАКА выходит одно и то ж сообщение с этим как?за эту ошибку с разворотом я написал что извиняюсь))) просто там при компиле выдавало ошибку я психанул чето отключил, вот оно и зароботало... но в будущем такой ошибки не будет.не ну а че ты хотел? это простая сообщенька! и сх включается единажды и больше не отключается. я не пойму вообще нафига отключать то? включил и бегай. Ссылка на комментарий Поделиться на другие сайты Поделиться
aliast Опубликовано 2 января, 2016 Поделиться Опубликовано 2 января, 2016 А не пробовал ли кто искать статы в конце миссий? т.е. сколько убитых, сколько тревог поднято, сколько денег\рун и проч. собрано, сколько раз тела убитых обнаружили и т.д. А то тут проходишь на призрака и только в конце тебе говорят, мол, звиняй, ты один раз накосячил и фиг тебе, а не "призрак". Обидно... А так можно было бы за статами в любой момент следить. Я такие статы находил для Commandos 2 и здесь выкладывал, а тут вроде что-то нашёл, но не всё. На форуме Дарк Байта был скрипт на идеальные статы во всех миссиях, но я этот скрипт так и не увидел (таблица есть со скриптом, но про статы в том скрипте ни строчки). Ссылка на комментарий Поделиться на другие сайты Поделиться
MasterGH Опубликовано 2 января, 2016 Поделиться Опубликовано 2 января, 2016 aliast, 1. параметры статистики могут находится рядом в памяти. Можно попробовать найти их всех рядом2. одна инструкция может читать все параметры статистики. Чтобы найти её попробовать поставить брейкпоинт на чтение на один адрес параметра статистики и ждать инструкций в логах на протяжении игры3. дизассмить по трейслогу и ковырять4. статистика может храниться не в оперативной памяти, а на жестком диске, в реестре. Есть специальные утилиты, которые проверяют обращение к реестру, жесткому диску (например, Procmon.exe) Ссылка на комментарий Поделиться на другие сайты Поделиться
aliast Опубликовано 2 января, 2016 Поделиться Опубликовано 2 января, 2016 (изменено) ВОзможно нашёл счетчик обнаруженных тел. Теперь такой вопрос - как заставить CE бибикать звук при значении определенного адреса > 0 ? Можно даже сделать "бип" при выполнении определенной инструкции, без разницы. В чём ошибка? Вылетает после добавления LuaCall.В общем, работает с WinAPI, а с Луашным не знаю как правильно. Пикает правда как попало, ну тут уже надо скрипт фиксить.NullAlex: Большой код принято обрамлять в тег спойлера. Читай правила и FAQ.[ENABLE]//code from here to '[DISABLE]' will be used to enable the cheatalloc(newmem,2048)registersymbol(bodies)label(bodies)label(returnhere)label(originalcode)label(exit)label(beep)newmem: //this is allocated memory, you have read,write,execute access//place your code heremov [bodies],eaxcmp eax,01jge beepjmp originalcodebeep:LuaCall(beep())originalcode:mov [esi+04],eaxjle Dishonored.exe+28382exit:jmp returnherebodies:dd 0"Dishonored.exe"+28347:jmp newmemreturnhere: [DISABLE]//code from here till the end of the code will be used to disable the cheatunregistersymbol(bodies)dealloc(newmem)"Dishonored.exe"+28347:mov [esi+04],eaxjle Dishonored.exe+28382//Alt: db 89 46 04 7E 36beep: push #300 push #750 call kernel32.Beep Изменено 2 января, 2016 пользователем aliast Ссылка на комментарий Поделиться на другие сайты Поделиться
MasterGH Опубликовано 2 января, 2016 Поделиться Опубликовано 2 января, 2016 Процесс в CE уже должен быть открытaddress = 0x0045b5a4m_streamTada_tada = createMemoryStream()m_streamTada_tada.loadFromFile('D:\\tada.wav') -- заменить на свой звукfunction OnTimer() if(readInteger(address) > 0) then m_timer.Enabled = false playSound(m_streamTada_tada, false) endendlocal m_timer = createTimer()m_timer.Interval = 1000m_timer.OnTimer = OnTimer Ссылка на комментарий Поделиться на другие сайты Поделиться
aliast Опубликовано 2 января, 2016 Поделиться Опубликовано 2 января, 2016 (изменено) выдаёт ошибку Error:[string "local address = getAddress("Dishonored.exe")..."]:12: attempt to index a nil value (global 'm_timer')local address = getAddress("Dishonored.exe")address = readPointer(address + 0x007F80A0)address = readPointer(address + 0x35C)local Bodies = readInteger(address + 0x4) -- должно быть [[["Dishonored.exe" + 0x007F80A0] + 0x35C] + 0x4]if (Bodies == nil) then Bodies = 0 -- дефолтное значение переменнойendm_streamTada_tada = createMemoryStream()m_streamTada_tada.loadFromFile('d:\\Files\\wav\\Sound.wav') -- заменить на свой звукfunction OnTimer() if (Bodies > 0) then m_timer.Enabled = false playSound(m_streamTada_tada, false) endendlocal m_timer = createTimer()m_timer.Interval = 1000m_timer.OnTimer = OnTimer Изменено 2 января, 2016 пользователем aliast Ссылка на комментарий Поделиться на другие сайты Поделиться
A1t0r Опубликовано 2 января, 2016 Поделиться Опубликовано 2 января, 2016 выдаёт ошибку Error:[string "local address = getAddress("Dishonored.exe")..."]:12: attempt to index a nil value (global 'm_timer')Попробуйте такlocal address = getAddress("Dishonored.exe")address = readPointer(address + 0x007F80A0)address = readPointer(address + 0x35C)local Bodies = readInteger(address + 0x4) -- должно быть [[["Dishonored.exe" + 0x007F80A0] + 0x35C] + 0x4]if (Bodies == nil) then Bodies = 0 -- дефолтное значение переменнойendm_streamTada_tada = createMemoryStream()m_streamTada_tada.loadFromFile('d:\\Files\\wav\\Sound.wav') -- заменить на свой звукfunction OnTimer() if (Bodies > 0) then m_timer.Enabled = false playSound(m_streamTada_tada, false) endendlocal m_timer = createTimer()m_timer.Interval = 1000m_timer.OnTimer = OnTimerlocal m_timer = createTimer()m_timer.Interval = 1000function OnTimer() if (Bodies > 0) then m_timer.Enabled = false playSound(m_streamTada_tada, false) endendm_timer.OnTimer = OnTimer Ссылка на комментарий Поделиться на другие сайты Поделиться
MasterGH Опубликовано 2 января, 2016 Поделиться Опубликовано 2 января, 2016 Забыл, надо чтобы таймер был глобальной переменной. Это новый Lualocal m_timer = createTimer() Заменить наm_timer = createTimer() Ссылка на комментарий Поделиться на другие сайты Поделиться
aliast Опубликовано 2 января, 2016 Поделиться Опубликовано 2 января, 2016 (изменено) Ура! Кажется получилось. Вот рабочий скрипт. Я кажется уже задавал этот вопрос раньше или нет, не помню - как этот скрипт повесить на хоткей?]А что за косяк такой с тегом code - в первой строке делается такой неудаляемый отступ? Появляется вроде как при правке сообщения с таким тегом.Что-то я уже совсем ничего не понимаю. Изначально скрипт работал как я хотел - при Bodies > 0 начинало бибикать без остановки, пока не загрузишь сэйв с Bodies = 0. Но стоило поменять цепочку указателей и изменить тип с 4 байт на float, так теперь пикает только один раз и всё (local Bodies = readInteger(address + 0x4) поменял на local Bodies = readFloat(address + 0x4) ). И даже если загрузить сэйв и снова сделать Bodies > 0 ничего пиликать уже не будет. Вроде бы всё правильно, да? Строчка m_timer.Enabled = false как раз и заставляет таймер сработать только 1 раз А как сделать чтобы постоянно пиликало? Если выставить m_timer.Enabled = true то он будет всегда пиликать, даже после нарушения условия if (Bodies > 0) Без этой строчки то же самое.local address = getAddress("Dishonored.exe")address = readPointer(address + 0x01084EE0)address = readPointer(address + 0x40)address = readPointer(address + 0x10)address = readPointer(address + 0x1D8) -- от версии игры зависит, адрес счетчика обнаруженных тел. --Изначально ссылается на один адрес, равный нулю, потом когда кто-то тело находит --перескакивает на другой. Не знаю почему так, но вроде работаетm_streamTada_tada = createMemoryStream()m_streamTada_tada.loadFromFile('d:\\Files\\wav\\Sound.wav') -- заменить на свой звукfunction OnTimer() local Bodies = readInteger(address + 0x4) if (Bodies == nil) then Bodies = 0 end if (Bodies > 0) then m_timer.Enabled = false playSound(m_streamTada_tada, false) --начинаем бескночено пиликать "Найден труп, срочно грузите сэйв, а то призрака не дажут" endendm_timer = createTimer()m_timer.Interval = 1000m_timer.OnTimer = OnTimer Изменено 2 января, 2016 пользователем aliast Ссылка на комментарий Поделиться на другие сайты Поделиться
MasterGH Опубликовано 3 января, 2016 Поделиться Опубликовано 3 января, 2016 А что за косяк такой с тегом code - в первой строке делается такой неудаляемый отступ?Насколько я знаю, этот косяк только у Интернет браузера Опера. 1. Необходимо читать весь указатель, а не часть его. Потому что на протяжении игры путь указателя может поменяться 2. Необходимо быть точно уверенным, что при чтении float адреса корректно условие if (Bodies > 0). Т.е. надо посмотреть значение Bodies до и после изменений с помощью функции print. Можно обратить внимание на someValue > 0.0 (ниже в скрипте), надо в консоли lua (из окна отладчика) используя print(readFloat ('[[[[Dishonored.exe+01084EE0]+40]+10]+1D8]+0x4')) посмотреть чему равно значение до и после "тревоги" 3.. Можно сделать так, чтобы звук тревоги играл всегда, когда по указателям находятся значения отличные от нуля. С помощью следующего скрипта сможешь как отключить таймер, так и запустить его снова Повесить на хот кей на обычный АА скрипт в таблицу с луа в ставками[Enable]{$lua}alarmTimer.Enabled = true[Disable]{$lua}alarmTimer.Enabled = falsefunction OnTimer() -- должны читать всегда указатель полностью, т.к. его путь может меняться local bodies = readInteger ('[[[[Dishonored.exe+01084EE0]+40]+10]+1D8]+4') -- заменить цепочку указателей для чтения float local someValue = readFloat ('[[[[Dishonored.exe+01084EE0]+40]+10]+1D8]+4') -- Если удалось прочитать значение указателя и bodies > 0 if (bodies ~= nil and bodies > 0) then -- ирать файл, если он не играет playSound(streamTada, true) end if (someValue != nil and someValue > 0.0) then -- ирать файл, если он не играет playSound(streamTada, true) end end-- Должно вызываться один разstreamTada = createMemoryStream()streamTada.loadFromFile('d:\\Files\\wav\\Sound.wav') -- заменить на свой звукalarmTimer = createTimer()alarmTimer.Interval = 1000alarmTimer.OnTimer = OnTimerПоместить код в окно "Lua Script: Cheat Table" Код я не тестил, мог где-то ошибиться. Ссылка на комментарий Поделиться на другие сайты Поделиться
aliast Опубликовано 3 января, 2016 Поделиться Опубликовано 3 января, 2016 (изменено) Код рабочий, но Луа вставка в АА не фурычит (ошибок не выдаётся, но скрипт невозможно включить, крестик не ставится.Upd: хоткей начинает работать после запуска Lua скрипта, всё ок. Надо его перед игрой влючать. А чтобы этого избежать, можно весь Lua скрипт целиком запихнуть под тег {$lua} в [ENABLE]. [DISABLE] оставить без изменений. Тоже всё прекрасно пашет. Изменено 3 января, 2016 пользователем aliast Ссылка на комментарий Поделиться на другие сайты Поделиться
MasterGH Опубликовано 3 января, 2016 Поделиться Опубликовано 3 января, 2016 Запуск lua скрипта происходит автоматически один раз в начале работы трейнера, таблицы .cetrainer, но не .ct. Lua скрипт целиком запихнуть под тег {$lua} в [ENABLE]. [DISABLE Можно, но с каждым включением будут создаваться новый тамер и стрим звука, а при выключнии скрипта таймер будет отключаться всего лишь. Поэтому надо либо разрушать их под disable, либо не создавать повторно. Лучше последнее. Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения