[WIP] Diag Menu. Central_Economy

Med0ed

Переводчик DZR
Ур
8
 
Всем привет!

В этой части расскажу, как редактировать и просматривать местоположение точек появления вещей в игровом мире.

Ненадолго вернуться в мир DayZ меня смотивировало вот это видео от Wobo, которое попалось на просторах ютуба.
Решил самостоятельно проверить, действительно ли есть точки, где лут появляется неверно и доразобраться в этой теме, которую пытался осилить много лет назад
 
Последнее редактирование:

Med0ed

Переводчик DZR
Ур
8
 

Часть 1. Подготовка​


В официальной документации от разрабов описано, как работать с категорией функций, которые относятся к редактированию мест спавна лута

Для начала вам нужно создать миссию, в которой вы и будете запускать инструменты дебаггинга
  1. В папке с игрой создаёте новую папку Missions
  2. В ней папку для самой миссии по правилу - название миссии.название карты
    1. Например - CETesting.ChernarusPlus
  3. Переходите в неё и создаёте два файла:
    1. Init.c
    2. start_SP.bat
  4. В первый прописываете код ниже, который переопределит код из самой игры
    1. C++:
      void main()
      {
          // economy init
          CreateHive();
          GetHive().InitOffline();
      
          // player creation
          PlayerBase player;
      
          vector spawnPos = "2200 10 2200";
          Entity playerEnt = GetGame().CreatePlayer(NULL, "SurvivorF_Eva", spawnPos, 0, "NONE");
          player = PlayerBase.Cast( playerEnt );
          GetGame().SelectPlayer(NULL, player);
      };
    2. Вся суть сводится к двум запросам
      1. Создай БД для экономики
      2. Создай игрока с помощью которого мы будем проверять созданное
  5. Во второй команды для запуска игры
    1. Bash:
      cd ../../
      
      start DayZDiag_x64.exe -mission=.\Missions\CETesting.ChernarusPlus -profiles=.\Missions\CETesting.ChernarusPlus\Logs -nosplash -noPause -noBenchmark -filePatching -doLogs -scriptDebug=true
    2. Параметр -profiles используем, чтобы логи так же лежали в файле с миссией, а не где-то далеко, далеко

Запускаем игру, выполнив start_SP.bat

Сворачиваем игру и смотрим, что у нас создалось в папке с миссией:
  • Папка Logs для хранения логов
  • Папка storage_-1
    • Папка backup
      • В ней 12 папок, начинающихся с 000 и заканчивающихся 011
      • Для хранения данных по зонам карты. Скорее всего карта разделена на квадраты
    • Папка data
      • В ней множество файлов различных расширений
    • players.db
      • Хранение информации по игрокам
    • spawnpoints.bin

Так как мы используем DayZDiag_x64.exe, то нам доступны инструменты дебаггинга.
Нажимаем и удерживаем Win + Alt, передвигаемся стрелочками(вверх-вниз и вправо-влево, Backspace для возврата на предыдущее меню)

Спускаемся до пункта Game и нажимаем стрелку вправо
Нажимаем на стрелку вверх и из первого элемента списка попадаем в последний - это удобно делать, когда список длинный, а нужная опция ближе к его концу, чтобы не тратить время на пролистывание всего списка. Так же при удерживании клавиши по списку можно быстро пробегать, главное вовремя остановиться :)

Проваливаемся в пункт Central Economy, а затем в Loot Spawn Edit
Стрелочкой вправо у первых двух пунктов меняем значения:
  1. Spawn Volume Vis -> Adaptive
  2. Setup Vis -> true

На этом моменте вы уже увидите, что в игровом мире появились различные вспомогательные цветные элементы, такие как цилиндры, сферы и тп.

Теперь чтобы ножками нашего аватара по этому новому и дивному миру не бегать, мы перейдём в режим камеры:
  1. Снова вызываем Debug Menu и возвращаемся в раздел Game
  2. У опции Free Camera переводим флажок в true
Наша "душа" отделилась от тела и теперь мы можем быстро перемещаться по карте

Горячие клавиши для этого:
  • Q/Z - подняться/опуститься
  • W/A/S/D - вперёд/влево/назад/вправо
  • Колёсико мыши вверх/вниз - ускорение/замедление скорости перемещения
  • Ctrl/Shift + кнопки перемещения - временное ускорение в нужной оси
  • Alt + кнопки перемещения - временное замедление в нужной оси


Пост будет дополняться ;)
 
Последнее редактирование:

