Чат по игре
  • Страница 1 из 1
  • 1
Модератор форума: Evo4ka, SARUMAN  
Форум » Titan Quest и Titan Quest: Immortal Throne » Коллективная игра » Как гасить тимейтов с руки. (курсор ---> меч) (шапка)
Как гасить тимейтов с руки. (курсор ---> меч)
xuilapannapanДата: Суббота, 2023-11-25, 20:12 | Сообщение # 1
avatar
Кентавр
Оффлайн
Сообщений: 22
Репутация: 0
Замечаний нет
Для познавательных целей.

        Инфа:
    Короче, это лишь один из путей как можно это делать. По дефолту, когда на тимейта наводишь курсором, он всего навсего подсвечивается, такова логика игры. Обычных интерактивных (добрых) нпс от нападения с вашей стороны защищает то что не появляется меч при наведении на них, почти такая же тема с тиммейтами. Игра берёт данные с области хитбокса на который указывает наш курсор, обрабатывает разные данные с него, один из них это тип хитбокса. Чтобы не углублятся просто скажу так что игра сравнивает мирность цели с заранее выставленными статичными значениями, типо, если значение конкретного регистра 1 ---> то делается что то конкретное. Это простое сравнение для разделения логики и цепочки поведения. 
    Функция называется Game.GAME::Team::IsFoe. Надо всего лишь проанализировать код и понять как она работает. Нам нужны всего лишь эти 2 строчки. А изменить нужно одну.
    
Код
Game.GAME::Team::IsFoe+6 - 83 F8 01              - cmp eax,01 { 1 }
Game.GAME::Team::IsFoe+9 - 74 59                   - je Game.GAME::Team::IsFoe+64
    Короче говоря, игра сравнивает флаг хитбокса на мирность ( cmp eax,01 ), где cmp (compare) это сравнение.
je (jump if equal) = прыгнуть если равно (если переводить напрямую). Если еах у хитбокса на который у нас нацелен курсор с еах-ом 1 то он перепрыгивает на Game.GAME::Team::IsFoe+64. А там у нас такой код:

Код
Game.GAME::Team::IsFoe+64 - 5F                       - pop edi
Game.GAME::Team::IsFoe+65 - B0 01                 - mov al,01 { 1 }
Game.GAME::Team::IsFoe+67 - 5E                       - pop esi
Game.GAME::Team::IsFoe+68 - C2 0400             - ret 0004 { 4 }


    Код сразу возвращает положительный ответ при ретурне. Так что логически, всё что надо нам это перепрыгнуть сюда чтоб получить утвердительный флаг при наведении на мирную цель. Для этого нучно всего лишь поменять je (jump if equal) на jmp (jump) прыжок без кондишена (кондишен - это условие). Так что этот прыжок будет игнорировать код в середине и сразу будет перепрыгивать на положительный конец, даже если цель мирная. Говоря о других методах можно ещё и дать еах-у значение 1 и потом при сравнении он и будет 1 так что даже je сработает, ну, я делаю джампом.

        Делаем:
    1. Инжектим чит энджин к титанке.
    2. Memory View (она слева немного вниз).
    3. На клаве Ctrl+ Alt+ S, или вручную ---> [View > Enumerate DLL's and Symbols].
    4. На клаве Ctrl + F и пишем isfoe > Find.
    5. В списке перекинуло на нужную функцию, дважды кликаем на нее.
    6. Выбираем 6-ю строчку (где написанно je Game.GAME::Team::IsFoe+64).
    7. На клаве Ctrl + A, или вручную ---> [Tools > Auto Assemble] она в самом низу.
    8. В окрывшемся окне на клаве прожимаем Ctrl+ Alt+ T а после Ctrl + I > OK.
    9. Снизу Originalcode изменяем je на jmp.
    10. File > Assign to current cheat table.
    11. Теперь надо просто сохранить сам файл.

    Если что то непонятно почитайте и посмотрите прошлые гайды, там более конкнетная инфа (шаги лучше описаны).




Hard work and luck always do make it.
 
Форум » Titan Quest и Titan Quest: Immortal Throne » Коллективная игра » Как гасить тимейтов с руки. (курсор ---> меч) (шапка)
  • Страница 1 из 1
  • 1
Поиск: