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

Garik66

Помогаторы
  • Постов

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

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

    292

Сообщения, опубликованные Garik66

  1. Хотел отправить личное сообщение SER[G]ANT. но письмо не отправляется:

    Обнаружены следующие ошибки:

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

    Личное сообщение не отправлено.

  2. Решил ещё раз попробовать «„Blink“ Teleport» поискать координаты прицела.

     

    Делал на этот раз так:

    Вышел на улицу из дома, взял пистолет на всякий случай, выбрал два дома. Подошёл героем к стене 1 дома и записал координату X ГГ (-253.22), подошёл вплотную к стене второго дома и опять записал координату X ГГ (-150,59). Встал посередине и поворачиваясь на 180 градусов указывал то на одну стену, то на вторую - искал тип Float диапазон, навсякий случай брал с запасом (от - 270, до - 230) и отсеивал (от -170 до -130). Делал это предполагая, что пуля должна попасть в стену.

     

    Но всё равно  так ничего и не нашёл. Подскажите пжлста правильный   способ нахождения координаты прицела.

    • Плюс 1
  3. В данном конкретном случае условие - EDI==03B6228C

    То есть, прерваться, если EDI равен такому-то значению. Почему EDI, думаю, понимаешь )

    Спасибо. Почему EDI - конечно уже понимаю, Для неопытных: 

    в EDI - лежит начало данной структуры.

    Что-то БП не срабатывает (При прописывании условия игра, хоть и тормознуто, но пропускает что-нибудь в ней сделать, но БП - не срабатывает). 

    Даже проставлял все условия вместе.

    Странно, почему он не срабатывает. Да наверное месяц не мой :mellow:   с самого начало не задалось - то в одно, то во-второе, а то и в-третьей упираюсь.  

  4. Пишу в этой теме, потому что вопрос касается непосредственно её.

     

    Нашёл адрес, на него поставил Брейкпоинт на Доступ, получил такую картинку:

    Мне нужно исследовать эту инструкцию mov eax,[edi+04]. Но проблема в том, что она отвечает за очень большое количество адресов (такое кол-во я вижу в первый раз) и при обычной постановке Брейкпоинта на инструкцию игра зависает (и отвисает только после снятия БП).

    Интуитивно понял, что нужно задать условия срабатывания БП и даже нашёл место, где это в СЕ делается, но вот как правильно прописать его и какое из

     выбрать не знаю. Мастера - подскажите Плиз.

    00BEA7CB - EB 03 - jmp Fallout3.exe+7EA7D000BEA7CD - 8D 49 00  - lea ecx,[ecx+00]00BEA7D0 - 8B 47 04  - mov eax,[edi+04] <<00BEA7D3 - 8B 16  - mov edx,[esi]00BEA7D5 - 8B 52 08  - mov edx,[edx+08]EAX=0001CBDDEBX=0001CBDDECX=0001CBDDEDX=007F9E50ESI=17000E50EDI=03B6228CESP=0018C4D0EBP=00000002EIP=00BEA7D3 
    EAX=0001CBDDEBX=0001CBDDECX=0001CBDDEDX=007F9E50ESI=17000E50EDI=03B6228CESP=0018C4D0EBP=00000002 
  5. И вылетает именно после четырех выстрелов из дробовика? То есть, с другим оружием проблем нет?

    Я думаю, судя по описанному, проблема похожа на ту, которая была у меня при написании скриптов "Бесконечные патроны и стрельба без перезарядки". я её решил.  

    Посмотрите здесь, здесь, здесь, здесь и окончательный вариант скрипта, при котором уже вылетов не было ТУТА.

    • Плюс 2
  6. MasterGH спорить я не буду, но флуда не было и все посты (по-моему) в теме касались решения  этого вопроса:

    Попытка подмены предметов в Fallout 3 через подмену ID.

    кроме последних 3-4 постов. 

  7. Как бы офтопите ребята :-)

     

    garik66 я постараюсь сделать видео поиска этого ID в игре Fallout 3(специально ХР устанавливал). Поиск этого ID даже 5-и минут не занимает, что меня очень удивило. Но зато еще один способ по поиску ID я нашел.

    Где ты увидел здесь офтоп? Вроде всё по теме Темы и путей решения вопроса Темы.  :-D

     

    А за будущее видео заранее ОГРОМНЫЙ СПАСЫБ!!!

  8.  

    ЦП загружен очень мало во время отсева по формуле. так что не в этом дело.

    А по переустановке (перенастройке) я сделал вывод из этого предложения:

     

    Если поток сканирования без движений мыши зависает - это системная проблема. То есть, виндовая. 

  9. Если поток сканирования без движений мыши зависает - это системная проблема. То есть, виндовая. Активировал правильно, по идее, правильно, только вот запрос не должен приходить каждый раз. Он единственный первый раз приходит и потом все штатно должно быть, без запросов. Проверь, не зацепил ли при копировании лишние пробелы по сторонам ключа.

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

  10. Предугадать поведение ломаной версии программы заведомо невозможно. 

    Оказалось, что дело не в этом. Так и продолжает прерываться отсев по формуле и Артмани пишет "Отменено пользователем".

     

    1. Вопрос, правильно ли я активирую Артмани: Копирую ключ в буфер и при загрузке в окне запроса Артмани (запрос происходит всегда при включении Артмани) вставляю этот ключ из буфера. Или всё-таки нужно было по другому активировать?

     

    2. Если дело не в активации, то наверное либо в настройках Артами нужно что-то сделать, либо с Виндой. Заметил, что если вовремя подвигать мышкой, то отсев не зависает и соответственно не срывается. Но двигать мышкой конечно не вариант, особенно если будет длинная формула и отсев будет происходит больше часа. Что уже делал в Винде (у меня Windows 7 ) отключал визуальные  эффекты, давал более высокий приоритет процессу  Артмани в "Панели задач", на всякий случай отключал заставку и переход в "Спящий режим".

     

    Что ещё можно сделать?

    Может проблема в игре - судя по диспетчеру задач она жрёт больше всех памяти (я в этом не разбираюсь):

    Если Каспер кушает - 

    avp.exe*32          3908 КБ

    то Fallout 3 кушает -

    Fallout3.exe*32   233944 КБ.

     

    Может быть из-за этого, слетает отсеивание по формуле?   

  11.  

    Для начала координаты игрока находятся по адресам

    А чуть ранее, то что видимо и было найдено("маленькие числа") - это углы поворота игрока в радианах

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

    Во-первых: координаты ГГ я давно нашёл и написал даже скрипт "Телепорт" (если интересно см. обсуждение здесь  и скрипт здесь) .

    Во-вторых: то что ты нашёл - это не координаты ГГ. А что-то другое. 

    И повторюсь, мне нужно найти координаты прицела, как их найти не понимаю до конца. Вот если подскажешь способ нахождения координат прицела - буду премного благодарен.

    PS: почему это не координаты ГГ, попробуй "заморозь" их и увидишь.

  12. garik66 я же тебе давал линк на свою таблицу к игре Darksiders. 

    Для меня в твоём посте оказалось ноль информативности.

    Скачал я твою таблицу, посмотрел скрипт «„Blink“ Teleport» примерно такой-же как и у SER(G)ANTа (думаю как и у остальных).

     

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

    То что я находил, это были какие-то координаты, которые меняются незначительно, если смещать прицел, поэтому и написал, а есть ли смысл писать данный скрипт, если координаты так близки. 

     

    Но думаю я ошибаюсь в поиске и то что я находил - это не координаты прицела.

     

    А вот как искать именно координаты прицела я пока не понял.

    Делал так:

    Начинал поиск также, как писал SER(G)ANT, т.е. ставил прицел прямо к ногам ГГ и искал диапазон (по координате X или Y в данном случае не важно), чтобы сразу снизить количество адресов. Потом удалял (приближал) прицел и отсеивал увеличилось (уменьшилось). Но оставалось всё равно довольно много адресов (от 30 до 100) и какой из них отвечает за прицел не понятно. Заморозка адресов никчему не приводила (т.е. прицел свободно двигался - я не в курсе должен ли он перестать двигаться, если я найду например координату X прицела и заморожу её).

    Так что, если есть более точный способ нахождения координат прицела - опиши его. А готовый скрипт мне ничего нового не даст.

     

     И смысл в написании скрипта тоже есть. Напиши скрипт и затести его. 

    Скрипт не писал, потому что нет уверенности, что это координаты прицела.

  13. Удачи!

    © SER[G]ANT 2013

    Ну во-первых за статью - Спасибо!

     

    С первой частью успешно справился - стандартный "Телепорт" для Fallout 3 (над которой я сейчас измываюсь) работает на ура.

     

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

     

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

     

    Подскажите как для данной игры написать второй вариант "Телепорта".

  14.  

     

      Проблема в том что координата Z не хочет загружаться. То есть я забрался на дом сохранил Z потом спрыгнул вниз и загрузил Z. Но ничего не происходит. Но есть одно но. Если постоянно тыкать хоткей на load координате то иногда срабатывает и телепортирует на ту высоту на которой я сохранился. Если менять значения вручную то проблем нет. И как я написал выше фильтр рабочий проверял напрямую....

     

    Так что это может быть? Мб написал криво или есть какие нибудь иные тонкости? Прошу помощи.

    Если тема ещё актуальна, то постараюсь помочь, так как только недавно сам разбирался с "Телепортом" (см. обсуждение здесь и в конце ссылка на конечный скрипт.)

    Если ты абсолютно уверен в фильтре и выбранная инструкция работает только с твоей координатой Z, то остаётся только, что скрипт написан чуть-чуть неправильно, попробуй вот так:

     

    Сильно править код не стал, хотя можно записать более компактно, если интересно посмотри у меня в конечном скрипте.

    [ENABLE]//code from here to '[DISABLE]' will be used to enable the cheatalloc(newmem,2048)label(returnhere)//label(originalcode)  // удаляем лишнюю меткуlabel(jumper)  // можно обойтись и без этой меткиlabel(coordZ)label(_save)label(_load)label(_saveCoords)label(_loadCoords)registersymbol(_saveCoords)registersymbol(_loadCoords)newmem: //this is allocated memory, you have read,write,execute accessfstp dword ptr [eax+34]   // инструкции оригинального кода нужно поставить сюдаfld dword ptr [ecx+38]cmp word ptr [eax+5C],088Aje jumper//jmp originalcode        // заменяем переход на jmp returnhere//originalcode:           // удаляем лишнюю метку//fstp dword ptr [eax+34] // переносим эти две инструкции оригинального кода наверх//fld dword ptr [ecx+38]jmp returnherejumper:_save:cmp [_saveCoords],1jne _loadpush ecxmov ecx,[eax+34]mov [coordZ],ecxpop ecxmov [_saveCoords],0jmp returnhere_load:cmp [_loadCoords],1jne originalcodepush ecxmov ecx,[coordZ]mov [eax+34],ecxpop ecxmov [_loadCoords],0jmp returnherecoordZ:dd 0_saveCoords:dd 0_loadCoords: // можно обойтись только одним флагомdd 0"prototypeenginef.dll"+600F5:jmp newmemnopreturnhere:  [DISABLE]//code from here till the end of the code will be used to disable the cheat"prototypeenginef.dll"+600F5:fstp dword ptr [eax+34]fld dword ptr [ecx+38]unregistersymbol(_saveCoords)unregistersymbol(_loadCoords)dealloc(newmem)//Alt: db D9 58 34 D9 41 38 
  15. Перемести fstp dword ptr [esi+000000D8] в самый вверх под метку, чтобы было так

     

    ...newMem17: fstp dword ptr [esi+000000D8]
    Пробовал и такой вариант, код полностью, без косметической обработки выглядит так:

     

    Как видно пробовал и этот вариант и другие инструкции использовать, но сегодня добью. Если работает вручную, то должен и работать программно.

    Перемести fstp dword ptr [esi+000000D8] в самый вверх под метку, чтобы было так

     

    ...newMem17: fstp dword ptr [esi+000000D8]
    Проблема оказалось именно в этом, видимо когда использовал этот вариант раньше, ошибка в скрипте была в другом и телепорт не работал. Сейчас чуть-чуть подправил скрипт, удалил лишнюю OK17 метку, проставил правильные условные и безусловные прыжки и всё заработало. Попрыгал в доме ГГ и в Мегатонне (к дому от атомной бомбы и наоборот) - работает.

     

    Чуть-чуть доработаю скрипт, добавлю опцию (может пару) и выложу в своей теме.

     

    MasterGH - благодарю!!! :excl:  :rolleyes:

    PS: Для меня оказалось новостью, что Дом и мировая карта - это разные локации (координаты сильно отличаются) и с улицы по координатам дома внутрь дома попасть нельзя.

    Готовый скрипт выложил в этом сообщении.

    [ENABLE]alloc(newMem17, 2048)label(returnHere17)label(coordX17)label(coordY17)label(coordZ17)label(OK17)label(Load17)label(SaveLoadCoords17)registersymbol(SaveLoadCoords17)newMem17://fstp dword ptr [esi+000000D8] // вот этот вариант//cmp eax,18F4A0//cmp ebx,18F4E0 // меняется//cmp edi,18F4A0 // меняется//cmp ebp,18F468 // меняется//cmp esp,18F38C // меняется//cmp byte ptr [esi+014f],14//jne OK17cmp byte ptr [SaveLoadCoords17],1jne Load17push edxmov edx, dword ptr [esi+000000D0]mov dword ptr [coordX17],edxmov edx,dword ptr [esi+000000D4]mov dword ptr [coordY17],edxmov edx, dword ptr [esi+000000D8]mov dword ptr [coordZ17],edxpop edxmov byte ptr [SaveLoadCoords17],0jmp OK17Load17:cmp [coordX17],0je OK17cmp byte ptr [SaveLoadCoords17],2jne OK17push edxmov edx, dword ptr [coordX17]mov dword ptr [esi+000000D0],edxmov edx, dword ptr [coordY17]mov dword ptr [esi+000000D4],edxmov edx,dword ptr [coordZ17]mov dword ptr [esi+000000D8],edxpop edxmov byte ptr [SaveLoadCoords17],0jmp returnHere17//jmp OK17OK17:fstp dword ptr [esi+000000D8]jmp returnHere17coordX17:dd 0coordY17:dd 0coordZ17:dd 0SaveLoadCoords17: // Добавим в таблицу адрес с адресом "SaveLoadCoords17" иdb 0              // названием "0 - ничего, 1 - сохранить координаты,                  // 2 - телепортироваться"//Fallout3.exe+5D9B09://Fallout3.exe+5D9B20://Fallout3.exe+50DDB1:Fallout3.exe+50DDC4:jmp newMem17nopreturnHere17:[DISABLE]//Fallout3.exe+5D9B09://Fallout3.exe+5D9B20://Fallout3.exe+50DDB1:Fallout3.exe+50DDC4:fstp dword ptr [esi+000000D8]unregistersymbol(SaveLoadCoords17)dealloc(newMem17) 
  16. Ребята проблема точно не в db(Define Byte) dd(Define Double word). Скорее всего фильтр неправильный. У меня когда-то тоже такое было.

     

    Если garik66 у тебя тип переменной SaveLoadCoords17 НЕ БАЙТ, то смени тип и посмотри что будет. Но мое мнение это неправильный фильтр. Ты сам говорил, что если игрок один в комнате, то все нормально и есть SAVE/LOAD ОК, а когда идешь на карту, то уже проблемы.

    Если было бы так всё просто (было бы здорово, нашёл бы другой фильтр и усё).

     

    Фильтр (а вернее оба фильтра, посмотри код) к сожалению оба правильные - об этом писал в первом посте. Посмотри эту строчку - "Причём в edx находятся правильные значение координат (проверял ставя бряк)." и посмотри первую часть кода:

    Из этого видно, что до edx мы бы не добрались, если бы фильтр был неправилен.

    Как происходит в игре при включённом скрипте, присваиваем  SaveLoadCoords17 - значение 1, затем подпрыгиваем героем на месте (т.к. выбранная инструкция именно по координате Z, собственно как практически во всех вариантах написанных телепортов на форуме). После этого делая шаги (после бряка) по коду видно, как в EDX - загружается координата (и она верная сверял значение в EDX с текущей координатой героя), но вот в переменную зараза пишется только первый байт из четырёх.  Например значение Z координаты в доме ГГ на 2 этаже равно (float) 1101,73 (или по байтно - 51 B7 89 44), так вот в этом случае в переменную coordZ17 записывается 51 (и значение становиться 81).

    Так что тут мне нужно напрячь мозг и понять почему это происходит.

    newMem17:cmp eax,18F4A0                    // инструкция работает с несколькими адресами, поэтому фильтр.  //cmp byte ptr [esi+014f],14      // можно поставить и этот (вроде бы при нескольких перезагрузках    jne OK17                          // игры, оба варианта фильтра - постоянны).  cmp byte ptr [SaveLoadCoords17],1jne Load17push edxmov edx, dword ptr [esi+000000D0]mov dword ptr [coordX17],edxmov edx,dword ptr [esi+000000D4]mov dword ptr [coordY17],edxmov edx, dword ptr [esi+000000D8]mov dword ptr [coordZ17],edxpop edxmov byte ptr [SaveLoadCoords17],0jmp OK17 
  17. Возможно, Артмани Про у тебя ломаная. Если так, то может быть и в этом дело...

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

    (Например в одной из попыток, в которой  было ещё больше итераций - 0/69 я получил один адрес, но вырубили свет соседи и я не успел что-то с этим адресом  сделать).

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

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

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