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

Akama

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

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

  • Посещение

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

    16

Akama стал победителем дня 5 декабря 2020

Akama имел наиболее популярный контент!

Репутация

49 Rookie

2 Подписчика

Информация о Akama

  • День рождения 07.11.1989

Контакты

  • AIM
    akamachief
  • ICQ
    5966638
  • Jabber
    akama@jabber.ru
  • Skype
    akama.chief

Информация

  • Пол
    Мужчина
  • Город
    Псков

Посетители профиля

Блок последних пользователей отключён и не показывается другим пользователям.

  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. В общем практического применения нету, простое баловство...
×
×
  • Создать...

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

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