Как добавить здания на карту? И как прописать в них спавн лута?
Несмотря на то, что задача видится единой, вопросов по её решению, как очевидно, два.
1) КАК ДОБАВИТЬ ЗДАНИЯ НА КАРТУ:
шаг первый: проходим по ссылке и скачиваем offline-админку https://vk.com/fidovpublic?w=wall-94007758_3744 или сразу с яндекс-диска https://yadi.sk/d/vL_KvUQ4di38Hw (версия 1.3.1) https://yadi.sk/d/dIbbc1GFkUrD7A (версия 1.2);
Шаг второй: устанавливаем, заходим, нажимаем Y, выбираем "ОБ" (то есть объекты), "постройки", размещаем объект на земле, кликаем по наименованию в окне, теперь скролом колесика мыши по координатам - можно подвинуть влево/вправо, вперед назад, вниз/вверх,далее нажимаем на значок "экскаватор" (открывается дополнительное окно ниже), в нем так же скролом наклоняем или разворачиваем объект, можем сохранить и после рестарта объекты будут стоять на том же месте.
Шаг третий: нажимаем экспорт и идем в notepad++, нажимаем ctrl+V (вставляем из буфера обмена код с нашими зданиями и их координатами). Выглядит это так: GetGame().CreateObject("Land_Container_1Moh", "446.953156 422.951996 11226.987305").SetOrientation("132.000000 0.000000 0.000000");
Шаг четвертый: открываем файл init.c (Server\mpmissions\dayzOffline.chernarusplus\init.c), находим void main() {…., опускаемся ниже до строчки weather.SetWindFunctionParams(0.1, 0.3, 50); После нее прописываем
Object obj;
GetGame().CreateObject("Land_Container_1Moh", "446.953156 422.951996 11226.987305").SetOrientation("132.000000 0.000000 0.000000");
( поставьте свои координаты чтобы Вам было удобно проверить или может скачать файл с несколькими новыми военными базами у меня https://yadi.sk/i/c_RH9woVKvIsvQ )
загрузить здания без лута - для этого вам будет уже достаточно вышеприведенного текста, если вы, например, готовите базу для игроков, либо дополняете локации нелутабельными объектами, создаете красоту и атмосферу. Если же Вам нужен лут, то переходим вместе со мной к этапу №2 и пытаемся вместе разобраться.
2) КАК ДОБАВИТЬ ЛУТ В ЗДАНИЯ? (Я ПРОШУ УЧАСТНИКОВ ФОРУМА ПОМОЧЬ В ЭТОМ)
приведу несколько статей на этой счет:
статья первая: "генерация новых точек для спавна лута в зданиях"
Следуя директивам: так же в init.c вставляем код
находим "class CustomMission: MissionServer" (он идет сразу после добавленных нами зданий)
и в этот класс вставляем void OnInit () { текст } (текст указан ниже)
вот так вот:
class CustomMission: MissionServer
{
void OnInit ()
{
CETesting TestHive = GetTesting();
TestHive.ExportProxyProto();
TestHive.ExportProxyData( "7500 0 7500", 7000 );
}
};
запустите сервер и подождите примерно 30-60 секунд после прочтения миссии!
как только вы видите это в консоли: [ce][mapexport]:: entity found:13722, entity valid:8983, types total: 224... took 33 sec.
перейдите в папку хранения в миссии, откройте его, и вы должны увидеть новую папку с именем "export" внутри него будет содержать копию 2 xml и заменить старые с новыми, когда получишь 2 файла удали код который добавил при следующем запуске сервера
и еще три статьи на одну тему
Статья вторая: Вы должны добавить здание в mapgrouppos.xml с той же позицией. Тогда у вас должен появиться там спавн лута, пишет автор статьи. Ссылка на статью https://forums.dayz.com/topic/240272-dayz-map-mod/ Статья третья: Я "игрался" с кодом и добавил некоторые записи в mapgrouppos.xml, но я понял, что это определение экземпляров макетов лута для каждой строительной сетки (т.е. у меня был лут, плавающий в воздухе, без зданий под ним и вокруг него) тут админ, видимо, забыл про файл init.c и сами здания отсутствовали. Ссылка на статью
Статья четвертая: В mapgrouppos.xml указаны все точки спавнов. Ссылка на статью
идем в mapgrouppos.xml
DayZCommunityOfflineMode / Missions / DayZCommunityOfflineMode.ChernarusPlus /mapGroupPos.xml
и видим там все здания в координатами
<group name="Land_Misc_FeedShack" pos="80.255409 113.792282 4422.158691" rpy="-0.000000 0.000000 -70.013718" a="160.013718" />
<group name="Land_Misc_FeedShack" pos="80.250587 411.261566 10449.115234" rpy="-0.000000 0.000000 -58.923214" a="148.923203" />
а наш код, выгруженный из offline админки
GetGame().CreateObject("Land_Container_1Moh", "446.953156 422.951996 11226.987305").SetOrientation("132.000000 0.000000 0.000000");
GetGame().CreateObject("Land_Container_1Moh", "451.626770 423.004059 11222.603516").SetOrientation("-45.999992 -0.000000 0.000000");
Только вот что такое "rpy" и "a" я не знаю, могу предположить что
"rpy" это есть SetOrientation а "а" это градус поворота, но как это выгрузить из offline админки я ума не приложу
Оставляю на Ваше изучение, использование и дополнение (прошу помочь)