Перейти к содержанию

Akama

Пользователи+
  • Постов

    176
  • Зарегистрирован

  • Посещение

  • Победитель дней

    16

Весь контент Akama

  1. Akama

    Might and Magic: Heroes VI

    Как всегда активирующий скрипт + указатели. За основу взят скрипт от Recifense + добавил указатель на ману героя + добавил функции бесконечного строительства и бесконечной маны. Все функции лень описывать, покажу скрин со всеми. Скрипт работает со всеми версиями, ибо сделан с помощью aobscan. Скачать Зеркало
  2. За повтор извиняюсь, а вот оформлено всё по образцу. По-этому на сайт надо всё заливать, я старую тему про макса не сразу ещё и нашёл...
  3. Xipho если у тебя со временем плохо - давай я помогу, у меня его в достатке... и что это я там не по правилам сделал?
  4. Добавил в статью хитрость с прыжками, или как обойтись без лишних флагов.
  5. если так, то зачем вводить какие-то правила публикации вообще? их же не будет потом на форуме, на сколько я понял.
  6. Кажется многие путают предназначение сайта и форума. У меня такое предложение - сделать как на cheatengine.org: сайт - для таблиц и софта. форум - для общения и обсуждения таблиц. ввод дополнительных правил и цензуры форуму на пользу не пойдёт ИМХО.
  7. Akama

    Rage

    Таблица для игры Rage. Возможности: бессмертие быстрое убийство без перезарядки гранаты, бумиранги и тд.* (не используйте, находясь в машине) ускорение* броня транспорта* добавить 100$ *-бесконечное Все функции выключены по умолчанию. Чтобы включить, активируйте соотв. функцию в таблице. Для удобности на каждую функцию навешаны хоткеи. Скачать Зеркало Ещё зеркало
  8. ZioN Ознакомься с этим видео, а вообще пользуйся поиском по форуму, полезная весчь ))) Видео
  9. Grom-Skynet, я конечно ничего не имею против цифры девять, но почему именно девять и почеу так много этих девяток ты используешь?
  10. Akama

    Как писать скрипты

    Решил написать статью о том, как правильно скрипты писать. Она не призвана научить вас писать скрипты с нуля "шоб работало". Пишу лишь для того, чтоб народ понял как грамотно делать ту или иную функцию, и выглядело это красиво. И так - по порядку: 1. Бессмертие. В большенстве случаев, когда люди пишут скрипты на бессмертие, они отлавливают функцию, которая работает с адресом здоровья (не важно какого она типа), и присваивают значению здоровья какое-то астрономическое число, мотивируя это тем, что "наверняка, чтоб точно не убило", или просто ленятся подумать. Очень любит подобными вещами заниматься Grom-Skynet, из-за чего его функции выглядят слегка "колхозно". mov [eax+смещение]#999999 //а то и больше девяток, сколько смелость позволит ))) Так делать не правильно, т.к. в большенстве случаев из-за таких вот "здоровий" игра по-просту вылетает, игра не может такие цифры воспринять (и это ясно, таким здоровье быть и не может) Грамотнее всего в данном случае либо найти максимум здоровья и присвоить его текущему здоровью (не полиниться и найти есть ли такой), или просто занопить. Поверьте, визуально это будет выглядеть более эстетично. Если есть максимум здоровья, то сделать чит с его помощью проще простого. Предположим, что текущее значение здоровья это еах+04, а максимальное значение еах+08, тогда: push [eax+08] //запоминаем значение максимума pop [eax+04] //восстанавливаем его в текущее здоровье Бывают случаи, когда здоровье типа float. Тогда подгрузить максимум здоровья можно лишь одной опирацией. fst [eax+08] если значения максимума нет, то нопить функции можно таким способом [enable] db 90,90,90,90 //в зависимости от того, сколько байт занимает исходная инструкция [disable] db 45,FA,25,65 // просто оригинальные байты 2. Стрельба без перезарядки В данной ситуации ищется кол-во патронов в обоиме и изменяется, но опять таки не на 999 (и снова Grom-Skynet здесь мастак это делать). От такого кол-ва патронов игра так же начнёт тупить и думать, а можно ли перезарядку делать или нет (обоимы то разные). Такая функция делается следующим образом, предположим, что кол-во патронов это еах+10. Вот так делать НЕ ПРАВИЛЬНО: mov esi,#999 mov [eax+10],esi //родной кусок кода А вот так ПРАВИЛЬНО: inc esi //увеличивает значение esi на 1 mov [eax+10],esi //родной кусок кода ИЛИ add esi,1 //в данном случае нужно указывать на сколько увеличить esi mov [eax+10],esi //родной кусок кода Значение патронов в обоиме будет всегда максимально и гемора будет меньше в будущем. 3. Деньги (или ещё какой-нить шмот) И опять сами-знаете-кто любит присвоить деньгам значение 9999999 (денег же много не бывает). В принципе можно и так делать, но впечатление складыватся, что без "читов" тут дело не обошлось. Если глаз не мозолит, то ничего страшного, пусть будет 999999 денег. Я предпочитаю в данном случае либо морозить значение денег на определённой отметке, чтоб ниже его не опускалось (например денег может быть и 51862, и 56923, но ниже 50000 не опустится), либо просто функцию добавления денег (+1000 золотый например). Если хотите, чтоб значение не опускалось ниже 50000, то нужно отлавливать функцию, которая записывает новое значение в адрес денег. Пусть еах+65 это деньги. mov [eax+65],ebx //именно так эти функции выглядят. то скрипт в данном случае будет выглядеть так: cmp ebx,#50000 jge originalcode mov ebx,#50000 originalcode: mov [eax+65],ebx Т.о. меньше, чем 50000 денег не станет как ни старайтесь... Если хотите добавлять 1000 денег, то нужно отлавливать функцию, которая чаще всех будет получать доступ к деньгам. mov ebx,[eax+65] //функция доступа выглядит примерно так... Далее нужно ввести некую переменную (пусть будет _money), и навесить на неё хоткей чтоб тот присваивал переменной значение 1. Скрипт будет выглядеть так. cmp dword ptr [_money],1 jne originalcode add [eax+65],#1000 mov [_money],0 //чтоб бесконечного цикла не получилось... originalcode: mov ebx,[eax+65] на нажатию хоткея добавится 1000 денег (как резко зависит от того, как часто инструкция получает доступ к деньгам) 4. Прыжки Чем меньше флагов в скрипте - тем лучше, но полностью от них отказаться не возможно. По-этому свидём использование их к минимуму. Тут уже сам Dark Byte зачем-то в стандартном шаблоне навтыкал ненужные флаги - а именно exit и originalcode. Покажу вам наглядно как обойтись без них. Подопытным кроликом я использовал игру The Elder Scrolls 3: Morrowind (не кидайтесь плз фикалиями, знаю что старьё). По-мимо прыжков на флаги можно использовать прыжки через байты. jmp +3 je +3 jne +3 Как видите синтаксис тот же, но изменилось то, что прыгаем через некое колличество байт (указывается в шестнадцатиричной системе счисления) И так, я написал скрипт, который сделает здоровье, ману и выносливость бесконечными. [ENABLE] alloc(newmem,2048) label(returnhere) newmem: fstp dword ptr [ecx+08] push [ecx+04] pop [ecx+08] ret 0010 jmp returnhere "Morrowind.exe"+122F: jmp newmem nop returnhere: [DISABLE] dealloc(newmem) "Morrowind.exe"+122F: fstp dword ptr [ecx+08] ret 0010 //Alt: db D9 59 08 C2 10 00 и знаю, что в ecx+0c хранится идентификатор героя 746464. Но не знаю через сколько байт нужно прыгнуть, чтобы вразу не приписывалось здоровье и тд. Вычисляется кол-во байт следующим образом. в данном случае мне нужно перепрыгнуть push [ecx+04] и pop [ecx+08]. 1. Активируем скрипт каков он есть. 2. смотрим в отладчике что скрипт делает теперь и замечаем байты нужных нам строк. Я обвёл красным те байты, которые мне нужно перепрыгнуть. Судя по картинке их 6 (шесть круглешков) Следовательно мне нужно перептыгнуть 6 байт, и мой скрипт будет выглядеть теперь вот так. [ENABLE] alloc(newmem,2048) label(returnhere) newmem: fstp dword ptr [ecx+08] cmp [ecx+0C],746464 jne +6 // если не равно перепрыгнуть через 6 байт. push [ecx+04] pop [ecx+08] ret 0010 jmp returnhere "Morrowind.exe"+122F: jmp newmem nop returnhere: [DISABLE] dealloc(newmem) "Morrowind.exe"+122F: fstp dword ptr [ecx+08] ret 0010 //Alt: db D9 59 08 C2 10 00 как видите обошёлся двумя флагами (один из которых и флаг и выделение памяти под скрипт).
  11. Для SEGA Genesis есть эмулятор fusion 3.64, там кстати тож есть такая функция )))
  12. В общем практического применения нету, простое баловство...
  13. MasterGH, в старых версиях было специальное меню под это, где добавлялись функции в трейнер и вешались на них хоткеи. В 6.1 я такого не наблюдаю, либо это меню где-то спрятано...
  14. На счёт бесконечной ходьбы и тд уже давно всё изобретено, вот таблица - изучай... На счёт остального, я так и не въехал зачем тебе отлавливать функции нажатия клавишь, но если не трудно, то объясни для тех, кто в танке ))) Shogun2_V110_AOB_V21.zip
  15. Опишите ещё плз как в 6.1 встроенными средствами трейнер сгенерировать, если скрипты и адреса уже найдены и написаны...
  16. Akama

    Fear 3

    Таблица на СЕ 6.1 4 функции: - бессмертие - убийство с одного выстрела - бесконечные патроны - замедление времени. Один активирующий скрипт, а остальное переменные, соответственно если поставить 1, то функция включится, если 0, то не будет работать... В принципе можно ещё функцию с опытом сделать, но там её нет ибо лень было приделывать. Если есть желание, то можете сделать её сами, функция, которая работает с опытом, у меня сохранена... F.E.A.R. 3.rar
  17. Да мне собственно по барабану, всё ломаемо )))

  18. Izmalkoff, ну либо его делать, либо искать из всех инструкцию, которая работала бы только со здоровьем ГГ.
  19. mylukov, смотря на что у тебя эта инструкция выскочила. Если ты её в момент выстрела поймал, значит пальнуть надо, чтоб она там появилась...
  20. Izmalkoff, умею, игру только на руках иметь надо.
  21. по видимому там просто сделан фильтр типа "свой-чужой" и вместо загрузки текущего здоровья делается загрузка максимального здоровья. Надо бы статейку написать, вещи элементарные, но вопросы вызывают у народа...
  22. Akama

    AOB Scan LUA

    Данной мне властью выкладываю здесь сиё творение, дабы не испытывал нужды человек в поисках инструкции по байтам. sl = AOBScan("ХХ ХХ ХХ ХХ ХХ"); if(sl == nil) then print("No code found!"); else j = stringlist_getCount(sl); print("Found:",j); for i = 1, j do print(stringlist_getString(sl,i-1)); end object_destroy(sl); end Вместо букв "Х" вписываете нужные байты (не обязательно 5 пар, их может быть больше). Если что-то найдёт, то скажет Found: кол-во_адресов и список их, в обратном случае скажет No code found! Код вставлять в Lua Engine, как его вызывать думаю знаете...
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, Вы автоматически соглашаетесь соблюдать наши Условия использования.