1. Друзья, в это тяжёлое и непонятное для всех нас время мы просим вас воздержаться от любых упоминаний политики на форуме, - этим ситуации не поможешь, а только возникнут ненужные ссоры и обиды. Это касается также шуток и юмора на тему конфликта. Пусть войны будут только виртуальными, а политики решают разногласия дипломатическим путём. С уважением, администрация Old-Games.RU.

    Скрыть объявление
  2. Пожалуйста, внимательно прочитайте правила раздела.
  3. Если Вы видите это сообщение, значит, вы ещё не зарегистрировались на нашем форуме.

    Зарегистрируйтесь, если вы хотите принять участие в обсуждениях. Перед регистрацией примите к сведению:
    1. Не регистрируйтесь с никами типа asdfdadhgd, 354621 и тому подобными, не несущими смысловой нагрузки (ник должен быть читаемым!): такие пользователи будут сразу заблокированы!
    2. Не регистрируйте больше одной учётной записи. Если у вас возникли проблемы при регистрации, то вы можете воспользоваться формой обратной связи внизу страницы.
    3. Регистрируйтесь с реально существующими E-mail адресами, иначе вы не сможете завершить регистрацию.
    4. Обязательно ознакомьтесь с правилами поведения на нашем форуме, чтобы избежать дальнейших конфликтов и непонимания.
    С уважением, администрация форума Old-Games.RU
    Скрыть объявление

Редактор карт для King's Bounty

Тема в разделе "Мастерская", создана пользователем AndyFox, 7 окт 2022.

