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

Помогите доделать чит для The Fate.


Рекомендуемые сообщения

Написал скрипт для врагов и босса, но он не работает как нужно, не вы падает лут и не активируется задание при убийстве босса.

P.S. Таблица CE 6.4 The Fate: http://rghost.ru/8sGfPqtYW

P.S.1 Если нужна игра, в лч скину ссылку на рутрекер(2003 г. корейский Дьябла-клон), исследовать лучше через D3D Windower, не поддерживает в окне.

[ENABLE]//code from here to '[DISABLE]' will be used to enable the cheatalloc(newmem,2048)label(returnhere)label(originalcode)label(exit)newmem: //this is allocated memory, you have read,write,execute access//place your code hereoriginalcode:fld dword ptr [esi+000003C9] ; жизни врагаfsub dword ptr [esi+000003C9]fstp dword ptr [esi+000003C9]mov [esi+00000078],18 ; 18 чтоб умер врагexit:jmp returnhere"The Fate.exe"+BB349:jmp newmemnopreturnhere:[DISABLE]//code from here till the end of the code will be used to disable the cheatdealloc(newmem)"The Fate.exe"+BB349:fld dword ptr [esi+000003C9]//Alt: db D9 86 C9 03 00 00
[ENABLE]//code from here to '[DISABLE]' will be used to enable the cheatalloc(newmem,2048)label(returnhere)label(originalcode)label(exit)newmem: //this is allocated memory, you have read,write,execute access//place your code hereoriginalcode:fld dword ptr [esi+000003C9]  ; жизни врагаfsub dword ptr [esi+000003C9]fstp dword ptr [esi+000003C9]mov [esi+00000078],18 ; 18 чтоб умер врагexit:jmp returnhere"The Fate.exe"+BB2B9:jmp newmemnopreturnhere:[DISABLE]//code from here till the end of the code will be used to disable the cheatdealloc(newmem)"The Fate.exe"+BB2B9:fld dword ptr [esi+000003C9]//Alt: db D9 86 C9 03 00 00
Ссылка на комментарий
Поделиться на другие сайты

Попробуй написать скрипт не на убийство с одного удара, а на убийство с двух ударов:

 

Соответственно нужно будет два раза ударить.

 

PS: правда логика игры - может сделать врагов и боссов бессмертными с этим скриптом, нужно проверять в игре.

[ENABLE]alloc(newmem,64)alloc(newmem1,64)label(returnhere)label(returnhere1)newmem: mov dword ptr [esi+000003C9],(float)1      // врагиfld dword ptr [esi+000003C9] ; жизни врагаjmp returnherenewmem1:mov dword ptr [esi+000003C9],(float)1      // боссыfld dword ptr [esi+000003C9] ; жизни врагаjmp returnhere1"The Fate.exe"+BB349:jmp newmemnopreturnhere:"The Fate.exe"+BB2B9:jmp newmem1nopreturnhere1:[DISABLE]"The Fate.exe"+BB349:fld dword ptr [esi+000003C9]"The Fate.exe"+BB2B9:fld dword ptr [esi+000003C9]dealloc(newmem) dealloc(newmem1) 
Изменено пользователем Garik66
Ссылка на комментарий
Поделиться на другие сайты

Garik66, спасибо он убивает с одного. Но мне надо, при наведение мыши на противника чтоб он сразу умерал, но у меня они умерают но не выпадает лут и задания.
Ссылка на комментарий
Поделиться на другие сайты

Мне качать игру не хочется, чтобы посмотреть как можно это сделать. У меня просто висит куча не доделок пока.

Может кто-нибудь скачает и сделает. 

Так что удачи.


ЗЫ: Как вариант напиши ещё скрипт GodMod, чтобы не убивали с одного.

Ссылка на комментарий
Поделиться на другие сайты

2zolo2,  чтобы написать скрипт на бессмертие, нужно было в начале купить хотя бы меч, так что сперва скрипт на денюжки:

и скрипт на бессмертие:

Теперь можешь проверить скрипт "TwoKillHit" из второго поста.

Я не проверял.

Если не сработает, пиши какой скрипт не сработал и где, лучше если кинешь сейв.

 

ЗЫ: короче проверил скрипт "TwoKillHit" вроде работает нормально, При активации скрипта у всех врагов становится мало жизни и нужен один удар на убийство.

 

Вполне возможно, что скрипт на бессмертие не будет работать, если урон у врага будет больше максимальной жизни героя, тогда можно увеличить жизнь героя, добавив одну строчку в скрипт:

 

