DayZ模组结构

本页详细介绍了 DayZ 模组的结构及其配置和演示。

模组结构

模组使用 -mod= 启动参数加载

-mod=C:\MyMods\TestMod

从蒸汽工坊下载的典型模组文件夹将包含:

  • Addons 文件夹,保存模组的 .pbo 文件
  • Keys 文件夹,包含用于对 .pbo 文件进行签名的公共 .bikey(客户端-服务器签名验证需要)
  • meta.cpp 文件,保存创意工坊元数据(将在模组发布期间自动创建)
  • mod.cpp 可选的配置文件,保存mod演示的信息

dayz_modstructure[1]

PBO结构式

.pbo 唯一需要的部分是 config.cpp

原代码

class CfgPatches    // required
{
  class TestMod
  {
    requiredAddons[]=
    {
      "DZ_Data",  // addon depedency
    };
  };
};

class CfgMods      // required in pbo's which add/modify scripts or inputs
{
  class TestMod
  {
    type = "mod";                    // required
    inputs = "mods\testmod\inputs\my_new_inputs.xml";  // optional, when using custom inputs
    skeletonDefinitions = "mods\testmod\skeleton\skeletons.xml";  // optional, when using custom skeletons.anim.xml
    dependencies[]={"Game"};              // optional, when you need to set class dependency

    class defs
    {
      // optional: you can add custom imagesets like this
      class imageSets
      {
        files[]={"mods/testmod/gui/imagesets/mod1.imageset", "mods/testmod/gui/imagesets/mod2.imageset" };
      };

      // optional: you can add custom widget styles like this
      class widgetStyles
      {
        files[]={"mods/testmod/gui/looknfeel/mod1.styles", "mods/testmod/gui/looknfeel/mod2.styles"};
      };
      class engineScriptModule
      {
        value=""; // when value is empty, default entry function is used
        files[]={"mods/testmod/scripts/1_Core"}; // you can add any number of files or directories and they will be compiled together with original game module scripts
      };

      /*
      script module config classes are optional, define only what you want to mod
      class gameLibScriptModule
      {
        value="";
        files[]={"mods/testmod/scripts/2_GameLib"};
      };*/

      class gameScriptModule
      {
        value="CreateGameMod"; // when value is filled, default script module entry function name is overwritten by it
        files[]={"mods/testmod/scripts/3_Game"};
      };

      class worldScriptModule
      {
        value="";
        files[]={"mods/testmod/scripts/4_World"};
      };

      class missionScriptModule
      {
        value="";
        files[]={"mods/testmod/scripts/5_Mission"};
      };
    };
  };
};

汉化

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"}; // 您可以添加任意数量的文件或目录,它们将与原始游戏模块脚本一起编译
      };

      /*
      脚本模块配置类是可选的,只定义要修改的内容
      class 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在 mod 根文件夹中,用于游戏主菜单中的 mod 演示:

原代码

name = "Mod name";                 // name
picture = "Mods/TestMod/modpic.tga";      // picture in expanded description
logoSmall = "Mods/TestMod/modlogosmall.tga";  // icon next to mod name when description is not expanded
logo = "Mods/TestMod/modlogo.tga";        // logo below game menu
logoOver = "Mods/TestMod/modlogohover.tga";    // on mouse hover over logo
tooltip = "tooltip";              // tool tip on mouse hover
overview = "Bestest mod";             // overview
action = "https://dayz.com/";          // link
author = "modguy";                // author
version = "1.5";                // version

汉化

name = "Mod name";                 // 昵称
picture = "Mods/TestMod/modpic.tga";      // 展开描述中的图片
logoSmall = "Mods/TestMod/modlogosmall.tga";  // 未展开描述时,mod名称旁边的图标
logo = "Mods/TestMod/modlogo.tga";        // 游戏菜单下方的徽标
logoOver = "Mods/TestMod/modlogohover.tga";    // 鼠标悬停在徽标上
tooltip = "tooltip";              // 鼠标悬停时的工具提示
overview = "Bestest mod";             // 概述
action = "https://dayz.com/";          // 链接
author = "modguy";                // 著者
version = "1.5";                // 版本

原链接来自波希米亚,模组结构 – 波希米亚互动社区 (bistudio.com)

© 版权声明
THE END
喜欢就支持一下吧
点赞1 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容