Med0ed

Переводчик DZR
Ур
8
 

Опция Setup Vis​


Чтобы понять выводимую информацию с помощью этой опции, нам нужно сделать некоторые изменения для базы данных экономики в папке с миссией:
  1. Удаляем папку storage_-1, так как мы будем пересоздавать экономику
  2. Создаём папку db и в ней файл types.xml
    1. В нём описываются все предметы, которые могут создаваться в игровом мире
    2. Вставляем следующее содержимое
      1. XML:
        <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
        <types>
            <type name="SmallStone">
                <nominal>0</nominal>
                <lifetime>14400</lifetime>
                <restock>0</restock>
                <min>0</min>
                <quantmin>15</quantmin>
                <quantmax>15</quantmax>
                <cost>100</cost>
                <flags count_in_cargo="0" count_in_hoarder="0" count_in_map="1" count_in_player="0" crafted="0" deloot="0"/>
                <category name="tools"/>
            </type>
        </types>
    3. Будем создавать маленькие камешки)
  3. В этой же папке создаём events.xml
    1. XML:
      <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
      <events>
          <event name="TrajectoryStones">
              <nominal>100</nominal>
              <min>1</min>
              <max>2</max>
              <lifetime>180</lifetime>
              <restock>0</restock>
              <saferadius>25</saferadius>
              <distanceradius>100</distanceradius>
              <cleanupradius>25</cleanupradius>
              <flags deletable="0" init_random="0" remove_damaged="0"/>
              <position>player</position>
              <limit>mixed</limit>
              <active>1</active>
              <children>
                  <child lootmax="0" lootmin="0" max="0" min="0" type="SmallStone"/>
              </children>
          </event>
      </events>
    2. Тем самым мы связываем данные из types.xml(type="SmallStone") с определённым событие(event) - TrajectoryStones
  4. Возвращаемся в корень миссии и создаём файл mapclusterproto.xml
    1. Вставляем данные ниже
    2. XML:
      <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
      <prototype>
              <clusters>
                  <export name="Rail9" shape="dz\structures\rail\tracks\rail_tracke_r25_10.p3d" />
              </clusters>
      
              <cluster name="Rail9" lootmax="2" maxinstances="5">
                  <de name="TrajectoryStones" />
                  <container name="road" lootmax="1">
                  <point pos="-5.83 0.95 0.01" range="0.50" height="1.50" />
                  <point pos="-0.87 0.95 0.28" range="0.50" height="1.50" />
                  <point pos="1.63 0.95 0.33" range="0.50" height="1.50" />
                  <point pos="6.21 0.95 0.31" range="0.50" height="1.50" />
                  </container>
              </cluster>
      </prototype>
    3. Мы возьмём один определённый пролёт ЖД дороги и на нём будем создавать камешки
  5. Создаём mapgroupproto.xml
    1. XML:
      <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
      <prototype>
              <defaults>
                      <default name="clusterMatrix" de="TrajectoryStones" width="12" height="12"/>
              </defaults>
      </prototype>
    2. Для таких-то целей
  6. mapgroupcluster.xml
    1. XML:
      <?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
      <map>
          <group name="Rail9" pos="2167.313965 5.795794 2193.358643" a="-34.185841" />
      </map>
    2. Для разметки объектов на карте, в которых будen создаваться вещи
Великолепно, вы начали погружаться глубже в создание объектов!

P.S.
Если вы полетаете по карте, то заметите, что остовы машин, заражённые зоны и всякое другое продолжили создаваться, так как мы не переопределяли файлы, которые игра считывает и она берёт значения по умолчанию




Когда вы приближаетесь зоне спавна лута, то при включении этой опции отображается информация о ней

На примере зоны на жд, в которой появляются маленькие камешки:

1772306977502.png



GROUP -
Lifetime -
Points -
Proxies -
LootMax -
Occupied -
Linked? -

Range -
Height -
Orientation -

MaxLootSize -
MaxLootHeight -

DYNAMIC

Spawn Avoidance Radius -

Containers -

Какой предмет создан - SmallStone




Пост будет дополняться ;)
 
Последнее редактирование:

Med0ed

Переводчик DZR
Ур
8
 
Бронь 3

Рассказать про экспорт через дебаг меню

И остальные опции, что посвящены этой категории
 
Последнее редактирование:

Med0ed

Переводчик DZR
Ур
8
 
Бронь 4
 

Med0ed

Переводчик DZR
Ур
8
 
Бронь 5
 
Сверху