FOnline
 Указатель Классы Функции Переменные Группы Страницы
Создание карт

Создаем первую карту

Для того, чтобы создать новую карту, вызовите консоль [Enter] и наберите “*new”.

CreatingMap01.jpg

Выберите в открывшемся окне Tile, и разместите несколько тайлов. Для этого щелкните по тайлу в поле выбора объекта левой кнопкой, затем правой кнопкой, чтобы курсор принял форму выбранного тайла, а затем по полю карты левой кнопкой. Помните, что можно выделить тайлы и скопировать их ([Ctrl+C] по выделенным тайлам, затем [Ctrl+V], клик правой кнопкой и перенос в нужное место).

CreatingMap02.jpg

В закладке Tile находятся тайлы и для пола, и для крыш; переключение между позициями, на которые надо вставить тайл, осуществляется шелчком средней кнопкой/колесиком мыши.

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

CreatingMap03.jpg

Каждый раз, когда вы ставите стену, у вас будет появляться подобное окно (выделено красной рамкой). Для того, чтобы убрать ее, щелкните левой кнопкой по карте. Можно также выключать ее отображение клавишей [F9], однако это не рекомендуется, так как вам все равно придется «отключать» ее левым щелчком по карте. Конкретно для стен вам вряд ли потребуется изменение каких-либо настроек.

Переключитесь в Gen и поставьте вентиляцию и компьютер.

CreatingMap04.jpg

Теперь попробуем поставить дверь. В Dor выберите нужную дверь и поставьте ее в проход. Появится окно настроек, в котором нас интересуют следующие значения:

CreatingMap05.jpg

DoorId – этот параметр соответствует номеру ключа, на который закрывается дверь.

Complexity – уровень сложности замка. Высчитывается по формуле «Навык взлома – сложность замка». Максимальное значение – 95.

Со значениями по умолчанию (0,0) дверь можно открывать без ключа.

Когда у нас поставлена дверь и сделана комната, самое время проверить блокеры. Уберите видимость стен [F3] и нажмите [Ctrl+B].

CreatingMap06.jpg

