Garik66 Опубликовано 18 апреля, 2015 Поделиться Опубликовано 18 апреля, 2015 По запросу Manchkin, написал скрипт (косоватый - подробности в теме).Скрипт у меня на компе работает всегда - т.е. ГГерой бессмертен, а предметы - бесконечны (и их становится по 10 штук). Но у Manchkin скрипт не работает.В чём может быть проблема? У меня было предположение, что у меня всё-таки. как ранее говорил Xipho, проблема с ОС (т.е. у меня ощущение, что Винда у меня какая-то "недо64-битная"). Может быть с этим связано? Если у кого есть предположение - напишите. Или если кому не сложно - проверьте скрипт на своём компе. (Ссылку на игру кину в личку.) Ссылка на комментарий Поделиться на другие сайты Поделиться
Munchkin Опубликовано 18 апреля, 2015 Поделиться Опубликовано 18 апреля, 2015 Да не работает.Если нажать ESC и сохранится, то после возвращения в игру она не реагирует ни на какие кнопки. Так же бьётся скриншот на сейве. Сначала запускал на одном компе в Вин 8.1 x64 и Вин 7 x64.Потом на втором в Вин 8.1 x64.Контроль учётки отключен. Маленькое примечание - у меня все компы с тандемом AMD + ATI. Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 18 апреля, 2015 Автор Поделиться Опубликовано 18 апреля, 2015 (изменено) Допишу уточнения.В игре практически одна инструкция отвечает за всё: графику, текст, диалоги, предметы и т.д.Т.е. через инструкция пробегает 1000 адресов. Фильтр найти практически не возможно, поэтому и написал что скрипт косоватый.Там есть возможность использовать для фильтра смещения в структуре с текстом, но я не знаю как точно использовать текст в скрипте (создал тему.). И ещё одна странность (в первые с таким сталкиваюсь) - нужные значения в игре в типе double, но код игры записывает значения двумя инструкциями, деля по 4 байта. Один скрипт (на предметы) написал с нормальным текстовым фильтром - см. здесь. ЗЫ: Этот фильтр оказался не очень нормальным. Вчера раз пять загружал игру и всё работало. Сегодня - нет. Наверное фильтр работает только по чётным дням. Изменено 19 апреля, 2015 пользователем Garik66 Ссылка на комментарий Поделиться на другие сайты Поделиться
Munchkin Опубликовано 18 апреля, 2015 Поделиться Опубликовано 18 апреля, 2015 (изменено) У меня опять не работает. Изменено 18 апреля, 2015 пользователем Manchkin Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 19 апреля, 2015 Автор Поделиться Опубликовано 19 апреля, 2015 Пытаюсь написать скрипт с использованием фильтра - вроде все адреса можно отделить на следующем уровне структуры в [[eax+20]+10]. Но игра вылетает. Уже весь мозг себе вынес, никак не могу понять: толи у меня ошибка в скрипте, толи в игре есть какая-то защита. Вот Мастера помогите........Плиз. [ENABLE]alloc(newMem, 128)label(returnHere)label(OK)newMem:cmp [eax+0],3jne OKpushfd // добавил на всякий случай и всё равно вылет.push ecxmov ecx,dword ptr [eax+20]cmp dword ptr [ecx+10],5F766E69jne @fmov [eax+08],00000000mov [eax+0C],40240000@@:pop ecxpopfdOK:mov ecx,[eax+08]mov [edx+08],ecxjmp returnHereGame.exe+113B69:jmp newMemnopreturnHere:[DISABLE]Game.exe+113B69:mov ecx,[eax+08]mov [edx+08],ecxdealloc(newMem) Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 19 апреля, 2015 Автор Поделиться Опубликовано 19 апреля, 2015 Нашёл решение. Вылеты происходили из-за того, что не у всех адресов, работающих с инструкцией по смещению [eax+20] есть поинтеры и соответственно, при выполнении cmp dword ptr [ecx+10],5F766E69, происходил вылет из игры.Так что поставил заслон из фильтров и скрипт заработал, кстати заработал и у Manchkin.[ENABLE]alloc(newMem, 64)label(returnHere)label(OK)newMem:cmp [eax],3jne OKcmp [eax+18],4jne OKcmp [eax+28],4jne OKmov ecx,[eax+20]cmp [ecx+10],5F766E69 //'inv_'jne OKmov [eax+08],00000000mov [eax+0C],40240000OK:mov ecx,[eax+08]mov [edx+08],ecxjmp returnHereGame.exe+113B69:jmp newMemnopreturnHere:[DISABLE]Game.exe+113B69:mov ecx,[eax+08]mov [edx+08],ecxdealloc(newMem) 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 21 апреля, 2015 Автор Поделиться Опубликовано 21 апреля, 2015 Теперь всё работает и у заказчика. Окончательный скрипт, таблицу, инструкции и видео выложил здесь. Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения