Структура мода
Мод загружается с помощью параметра -mod= launch
-mod=C:\MyMods\TestMod
Типичная папка с модом, загруженная из steam workshop, будет содержать:
Папка Addons, содержащая файлы .pbo мода
Папка Keys, содержит public .bike, используемый для подписи файлов .pbo (требуется для проверки подписи клиент-сервер)
meta.cpp файл, содержащий метаданные семинара (будет автоматически создан при публикации мода)
mod.cpp дополнительный конфигурационный файл, содержащий информацию для представления мода
Структура PBO
Единственной необходимой частью файла .pbo является config.cpp:
class CfgPatches // требуемый
{
class TestMod
{
requiredAddons[]=
{
"DZ_Data", // зависимость от дополнения
};
};
};
class CfgMods // требуется в pbo, которые добавляют / изменяют скрипты или входные данные
{
class TestMod
{
type = "mod"; // требуемый
inputs = "mods\testmod\inputs\my_new_inputs.xml"; // необязательно, при использовании пользовательских входных данных
skeletonDefinitions = "mods\testmod\skeleton\skeletons.xml"; // необязательно, при использовании пользовательского skeletons.anim.xml
dependencies[]={"Game"}; // необязательно, когда вам нужно установить зависимость от класса
class defs
{
// необязательно: вы можете добавить пользовательские наборы изображений, подобные этому
class imageSets
{
files[]={"mods/testmod/gui/imagesets/mod1.imageset", "mods/testmod/gui/imagesets/mod2.imageset" };
};
// необязательно: вы можете добавить пользовательские стили виджетов, подобные этому
class widgetStyles
{
files[]={"mods/testmod/gui/looknfeel/mod1.styles", "mods/testmod/gui/looknfeel/mod2.styles"};
};
class engineScriptModule
{
value=""; // когда значение пусто, используется функция ввода по умолчанию
files[]={"mods/testmod/scripts/1_Core"}; // вы можете добавить любое количество файлов или каталогов, и они будут скомпилированы вместе с оригинальными скриптами игрового модуля
};
/*
классы конфигурации модуля скрипта необязательны, определяйте только то, что вы хотите модифицировать
класс gameLibScriptModule
{
value="";
files[]={"mods/testmod/scripts/2_GameLib"};
};*/
class gameScriptModule
{
value="CreateGameMod"; // когда значение заполнено, имя функции ввода модуля скрипта по умолчанию перезаписывается им
files[]={"mods/testmod/scripts/3_Game"};
};
class worldScriptModule
{
value="";
files[]={"mods/testmod/scripts/4_World"};
};
class missionScriptModule
{
value="";
files[]={"mods/testmod/scripts/5_Mission"};
};
};
};
};
Внутренняя структура в значительной степени зависит от самих моддеров, например, в случае файлов скриптов не имеет значения, где они размещены, пока они находятся в соответствующем модуле скрипта и пути к ним заданы правильно. Презентация мода
Сконфигурированный с помощью mod.cpp в корневой папке мода, используемой для представления мода в главном меню игры:
name = "Mod name"; // имя
picture = "Mods/TestMod/modpic.tga"; // изображение в расширенном описании
logoSmall = "Mods/TestMod/modlogosmall.tga"; // значок рядом с названием мода, когда описание не развернуто
logo = "Mods/TestMod/modlogo.tga"; // логотип под игровым меню
logoOver = "Mods/TestMod/modlogohover.tga"; // при наведении курсора мыши на логотип
tooltip = "tooltip"; // всплывающая подсказка при наведении курсора мыши
overview = "Bestest mod"; // обзор
action = "https://dayz.com/"; // ссылка
author = "modguy"; // автор
version = "1.5"; // версия