Как видите, некоторые гексы оказались свободнопроходимыми. Это связано с тем, что блокировка у одного объекта распространяется только на один гекс, чтобы наша комната получилась действительно изолированной, выберите во вкладке Fast зеленый гекс с буквой W и поставьте его на место пробелов (если потребуется – включите обратно отображении стен.

CreatingMap07.jpg

Теперь в комнату уже никто не пройдет. Но не стоит забывать, что блокировка требуется не только стенам, но и gen-объектам. В нашем случае это компьютер. Выберите во вкладке Fast ярко-зеленый гекс с буквой S, и расставьте его по всем проходимым клеткам около компьютера.

CreatingMap08.jpg

Блокеры W отличаются от блокеров S тем, что последние могут простреливаться.

После того, как наша комната оказалась действительно изолированной, мы можем поставить около нее несколько криттеров.

CreatingMap09.jpg

Когда вы выбираете криттера, внизу в поле выбора объектов у него автоматически открывается вкладка инвентарь. Сейчас она пуста. Для того, чтобы добавить в инвентарь криттера объекты, щелкните по нужной вам вкладке (например, оружие), и нажмите на объект с зажатым [Alt]. Он добавится в инвентарь. Если вы хотите добавить оружие в слот криттеру, поместите его в инвентарь, а затем щелкните по оружию в инвентаре с зажатым [Shift].

Кроме вкладки инвентаря, открывается окно параметров криттера.

  • ProtoId – номер прототипа NPC, в котором описаны все его характеристики и параметры брони.
  • DialogId – номер диалога.
  • AiPacket - информация об искусственном интеллекте NPC, находятся в AI.TXT. Если стоит 0, то информация берется из прототипа NPC.
  • ScriptId – номер скрипта, если есть.
  • Cond и CondExt – начальные состояния криттера, значения находятся в _defines.fos.
  • IsMob – моб ли этот NPC. Если да, то он всегда будет атаковать любого игрока, и его радиус обзора увеличен в 2 раза.
  • BagId – отвечает за инвентарь NPC.
  • TeamId – отвечает за команды NPC. Значения можно посмотреть в файле Teams.txt. Новые команды рекомендуется создавать после согласования.

После того, как вы справились с этой задачей, приступим к окончательному созданию пола. Переключите Tab’ом режим выделения, отметьте Tile на панели выделения, и скопируйте тайлы на всю карту.

CreatingMap10.jpg

Самое время расставить скроллблокеры – блокираторы прокрутки, не дающие игроку пролистать дальше карты. Для этого во вкладке Fast выбираем белый гекс с буквой S и расставляем их в нужном порядке, желательно прямоугольником, не забывая пользоваться возможности копирования (для этого нужно отметить Scen в настройках выделения).

CreatingMap11.jpg

Помните, что минимальный размер карты должен подходить под разрешение 1280х1024. Проверяйте карты при разных размерах окна маппера (он, также как и клиент, подчиняется FOConfig).

Расставив все блокеры, нам нужно сделать две следующие вещи: сделать точку входа на карту и отметить точки выхода. Не забудьте поставить точки входа для транспорта (243 и 245), если карта это предполагает.

На каждой карте обязательно должен присутствовать один объект Scen и Wall. На картах пустыни их можно поставить за скролл-блокеры. Без них маппер может вылетать при попытке сохранения карты.

FAQ по картостроению:

1. Как сделать ящики/двери закрытыми?
Выставьте им произвольный LockerId. Теперь ящик закрыт. Если вы хотите повысить сложность взлома, выставьте некое значение Complexity. Сложность замка не принято выставлять больше, чем 95. Проверка на взлом осуществляется по формуле RANDOM(5,95)<(SK_LOCKPICK-Complexity). Если вы хотите сделать невзламываемую дверь, либо выставьте ей сложность замка = 300, либо пропишите ей скрипт item@_ClosedDoorInit. Для того, чтобы дверь сама захлопывалась со временем, присвойте ей скрипт item@_DoorAutoCloseInit.

2. Как рисовать трупы?
Откройте окно свойств криттера. Выставьте Cond=3. Далее, при необходимости, пропишите нужный CondExt (тип смерти):

#define COND_DEAD_FRONT (1)
#define COND_DEAD_BACK (2)
#define COND_DEAD_BURST (3)
#define COND_DEAD_BLOODY_SINGLE (4)
#define COND_DEAD_BLOODY_BURST (5)
#define COND_DEAD_PULSE (6)
#define COND_DEAD_PULSE_DUST (7)
#define COND_DEAD_LASER (8)
#define COND_DEAD_EXPLODE (9)
#define COND_DEAD_FUSED (10)
#define COND_DEAD_BURN (11)
#define COND_DEAD_BURN2 (12)
#define COND_DEAD_BURN_RUN (13)

Не у всех криттеров есть все типы смерти.
Если вы не хотите, чтобы криттер "ожил" через некоторое время, пропишите ему ST_REPLICATION_TIME=-1. Cond=2 - криттер в нокауте. Однако, он встанет сразу после загрузки сервера, поэтому лежачим криттерам надо присваивать индивидуальный скрипт.

3. Как сделать многоэтажную карту?
Многоэтажных карт, как в Fallout 1/2, в FOnline нет. Чтобы сделать карту многоэтажной, просто нарисуйте несколько отдельных карт, пропишите их в Locations.cfg как части одной локации, а затем свяжите лестницами и переходами.

4. Как сделать оружие изношенным?
Откройте панель свойств оружия, впишите нужное значение износа в поле "DeteorationValue". Можно также выставить количество поломок (DeteorationCount) или сделать оружие сломанным (DeteorationFlags). Флаги поломок:

#define BI_LOWBROKEN (0x01)
#define BI_NORMBROKEN (0x02)
#define BI_HIGHBROKEN (0x04)
#define BI_NOTRESC (0x08)
#define BI_BROKEN (0x0F)
#define BI_SERVICE (0x10)
#define BI_SERVICE_EXT (0x20)
#define BI_ETERNAL (0x40)

5. Напомните, как рисовать крышу?
Тайлы крыш находятся в одном списке с тайлами пола. Для того, чтобы переключиться между рисовкой крыш или пола, нажмите среднюю кнопку мыши (колесико).