на главную
об игре
Far Cry 3 28.11.2012

Хочу перенести карту из сюжета в редактор

Привет всем, помогите пожалуйста. Скажите, как можно оригинальную карту, на которой мы играем в фар край, перенести в редактор карт? Что бы ее редактировать...чень нужно!!

Комментарии: 3
Ваш комментарий

hotpul123
Пост из группы разработчика:
Far Cry 3 exMod
13 июн 2015
Действия
#exModNews

Этот пост не слишком оптимистичный, но, как известно, даже неудача - это все равно шаг вперед, а не назад и даже не на месте. Последнюю неделю я бился над тем, что бы:
1. Открыть карту Рук Айленда в редакторе.
2. Подсунуть свою карту в сингл.
3. Увеличить стартовую карту в редакторе в 4 раза.
4. Убрать все стартовое оружие из редактора.
5. Обнаружить скрипты, которые работают в редакторе, чтобы к ним привязать свои.

Результаты:

1.
"-" Фэйл, т.к. движок в режиме редактора немного не так берет данные о секторах, как движок в сингле.
"+" Но зато я узнал, что в редакторе карта, на самом деле, не цельная. Там 64 сектора (размером 64*64 метра) и для каждого сектора существует около десятка отдельных файлов с разным содержимым. При этом в сингле есть предпросчитанные карты теней и другие вещи. В редакторе все динамическое, поэтому такая маленькая карта (по сравнению с той, что из сингла, может тормозить - там некоторые расчеты идут в режиме реального времени, в отличии от карты из сингла).

2.
"-" Тоже фэйл и даже по большему ряду причин, чем в пункте №1.
"+" Узнал, что есть библиотека точек спаунов для сингла с идентификаторами. В редакторе мне идентификатор спауна узнать нельзя, поэтому скрипт не может меня заспаунить на собственной карте и висит бесконечная загрузка.

3.
"-" Пока фэйл, редактор вылетает с ошибкой.
"+" на самом деле, там очень много рутиной работы, поэтому окончательного вердикта нет. Я уже создал около 1500 файлов данных для новых секторов (напомню, что я попытался увеличить их с 8*8 до 16*16, т.е. в 4 раза) и понадобилось вручную создавать файлы с данными для новых секторов. При этом из изначальных 64-х файлов каждого вида (всего около 10 видов) получалось по 256. Итого я сделал только половину работы в этом направлении.

4.
"-" Частичный фэйл.
"+" Окольными путями я убрал AK47 и 6P9 из стартового набора инвентаря и все отлично, но с гранатами все гораздо хуже (смотри следующий пункт).

5.
"-" Не обнаружены.
"+" Как все проходило: перед этим постом я публиковал запись с вскрываемым щитком с вышки, после чего начислялись очки опыта. Вообще все это должно проходить через скрипт: \domino\system\addxp.lua. Скрипт очень простой, на входе подается два параметра (кому и сколько начисляется очков опыта), на выходе происходит начисление через обращение к процедуре CAPI_Player.GivePlayerXP. Чтобы проверить, работает ли этот скрипт в редакторе, я убрал тело функции, т.е. скрипт не должен начислять очки опыта. Далее я запаковал патч, открыл редактор, поместил на карту щиток, запустил режим проверки карты, вскрыл щиток и...очки опыта начислились. Как? Я не знаю. Есть предположение, что это напрямую встроено в саму FC3.dll. Почему так сделали разработчики? Я не знаю, но это очень плохо, т.к. в итоге lua скрипты в редаторе не работают и я не могу ничего встроить, прицепив к какому-то скрипту свой.

-1

hotpul123
Уверен почти на 100%, что это не возможно.
К тому же, карта в редакторе ограничена по размерам. Даже теоретически она не вместит в себя весь игровой мир Far Cry 3.

-2

Карта синглплеера состоит из отдельных квадратов террейна. И по отдельности каждый такой квадрат возможно загрузить в редактор. Но лишь после долгого и сложного реверс инжиниринга форматов, в которых они хранятся. Велика вероятность что у карт сохраненных в редакторе и кусков синглплеера в форматах будут схожие данные, хранящие карту высот и расположение объектов, и тогда можно будет написать конвертер туда и обратно. Но в картах синглплеера хранится еще множество специфических данных, типо скриптов, триггеров, окклюдеров и прочего, с чем редактор карт не работает. В общем, это большая сложная задача, поэтому ею никто серьезно не занимался.

-2