Таблица с 3 скриптами, на добавление золота назначена горячая клавиша - Numpad +

 

The Fate.CT

[ENABLE]aobscan(AddGold, 8bxxxxxxxxxx8dxxxxxxxxxxxx8bxxxxxxxx8bxxxxxxxxxx8dxxxxxxxxxxxxxxxx6a)alloc(newMem, 64)label(returnHere)label(flag)registersymbol(flag)registersymbol(AddGold)newMem:cmp byte ptr [flag],1jne @fadd [eax+000003D8],#100000mov byte ptr [flag],0@@:mov eax,[eax+000003D8]jmp returnHereflag:    // Добавьте в таблицу адрес с адресом "flag"db 0     // и названием "1 - Add 100000 Gold"AddGold:jmp newMemnopreturnHere:[DISABLE]AddGold: // The Fate.exe+D59A1mov eax,[eax+000003D8]unregistersymbol(flag)unregistersymbol(AddGold)dealloc(newMem) 
[ENABLE]aobscan(Immortality, d9xxxxxxxxxxd8xxxxxxxxxxxxxxf6xxxx75xxd9xxxxxxxxxxd8xxxxxxxxxx8bxxxxxxxxxx8bxxxxxx8bxxxxxx6axxd8xxxxxxxxxx8bxxxxxxxxxxxx8bxxxxxxxxxx8bxxxxxxxx8bxxxxxx8bxxxx8bxxxxxx8b)alloc(newMem, 64)label(returnHere)registersymbol(Immortality)newMem:fld dword ptr [esi+00000454]fstp dword ptr [esi+00000460]fld dword ptr [esi+00000460]jmp returnHereImmortality:jmp newMemnopreturnHere:[DISABLE]Immortality: // The Fate.exe+DABBEfld dword ptr [esi+00000460]unregistersymbol(Immortality)dealloc(newMem) 
[ENABLE]aobscan(Immortality, d9xxxxxxxxxxd8xxxxxxxxxxxxxxf6xxxx75xxd9xxxxxxxxxxd8xxxxxxxxxx8bxxxxxxxxxx8bxxxxxx8bxxxxxx6axxd8xxxxxxxxxx8bxxxxxxxxxxxx8bxxxxxxxxxx8bxxxxxxxx8bxxxxxx8bxxxx8bxxxxxx8b)alloc(newMem, 64)label(returnHere)registersymbol(Immortality)newMem:mov dword ptr [esi+00000454],(float)2000 // здесь нужно поставить сколько нужно жизни (я поставил 2000).fld dword ptr [esi+00000454]fstp dword ptr [esi+00000460]fld dword ptr [esi+00000460]jmp returnHereImmortality:jmp newMemnopreturnHere:[DISABLE]Immortality: // The Fate.exe+DABBEfld dword ptr [esi+00000460]unregistersymbol(Immortality)dealloc(newMem)  
Изменено пользователем Garik66
  • Плюс 1
Ссылка на комментарий
Поделиться на другие сайты

Garik66, спасибо все работает как нужно, но мне нужно было совсем другое, я наверно не правильно вырезался.

Мне нужно было, чтоб при наведение указателя мыши на противника он сразу умерал, без нажатия левой кнопкой мыши(в игре это Атака по противнику), просто навел на врага указатель и он умер, без каких нажатий мышкой.

Я нашел инструкцию которая отвечает за наведение указателя мыши на противника и показ здоровья "004BB349 - fld dword ptr [esi+000003C9]" написал скрипт, но противник все равно оставаться живой.

fld dword ptr [esi+000003C9]fsub dword ptr [esi+000003C9]fstp dword ptr [esi+000003C9]
Не много полазив по коду, нашел инструкцию которые отвечают за смерть врага "00431C60 - mov byte ptr [esi+78],18", добавил в скрипт "mov [esi+00000078],18" враги стали умерат но не выпадал лут и не активировались задание при убистве босса.

Найдя адрес смешения 78, поставил брекпойнт на запись(на доступ игра виснит), заинтересовали два последних инструкций эта "00431C60 - mov byte ptr [esi+78],18" и новая "0042E7FB - mov byte ptr [esi+78],0E".

И после этого я в тупике, не как не могу найти инструкцию которая отвечает за выпад предметов и выполнение задания для боссов.

Ссылка на комментарий
Поделиться на другие сайты

