Добавление новых секторов в моде 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 |
Например, вас интересует сектор 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 «Генеральный застройщик пустоши»
|