Если кто-то кое-где у нас порой, честно жить не хочет...
(любителям легкой жизни предлагаю адреса ресурсов в SAVE-файлах: *.kb2)
Название ресурса | Смещение | МАХ количество |
Авторитет | 27691 | FFFFFF7F (2147483647) |
Золото | 2975 | FFFFFF7F (2147483647) |
Недельная прибавка | 27715 | FFFFFF7F (2147483647) |
Смерч | 27727 | FF (255) |
Части древней карты | 27721 | 05 |
Волшебная сила | 27701 | FF (255) |
МАХ количество волшебства | 2989 | FF (255) |
Плотники | 2979 | FF7F (32767) |
Лесорубы | 2981 | FF7F (32767) |
Землекопы | 2983 | FF7F (32767) |
Каменотесы | 2985 | FF7F (32767) |
Координата X (героя) | 2921 | 7E (62) |
Координата Y (героя) | 2922 | 7E (62) |
Стенобитное орудие | 2726 | [0000 0100] |
Корабль | 2726 | [0000 0010] |
Координата X (корабля) | 2969 | 7E (62) |
Координата Y (корабля) | 2970 | 7E (62) |
Товар фрукты | 2881 | FFFF (65535) |
Товар сладости | 2883 | FFFF (65535) |
Товар вино | 2885 | FFFF (65535) |
Товар бархат | 2887 | FFFF (65535) |
Товар украшение | 2889 | FFFF (65535) |
Товар оружие | 2891 | FFFF (65535) |
Товар жемчуг | 2893 | FFFF (65535) |
Тип юнитов армии 1 | 27557 | 00 - 1D (00 - 30) |
Численность армии 1 | 27558 | FFFF (65535) |
Тип юнитов армии 2 | 27560 | 00 - 1D (00 - 30) |
Численность армии 2 | 27561 | FFFF (65535) |
Тип юнитов армии 3 | 27563 | 00 - 1D (00 - 30) |
Численность армии 3 | 27564 | FFFF (65535) |
Тип юнитов армии 4 | 27566 | 00 - 1D (00 - 30) |
Численность армии 4 | 27567 | FFFF (65535) |
Тип юнитов армии 5 | 27569 | 00 - 1D (00 - 30) |
Численность армии 5 | 27570 | FFFF (65535) |
Тип юнитов резерва 1 | 27572 | 00 - 1D (00 - 30) |
Численность резерва 1 | 27573 | FFFF (65535) |
Тип юнитов резерва 2 | 27575 | 00 - 1D (00 - 30) |
Численность резерва 2 | 27576 | FFFF (65535) |
Тип юнитов резерва 3 | 27578 | 00 - 1D (00 - 30) |
Численность резерва 3 | 27579 | FFFF (65535) |
Тип юнитов резерва 4 | 27581 | 00 - 1D (00 - 30) |
Численность резерва 4 | 27582 | FFFF (65535) |
Тип юнитов резерва 5 | 27584 | 00 - 1D (00 - 30) |
Численность резерва 5 | 27585 | FFFF (65535) |
Магия Остановка времени | 27677 | FF (255) |
Магия Сми-и-рно! | 27678 | FF (255) |
Магия Переход к замку | 27679 | FF (255) |
Магия Переход к городу | 27680 | FF (255) |
Магия Дать армию | 27681 | FF (255) |
Магия Квази авторитет | 27682 | FF (255) |
Магия Дать волшебство | 27683 | FF (255) |
Магия Телепорт | 27684 | FF (255) |
Магия Размножение | 27685 | FF (255) |
Магия Шаровая молния | 27686 | FF (255) |
Магия Мороз | 27687 | FF (255) |
Магия Дубинка | 27688 | FF (255) |
Магия Воскресшение | 27689 | FF (255) |
Магия Инфекция | 27690 | FF (255) |
Недель осталось | 27719 | FFFF (65535) |
Дней осталось | 2987 | FFFF (65535) |
Безопасных дней осталось | 27726 | FF (255) |
Встреча с Волшебником на Равнолесье | 2915 | 07 |
Встреча с Волшебником на Заболотии | 2916 | 07 |
Встреча с Волшебником на Тайгании | 2917 | 07 |
Встреча с Волшебником на Альпии | 2918 | 07 |
Встреча с Волшебником на Сахарии | 2919 | 07 |
Карта земли Равнолесье | 2722 | [0001 0000] |
Карта земли Заболотии | 2722 | [0010 0000] |
Карта земли Тайгании | 2722 | [0100 0000] |
Карта земли Альпии | 2722 | [1000 0000] |
Карта земли Сахарии | 2723 | [0000 0001] |
Осталось выполнить контрактов на Равнолесье | 2909 | 00 |
Осталось выполнить контрактов на Заболотии | 2910 | 00 |
Осталось выполнить контрактов на Тайгании | 2911 | 00 |
Осталось выполнить контрактов на Альпии | 2912 | 00 |
Осталось выполнить контрактов на Сахарии | 2913 | 00 |
Континентов доступно | 2992 | 05 |
Ритуальный предмет Чаша | 2962 | 01 |
Ритуальный предмет Жезл | 2964 | 01 |
Ритуальный предмет Кинжал | 2966 | 01 |
Ритуальный предмет Пентакль | 2968 | 01 |
Цветные заклинания (8 шт.) | 2724 | FF |
И что со всем этим делать???
Для начала скачайте очень полезную прогу DUB.EXE (вирусов нет - проверял). Она позволяет побайтово сравнивать 2 файла. Итак, пусть нас интересуют деньги.
Сохранитесь вблизи любого магазина (допустим, появится файл MY1.KB2) Теперь, не двигаясь с места, покупаем что-либо и быстренько сохраняемся (MY2.KB2) Что у нас изменилось? Деньги, время, то что мы купили и некоторые служебные данные, о которых и знать не обязательно. Теперь запускаем прогу. Для этого нужна командная строка (подойдет Norton Commander, FAR, или на худой конец ПУСК-ВЫПОЛНИТЬ). Формат запуска:
> DUB.EXE MY1.KB2 MY2.KB2
В верхнем окошке мы увидим содержимое 1-го файла (в 16-ричном формате), в нижнем - 2-го. Все различия будут выделяться ярко желтым.
Для быстрого поиска отличий есть кнопочка F7.
Для перехода по известному адресу памяти - F4.
Для поиска определенной последовательности байт - F5.
Итак, нашли нужную ячейку, где хранится кол-во денег. Возможно, для этого придется провести не одно сравнение. Далее вписываем желаемое кол-во денег, обязательно уводим курсор на другую страницу (чтобы произошло автосохранение измененений). И жмем ESC. Если все сделали правильно, то загружаем исправленный файл MY2.KB2 уже с нужным количеством денег.
Можно действовать чуть иначе. Сейвимся. Сейчас у нас 1000 золота. Запускаем стандартный калькулятор Windows. В 16-ричной системе 1000 будет 3E8 (а точнее - 000003E8). Вот только не забудьте, что в памяти байты располагаются в обратном порядке, т.е. нам нужно искать фрагмент E8030000). Теперь тратим деньги, допустим - покупаем корабль, итого осталось 500 (т.е. 1F4). Теперь, сравнив эти 2 файла, мы должны найти отличие, где значение E803 меняется на F401. Запомните этот адрес, он останется таким навсегда!
Ставим себе 100000 денег (186A0 -> A08601) и грузимся - мы ведь не жадные! Собственно, так можно править множество параметров, все они указаны в моей табличке - адрес в памяти + максимально возможное количество (поставите больше - уйдете в минус). Ну вот и все, пишите, если что не получается.
Дополнения от AVP
У меня в первую очередь возник вопрос, что нужно взломать (желательно в наименьшем количестве) в самом начале сейва, чтобы больше туда не лазить. И знаете, в результате я пришел к выводу, что для этого достаточно всего лишь добавить "Время". Но увидев в вашем списке много других параметров, решил предложить еще несколько.
Итак если открыть сейв в 16-ричном виде и найти в нем строку 0*63С0, то начиная с 16-го (последнего) байта этой строки и до 7-го байта строки 0*63F0 включительно (всего 40 байт), будут записаны все 8 жилищ воинов (по пять байт на каждое) на Равнолесье в таком формате:
1 байт -- координата Х,
2 байт -- координата У,
3 байт -- код войска,
4,5 байты -- остаток на даный момент.
Далее, начиная с 8-го байта строки 0*63F0 следующие 160 байт в таком же формате содержат информацию о всех жилищах воинов на оставшихся 4 континентах (в стандартном порядке) по 40 байт на каждый континент.
В ехе-файле на каждый вид воинов отводится по 18 байт, в первых 9-ти записаны название войска (по одному байту на букву; если букв меньше 9-ти, то остаток забит нулями), а в последних 9-ти содержатся умения этих войск:
1,2 байт -- стоимость наема,
3 байт -- кол-во ходов,
4 байт -- умение летать и количество ответных ударов,
5,6 байты -- величина защиты,
7,8 байты -- сила удара,
9 байт -- по-моему, просто ни на что не влияет.
Для нахождения первого байта определенного вида я просматривал даный файл Farом в 16-ричном виде, в правой колонке находил название нужного вида. Байт, который отвечает первой букве названия и есть первый байт этого вида воинов.
|