Есть одна авантюра! Работать будет или не будет не знаю.

Как я понял эта инструкция работает при наведении на врага эта: 004BB349 - fld dword ptr [esi+3C9]

Инструкция отвечающая за жизней врагов - это как я понял эта: 00431C60 - mov byte ptr [esi+78],18

Если требуется фильтр...подставь сам!

Примерно вот такой скриптик: :-D

 

[ENABLE]
alloc
(newmem,64)
label(returnhere)

newmem:

mov byte ptr [esi+78],00    //Тут ставишь нужное значение жизней для врага, при наведении на него.

fld dword ptr [esi+3C9]
jmp
returnhere

The Fate.exe+4BB349:
jmp newmem

nop                                   //Сколько nop'ов нужно инструкции для затирания я точно не знаю, тебе видней.
returnhere:

[DISABLE]
dealloc
(newmem)

The Fate.exe+4BB349:

fld dword ptr [esi+3C9]

Ссылка на комментарий
Поделиться на другие сайты

но мне нужно было совсем другое

2zolo2, я понял, что ты хочешь убивать врага наведением мышки на него (грубо говоря взглядом  :-D ).

Объясни, зачем тебе это нужно, может окажется другое решение, если поймём - что ты именно хочешь.

 

По поводу твоего способа: когда ты прописываешь mov byte ptr [esi+78],18, то по видимому ты в коде игры перепрыгиваешь нужную ветку кода игры , связанную с выпадением лута и заданием при смерти боссов. Нужно смотреть код.

Я попробую посмотреть, но в оконном режиме, даже в очках всё очень мелко в игре - я очень плохо вижу надписи и цифры. 

Но ты всё-таки объясни - для чего тебе смерть врагов и боссов при наведении мыши, ещё раз повторю, что возможно другое решение твоей задачи.

Тут ставишь нужное значение жизней для врага

krocki, там фильтр не нужен, скрипты работают все нормально. Проблема в другом - если он убивает врагов просто наведением мыши, то не выпадает лут и задания от боссов.

Скрипт подобный твоему уже написан смотри пост 2.

Изменено пользователем Garik66
Ссылка на комментарий
Поделиться на другие сайты

Инструкция отвечающая за жизней врагов - это как я понял эта: 00431C60 - mov byte ptr [esi+78],18

НЕ она отвечает за смерть и там при убистве показывает 0E, 18, если живой там бегают значения от 0 до 5 - 10.

Смешение 3С9 отвечает за жизни, если поставить 0 то противник все равно будет живой. Надо найти проверку живой или мертвый, проверка находится по смешению 78 и если там стоит 0E, 18 то он считается мертвым, но при этом не вы падает лут, нужно найти проверку на выпадения лута и активация задания босса?

Garik66, быстро проходить подземелья, и не удобно играть в окне при большом разрешений.

Изменено пользователем 2zolo2
Ссылка на комментарий
Поделиться на другие сайты

быстро проходить подземелья

2zolo2, ну не знаю, тогда от игры уже вообще ничего не остаётся. Даже с теми двумя скриптами - подземелье проходится очень быстро, куда ещё быстрее?

 

Как вариант к OneKillHit (всё-таки оказалось, что это скрипт убийства с одного удара) и Immortality - добавить скрипт на бесконечную манну и выучить какой-нибудь закл на массовое убийство.

 

byte ptr [esi+78] и byte ptr [esi+79] - два таймера первый работает пока враг жив, второй работает после смерти врага ещё некоторое время и потом останавливается, записью mov byte ptr [esi+78],18, ты морозишь первый таймер, тем самым убивая врага. По-моему ещё при этом также не начисляется опыт.

 

А ветку выпадения лута, начисления опыта  и т.д. нужно искать от этих инструкций:

"The Fate.exe"+BB349:fld dword ptr [esi+000003C9]"The Fate.exe"+BB2B9:fld dword ptr [esi+000003C9]

 

Ссылка на комментарий
Поделиться на другие сайты

Решил проблему, выпадения лута и выполнение заданий у боссов, было просто поставит mov [esi+00000078],0E вместо mov [esi+00000078],18, но с простыми нпс это не сработало(((

  • Плюс 1
Ссылка на комментарий
Поделиться на другие сайты

Молодец!!! Для других врагов, думаю тоже самое нужно посмотреть какие возможные значения принимает [esi+00000078] и их поподставлять.

Ссылка на комментарий
Поделиться на другие сайты

×
×
  • Создать...

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

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