© A.I.M. team

Добавление новых секторов в моде Shady Job

На форуме возник вопрос о возможности добавления новых секторов в мод Shady Job (SJ). Это возможно, но следует помнить, что мод сделан на платформе UB, в которой число секторов не может превышать 145, включая начальный сектор Н7 и служебный сектор К16. В SJ имеется 89 секторов, включая подземные, соответственно, добавить можно не более чем 56 секторов, впрочем, этого более чем достаточно.

Для добавления в мод своих секторов, потребуется руками отредактировать файл map.bin, находящийся в директории /Data/. Этот файл бинарный, никаких редакторов для его правки нет, поэтому править его придется в каком-нибудь HEX-редакторе, например в UltraEdit. Выбор HEX-редактора не принципиален, пользуйтесь тем, в которым умеете работать.

В файле map.bin содержится описание стратегической карты для движка мода. На каждый сектор отводится 9 байт. В первых пяти прописываются рельеф для всех четырех границ сектора, в следующей последовательности: верхняя, правая, нижняя, левая, и пятый параметр — тип рельефа самого сектора. Значения этих параметров используются движком для определения возможности прохода между секторами и расчета времени перехода. Следующие три байта нулевые, роль последнего байта я не знаю, ИМХО он является каким-то аппендиксом и ни на что не влияет. По крайней мере, в аналогичном файле для мода B2B, сектора описываются только пятью байтами, а не девятью.

При создании бинарного описания стратегической карты, следует точно соблюдать однотипность рельефа на границах между секторами. Движок это проверяет и при несоблюдении этого условия могут возникнуть глюки. Типы рельефа и соответствующие им числовые значения следующие:

00 — Город
01 — Дорога
02 — Равнина
03 — Песок
04 — Редкий лес
05 — Густой лес
06 — Болото
07 — Вода
08 — Горы
09 — Непроходимый
0A — N-S река
0B — E-W река
0C — Край карты

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

Для удобства нахождения адресов в файле map.bin, соответствующих началу описания каждого сектора, можно воспользоваться следующей таблицей, наложенной на стратег-карту мода. Адреса в таблице представлены в шестнадцатеричном виде, как оно и показывается в HEX-редакторе:

Таблица адресов в map.bin
Таблица адресов в map.bin

Например, вас интересует сектор D10, к правой границе которого вы хотите присоединить свой сектор D11. В таблице адресов находите адрес 0×201, с которого в map.bin начинается описание сектора, содержащее следующие 5 байт: 02 09 01 01 0A. Это значит, что верхняя граница сектора — равнина (02), правая граница закрыта (09), нижняя и левая — дорога (01), сам сектор — река, направлением север-юг (0A). Чтобы открыть для прохода правую границу этого сектора, измените значение ее байта с 09 на 02 или на другое «проходимое» значение, в зависимости от рельефа добавляемой вами карты.

Аналогичную работу надо сделать с границами сектора D11, в котором находится ваша новая карта. В таблице адресов берем адрес начала описания этого сектора — 0×20А и правим пять байтов следующим образом: 09 09 09 02 03. Это значит, что верхняя, правая и нижняя границы добавленного сектора закрыты, левая — равнина, т.е. имеет то же самое значение, что и правая граница сектора D10, а рельеф самого сектора — песок. Теперь между секторами D10 и D11 есть проход и движок обсчитает переход, как по равнине.

Теперь, когда вы знаете способ расширения стратег-карты Джобика, вы можете увеличить ее до требуемых вам размеров, но не более 145 секторов. Для удобства, я бы порекомендовал заодно дорисовать добавленные вами сектора на стратег-карте. Файл с изображением стратег-карты называется b_map.pcx и находится в фолдере /Data/interface/.


Удачи,
VM aka «Генеральный застройщик пустоши» 8)