Метки:
  1. AndyFox

    AndyFox

    Регистрация:
    22 июл 2009
    Сообщения:
    4.238
    ai120.fastpic.org_big_2022_1007_ef_18a4036230427c808214e386008df2ef.png

    Вдохновившись Редактор savegame параметров для King's Bounty решил делать редактор карт для King's Bounty (1990, DOS)

    Сохранённая игра всегда занимает 20 241 байт.
    Каждый континент занимает 64 × 64 клетки, это 4 096 байт, значит 4 континента составят 16 384 байт.
    Соответственно на всё остальное приходится 3 857 байт.

    Для примера:
    00 — земля;
    01 — тень;
    02, 03, 04, 05, 06, 07 — фрагменты замка (непроходимы);
    08, 09 — мосты;
    0A — город;
    0B — сундук;
    0C — повозка;
    0D — дерево;
    0E — пещера;
    0F — башня;
    10 — указатель;
    11 — бродячий отряд;
    12 — кольцо;
    13 — свиток;
    14 - 20 — вода;
    21 - 64 и далее — элементы рельефа (лес, горы);
    8E — пещера с магической книгой.

    Однако, хотя фрагменты замка и элементы рельефа работают как надо, интерактивные объекты являются проходимыми элементами интерьера...
     
    Dimouse, compart и Morendil нравится это.
  2.  
  3. AndyFox

    AndyFox

    Регистрация:
    22 июл 2009
    Сообщения:
    4.238
    compart нравится это.
  4. AndyFox

    AndyFox

    Регистрация:
    22 июл 2009
    Сообщения:
    4.238
    Структура сохранёнки:

    0x000 - 0x00A — имя (автоматически дополняется пробелами)
    0x00B — класс (1 — рыцарь, 2 — паладин, 3 — волшебница, 4 — варвар)
    0x00C — ранг (от 1 до 4)
    0x00D — сила магии
    0x00E — максимальное количество заклинаний
    0x00F - 0x01F — злодей № пойман (0 или 1)
    0x020 - 0x027 — артефакт № найден (0 или 1)
    0x028 - 0x02B — континент № открыт (0 или 1)
    0x02C - 0x02F — сфера № найдена (0 или 1)
    0x030 - 0x03D — количество заклинаний № (0 или 1)
    0x03E — магия известна? (0 или 1)
    0x03F — осадное орудие есть? (0 или 1)
    0x040 — текущий контракт
    0x041 - 0x045 — армия героя
    0x046 — задержка (0-9)
    0x047 — сложность
    0x048 — опция звука
    0x049 — опция озвучки шагов
    0x04A — опция анимации
    0x04B — опция отображения количества войск
    0x04C — континент нахождения героя
    0x04D — координата героя X
    0x04E — координата героя Y
    0x04F — последняя координата X
    0x050 — последняя координата Y
    0x051 — координата лодки X
    0x052 — координата лодки Y
    0x053 — континент лодки (0xFF - нет лодки)
    0x054 — режим путешествия (0x00 - лодка, 0x04 - дракон, 0x08 - конь)
    0x055 — палитра CGA
    0x056 - 0x069 — заклинание продаваемое в городе №
    0x070 - 0x074 — цикл контрактов (5 злодеев)
    0x075 — последний контракт (от 0x04 до 0x00)
    0x076 — максимальный контракт (начинается с 0x05)
    0x077 — осталось шагов до конца дня
    0x078 — неизвестно
    0x079 - 0x092 — владелец замка (0x7F = ничей, 0xFF = геройский, нижние 5 бит = злодей)
    0x093 - 0x0AC — посещённый замок №
    0x0AD - 0x0C6 — посещённый город №
    0x0C7 — континент нахождение скипетра (зашифрован)
    0x0C8 — координата нахождения скипетра X (зашифрована)
    0x0C9 — координата нахождения скипетра Y (зашифрована)
    0x0CA - 0x8C9 — туман войны (1bpp)
    0x8CA - 0x94B — отряды гарнизона
    0x94C - 0x973 — координаты врага (2 байта каждый, 5 на континент)
    0x974 - 0x979 — координаты сундуков с картой (2 байта каждый, 1 на континент)
    0x97a - 0x981 — координаты сундука с заклинаниями (2 байта каждый, 1 на континент)
    0x982 - 0x991 — координаты телепортера (2 байта каждый, 2 на континент)
    0x992 - 0x9E9 — координаты жилища (2 байта каждое, 11 на континент)
    0x9EA - 0xB01 — координаты бродячего отряда (2 байта каждый, 35 на континент)
    0xB02 - 0xCA5 — вражеские войска (3 байта каждый)
    0xCA6 - 0xE49 — количество вражеских войск (3 байта каждый)
    0xE4A - 0xE75 — отряды в жилище №
    0xE76 - 0xEA1 — количество в жилищах №
    0xEA2 — ключ от скипетра (согласуется с координатами скипетра)
    0xEA3 - 0xEA4 — базовый авторитет
    0xEA5 - 0xEA6 — авторитет
    0xEA7 - 0xEA8 — жалование
    0xEA9 - 0xEAA — последователей убито
    0xEAB - 0xEB4 — количество отрядов героя
    0xEB5 - 0xFB8 — количество отрядов гарнизона
    0xFB9 - 0xFBA — осталось свободных ходов (заклинание остановки времени)
    0xFBB - 0xFBC — осталось дней
    0xFBD - 0xFBE — количество очков
    0xFBF — неизвестно, всегда 00
    0xFC0 — неизвестно, всегда 00
    0xFC1 - 0xFC4 — золото
    0xFC5 - до конца файла — дамп карты (представляет собой полный дамп в формате карты King's Bounty).

    В игре 26 замков, 26 городов, 17 злодеев, 25 войск, 14 заклинаний и 4 континента.
    Координаты всегда занимают 2 байта и всегда идут в порядке X, Y.
    Координаты скипетра объединяются XOR с ключом скипетра при загрузке/сохранении.
    Индексы войск и злодеев находятся в производственном порядке (как видно из файлов .CC).
    Численность населения хранится в BYTE, максимально возможное значение — 250.
    Номера армий героев и замков хранятся в UINT16LE, по 5 на армию.
    Враждебные враги имеют только 3 войска, и их количество хранится в байтах.
    Режим монтирования также является смещением в спрайт-листе героя.
     
    Последнее редактирование: 13 ноя 2022
    compart нравится это.
  1. На этом сайте используются файлы cookie, чтобы персонализировать содержимое, хранить Ваши предпочтения и держать Вас авторизованным в системе, если Вы зарегистрировались.
    Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie.
    Скрыть объявление