rimworld吧 关注:236,410贴子:4,177,873

环世界·制作MOD教程

只看楼主收藏回复

欢迎各位想要自己动手制作环世界MOD的人,此贴由简到难,逐步教学武器、盔甲、建筑、AI行为、时间、地图等MOD制作。
时间2023/12/4——武器MOD教学系列一——近战武器
本人自制明朝腰刀MOD——增加佩戴小人进行切割工作的加成,毕竟刀的功能本来就有砍枝开路……
https://steamcommunity.com/sharedfiles/filedetails/?id=3103941986,欢迎您订阅鉴赏。
同时也欢迎您的发电,这将加快本帖和MOD的更新


IP属地:山西1楼2023-12-04 15:42回复
    http://39.104.209.42/zanshang.html


    IP属地:山西2楼2023-12-04 15:45
    收起回复
      mod制作教学一——一个mod应该包含的文件
      About文件——
      包含了About.xml和previwe.png两个文件。
      在About.xml中,将用xml编程语言(不必担心,您只需要拥有电脑的文本文档便可以进行编程和应用)对mod进行说明和上传打包说明;
      previwe.png——很明显,这是一个图片文件,用于mod预览和上传steam创意工坊时自带图片。
      假如您上传.jpg文件,环世界上传时将自动转换为.png文件。


      IP属地:山西3楼2023-12-04 15:51
      回复

        这就是用文本文档打开的About.xml文件(如果您看不到/无法更改.xml文件,请查询如何显示文件后缀)
        第一行声明了xml版本“1.0”和使用编码“utf-8”
        <packageld>命名只允许半角符号(即英文输入法)、必须有.、不允许出现连续的..、建议为制作者名称.mod名</packageld>
        这行代码规定了此mod上传到环世界中的打包名称,此名称必须是唯一的,如果此名称和别的mod打包名称出现冲突,将会造成不可控的结果。
        <author>制作者ID,即您的名字
        <supportedVersions>支持的版本(因为环世界各版本差异巨大,不建议添加过多版本)
        <li>1.4</li>支持1.4版本的环世界,如果你想添加,<li>支持版本号</li>即可
        <description>描述,建议用英文
        Ps:第一次见到xml编程语言就感觉和html一模一样,然后就看到俩人是一样的……


        IP属地:山西4楼2023-12-04 16:02
        收起回复

          About文件夹文件补充图。
          一口气更新这么多,下次继续~
          当然,您的回复和打赏都是对我莫大的鼓励


          IP属地:山西5楼2023-12-04 16:05
          回复


            IP属地:广东来自Android客户端6楼2023-12-04 16:43
            回复
              这……这样吗……什么时候出仿生体教程


              IP属地:福建来自Android客户端7楼2023-12-04 16:44
              回复
                第二个Deds文件夹为MOD主体,对额外增加的物品的定义、数值、逻辑都在这个文件夹中。
                以腰刀mod为例,因为仅是物品mod,所以Deds文件夹中只包含如下图所示文件——
                即只包含ThingDefs(直译:东西定义)文件夹,在此文件夹中,可包含多种物品的xml定义文件

                (请注意,此文件名与About.xml中的<name>项一致,避免中文!此处中文仅为演示!)
                打开后,您将看到如下图所示的诸多代码
                如果您有时间逐一翻译的话,就会发现,他们用各种<>标签定义了物品的数值和一些行为。
                我们关注的也只是其中一些而已(图太多,放下一贴了)
                再次感谢大家的回复!!!


                IP属地:山西8楼2023-12-04 17:21
                收起回复
                  支持,希望出一期关于namer方面的教程


                  IP属地:江苏9楼2023-12-04 18:35
                  回复
                    cy


                    IP属地:福建10楼2023-12-04 18:47
                    回复
                      别被如此众多的标签劝退,在制作一款近战武器mod时,所需关注的项目并不多,但我依旧建议去查看游戏自带的ThingDef文件,通常他们在游戏目录/Data/core/Defs中,在这里您可以看到各种示例文件。
                      对于近战武器项目,在Defs文件夹中包括了初始棍、短剑…的示例,具体位置如下图
                      系统推荐使用浏览器打开,xml文件,但问题在于有些标签会被浏览器隐藏(不知道是触发了关键词还是别的),所以依旧建议用专业编译器或者自带的记事本程序打开,如下便是狼牙棒的定义文件(请允许我这样称呼):

                      如下为翻译:
                      <?xml version=“1.0” encoding=“utf-8” ?>
                      <Defs>
                      <ThingDef ParentName=“BaseMeleeWeapon_Blunt_Quality”>
                      <defName>MeleeWeapon_Mace</defName>
                      <label>梅斯</label>
                      <description>一个精致的球杆,专为高效的挥杆和致命的冲击而设计。</description>
                      <possessionCount>1</possessionCount>
                      <graphicData>
                      物品/<texPath>物品/装备/武器近战/狼牙棒</texPath>
                      <graphicClass>Graphic_Single</graphicClass>
                      </graphicData>
                      <uiIconScale>1,2</uiIconScale>
                      <techLevel>中世纪的</techLevel>
                      <costStuffCount>50</costStuffCount>
                      <statBases>
                      <WorkToMake>6000</WorkToMake>元
                      <Mass>1,25</Mass>
                      </statBases>
                      <equippedAngleOffset>-65</equippedAngleOffset>
                      <recipeMaker>
                      <researchPrerequisite>锻造</researchPrerequisite>
                      <skillRequirements>
                      <Crafting>3</Crafting>
                      </skillRequirements>
                      <displayPriority>400</displayPriority>元
                      </recipeMaker>
                      <stuffCategories>
                      <li>金属</li>
                      <li>
                      呃……没翻译完,但以及可以一目了然地看到狼牙棒的一些属性
                      不过如前文所说,我们并不关注全部——请见下文


                      IP属地:山西11楼2023-12-04 19:37
                      回复
                        我们首先需要关注的是<description>标签(它通常在<label>标签下面),请允许我用通过英语四级的身份说明,此标签直译为:描述文本。
                        顾名思义,在这个标签中的文字是用来描述这个物品的(您可以随便写,不必像我一样依靠翻译软件)
                        因此我们可以通过这一标签大致了解我们打开的是什么示例物品的代码,而在我们制作物品时也可以友好地给予他人描述。


                        IP属地:山西12楼2023-12-04 19:48
                        回复
                          让我们重回制作mod之路。
                          当您想要制作棍棒类武器时,便可以复制+粘贴狼牙棒的代码,然后修改,而像我一样想要制作近程刀具类武器时,则可以参考短剑的代码,它位于前文所述位置,具体文件名为:
                          让我们开始讲述如何修改具体项目。
                          除了简单易懂的<description>标签外,您会发现狼牙棒和短剑代码第一处不同便在<ThingDef ParentName="">里引号中的内容,但他们拥有一致的前半部分,狼牙棒多出了一个单词“Quality”——质量,这表明狼牙棒是靠质量攻击的——很贴合现实。
                          前面一致的部分为“BaseMeleeWeapon_Blunt”(base:基础;melee:近战;weapon:武器;blunt:钝)
                          狼牙棒和短剑都是基础近战钝器(短剑没有锋利属性,所以归为钝器)
                          别的武器示例也会给出其他<ParentName>的值,您可以根据您想制作的武器贴近哪一类,找到示例值并选择使用。
                          接下来迎来一个重要标签<defName>,这是环世界程序调用时的物品身份,必须拥有唯一性,强烈建议用项目或mod名称为前缀即:“ModName_”,下划线后内容可自定义为物品具体名称;
                          <lebel>标签中的内容为物品在游戏中显示的名称(比如在制作台、交易界面),如果为英文名称,建议使用小写,方便注入到游戏自动生成的语句中,游戏程序只会在单词出现在标题和句子开头时自动大写,而不会自动小写,当然,.xml编程语言像html一样支持在标签中使用中文,所以在这个标签中您可以使用中文,使得物品自动出现中文(虽然对外国人不友好,但编程对咱已经很不友好,你可以发现只要会英文,将节省大量时间,所以,管他们呢,用中文吧,后面出bug再说)
                          这就是除武器数值外的几个标签,接下来开始武器数值标签介绍。
                          Ps:假如您搜索.xml语言将会得到如下结果:XML(Extensible Markup Language)是一种类似于 HTML,但是没有使用预定义标记的语言。因此,可以根据自己的设计需求定义专属的标记。这是一种强大将数据存储在一个可以存储、搜索和共享的格式中的方法。
                          所以,上述涉及到的标签均为游戏制作者设定的定义标签,所以您可以使用css应用于上述文档(使用xml-stylesheet去处理),您将得到.xml文件的全部数据,当然,您也可以使用一些工具(如XSLT)将xml转换为html语言。
                          这一特性也使得xml语言十分有利,很多游戏的mod都是用它来制作,因为人们可以约定游戏数值标签,也可以很方便地处理数据。


                          IP属地:山西13楼2023-12-04 20:17
                          收起回复
                            cy


                            IP属地:日本来自iPhone客户端14楼2023-12-05 11:06
                            回复
                              膜拜 膜拜


                              IP属地:四川15楼2023-12-05 14:44
                              回复