2zolo2 Опубликовано 22 мая, 2015 Поделиться Опубликовано 22 мая, 2015 Написал скрипт для врагов и босса, но он не работает как нужно, не вы падает лут и не активируется задание при убийстве босса.P.S. Таблица CE 6.4 The Fate: http://rghost.ru/8sGfPqtYWP.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 Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 22 мая, 2015 Поделиться Опубликовано 22 мая, 2015 (изменено) Попробуй написать скрипт не на убийство с одного удара, а на убийство с двух ударов: Соответственно нужно будет два раза ударить. 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) Изменено 25 мая, 2015 пользователем Garik66 Ссылка на комментарий Поделиться на другие сайты Поделиться
2zolo2 Опубликовано 22 мая, 2015 Автор Поделиться Опубликовано 22 мая, 2015 Garik66, спасибо он убивает с одного. Но мне надо, при наведение мыши на противника чтоб он сразу умерал, но у меня они умерают но не выпадает лут и задания. Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 22 мая, 2015 Поделиться Опубликовано 22 мая, 2015 Мне качать игру не хочется, чтобы посмотреть как можно это сделать. У меня просто висит куча не доделок пока.Может кто-нибудь скачает и сделает. Так что удачи.ЗЫ: Как вариант напиши ещё скрипт GodMod, чтобы не убивали с одного. Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 24 мая, 2015 Поделиться Опубликовано 24 мая, 2015 (изменено) 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) Изменено 24 мая, 2015 пользователем Garik66 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
2zolo2 Опубликовано 25 мая, 2015 Автор Поделиться Опубликовано 25 мая, 2015 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".И после этого я в тупике, не как не могу найти инструкцию которая отвечает за выпад предметов и выполнение задания для боссов. Ссылка на комментарий Поделиться на другие сайты Поделиться
krocki Опубликовано 25 мая, 2015 Поделиться Опубликовано 25 мая, 2015 Есть одна авантюра! Работать будет или не будет не знаю.Как я понял эта инструкция работает при наведении на врага эта: 004BB349 - fld dword ptr [esi+3C9]Инструкция отвечающая за жизней врагов - это как я понял эта: 00431C60 - mov byte ptr [esi+78],18Если требуется фильтр...подставь сам!Примерно вот такой скриптик: [ENABLE]alloc(newmem,64)label(returnhere)newmem:mov byte ptr [esi+78],00 //Тут ставишь нужное значение жизней для врага, при наведении на него.fld dword ptr [esi+3C9]jmp returnhereThe Fate.exe+4BB349:jmp newmemnop //Сколько nop'ов нужно инструкции для затирания я точно не знаю, тебе видней.returnhere:[DISABLE]dealloc(newmem)The Fate.exe+4BB349:fld dword ptr [esi+3C9] Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 25 мая, 2015 Поделиться Опубликовано 25 мая, 2015 (изменено) но мне нужно было совсем другое2zolo2, я понял, что ты хочешь убивать врага наведением мышки на него (грубо говоря взглядом ).Объясни, зачем тебе это нужно, может окажется другое решение, если поймём - что ты именно хочешь. По поводу твоего способа: когда ты прописываешь mov byte ptr [esi+78],18, то по видимому ты в коде игры перепрыгиваешь нужную ветку кода игры , связанную с выпадением лута и заданием при смерти боссов. Нужно смотреть код.Я попробую посмотреть, но в оконном режиме, даже в очках всё очень мелко в игре - я очень плохо вижу надписи и цифры. Но ты всё-таки объясни - для чего тебе смерть врагов и боссов при наведении мыши, ещё раз повторю, что возможно другое решение твоей задачи.Тут ставишь нужное значение жизней для врагаkrocki, там фильтр не нужен, скрипты работают все нормально. Проблема в другом - если он убивает врагов просто наведением мыши, то не выпадает лут и задания от боссов.Скрипт подобный твоему уже написан смотри пост 2. Изменено 25 мая, 2015 пользователем Garik66 Ссылка на комментарий Поделиться на другие сайты Поделиться
2zolo2 Опубликовано 25 мая, 2015 Автор Поделиться Опубликовано 25 мая, 2015 (изменено) Инструкция отвечающая за жизней врагов - это как я понял эта: 00431C60 - mov byte ptr [esi+78],18НЕ она отвечает за смерть и там при убистве показывает 0E, 18, если живой там бегают значения от 0 до 5 - 10. Смешение 3С9 отвечает за жизни, если поставить 0 то противник все равно будет живой. Надо найти проверку живой или мертвый, проверка находится по смешению 78 и если там стоит 0E, 18 то он считается мертвым, но при этом не вы падает лут, нужно найти проверку на выпадения лута и активация задания босса? Garik66, быстро проходить подземелья, и не удобно играть в окне при большом разрешений. Изменено 25 мая, 2015 пользователем 2zolo2 Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 25 мая, 2015 Поделиться Опубликовано 25 мая, 2015 быстро проходить подземелья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] Ссылка на комментарий Поделиться на другие сайты Поделиться
2zolo2 Опубликовано 28 мая, 2015 Автор Поделиться Опубликовано 28 мая, 2015 Решил проблему, выпадения лута и выполнение заданий у боссов, было просто поставит mov [esi+00000078],0E вместо mov [esi+00000078],18, но с простыми нпс это не сработало((( 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 28 мая, 2015 Поделиться Опубликовано 28 мая, 2015 Молодец!!! Для других врагов, думаю тоже самое нужно посмотреть какие возможные значения принимает [esi+00000078] и их поподставлять. Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения