rimworld吧 关注:289,348贴子:5,313,345

回复:Rimworld Mod xml教程 这可能是你见过的最细的MOD教程了

只看楼主收藏回复

插眼


IP属地:浙江来自iPhone客户端78楼2025-05-14 17:14
回复


    IP属地:河南来自Android客户端79楼2025-05-16 08:38
    回复
      2026-04-24 09:02:38
      广告
      不感兴趣
      开通SVIP免广告
      基础篇 第八讲:以原版def为参照制作一个新的ThingDef
      这里你们需要用到编辑器一步一步跟我操作:
      在实际制作时,我们其实难以从零开始构思一个def所应有的所有数据,而有时原版提供的父对象也难以满足我们的全部需求。这时,我们会尝试在原版中找到与我们想制作的内容相近的成品,并将其复制加以修改以变成我们的作品。
      我们将以原版中长剑为模板,制作一把伤害更高,攻速更慢的近战武器。
      ①首先,我们在游戏中找到该参考对象,值得注意的是,能用不同制成的武器在名称中会出现材料名为前缀,应当自行排除这些前缀【如钢铁长剑,实际名称为“长剑”】。
      接下来,我们在编辑器中打开查找功能,并选择“在文件中查找”(不同编辑器的表述可能不同),路径选择为简体中文翻译包(若没有,则前往RimWorld\Data\Core\Languages找到对应压缩包并解压),查找内容为“长剑”。
      在此之后,应当会跳出所有提及长剑的文本,我们重点在thingdef的文件夹的查找结果中找到长剑,可能有以下结果:
      <MeleeWeapon_LongSword.label>长剑</MeleeWeapon_LongSword.label>
      根据第七章的内容,原版中长剑的defname即为MeleeWeapon_LongSword。
      下一步,在RimWorld\Data\Core\Defs中搜索<defName>MeleeWeapon_LongSword</defName>,查询结果即为长剑的thingdef。
      搜索使用的“文件夹内搜索”

      <ThingDef ParentName="BaseMeleeWeapon_Sharp_Quality">
      <defName>MeleeWeapon_LongSword</defName>
      <label>longsword</label>
      <description>The ancient weapon of kings, the longsword can be used for slashing or stabbing.</description>
      <graphicData>
      <texPath>Things/Item/Equipment/WeaponMelee/LongSword</texPath>
      <graphicClass>Graphic_Single</graphicClass>
      </graphicData>
      <techLevel>Medieval</techLevel>
      <weaponTags>
      <li>MedievalMeleeAdvanced</li>
      <li>LongSword</li>
      </weaponTags>
      <costStuffCount>100</costStuffCount>
      <thingSetMakerTags><li>RewardStandardQualitySuper</li></thingSetMakerTags>
      <statBases>
      <WorkToMake>18000</WorkToMake>
      <Mass>2</Mass>
      </statBases>
      <relicChance>2</relicChance>
      <equippedAngleOffset>-65</equippedAngleOffset>
      <stuffCategories>
      <li>Metallic</li>
      <li>Woody</li>
      </stuffCategories>
      <tools>
      <li>
      <label>handle</label>
      <capacities>
      <li>Blunt</li>
      </capacities>
      <power>9</power>
      <cooldownTime>2</cooldownTime>
      </li>
      <li>
      <label>point</label>
      <capacities>
      <li>Stab</li>
      </capacities>
      <power>23</power>
      <cooldownTime>2.6</cooldownTime>
      </li>
      <li>
      <label>edge</label>
      <capacities>
      <li>Cut</li>
      </capacities>
      <power>23</power>
      <cooldownTime>2.6</cooldownTime>
      </li>
      </tools>
      <recipeMaker>
      <researchPrerequisite>LongBlades</researchPrerequisite>
      <skillRequirements>
      <Crafting>5</Crafting>
      </skillRequirements>
      </recipeMaker>
      </ThingDef>
      ②在我们自己的Defs里新建一个xml,并将识别码<?xml version="1.0" encoding="utf-8" ?>与我们搜索到的长剑的整个ThingDef扔进去;根据第六章的内容,为了不覆盖原版武器,defname必须要被修改,label和description也最好进行修改以进行区分。为了演示方便,这里不考虑制作翻译包,可以直接写入中文(实际操作中并不建议这样做)
      ③修改数据
      初学者们此时可以通过翻译软件翻译每一个数据名,并加以更改和测试来猜测。我们会在后面的章节逐一分析。对比游戏内数据和Defs内数据,并判断数据的对应关系也是一项很重要的技能。本章以“伤害更高,攻速更慢的近战武器。”为课堂例子,所以先给出一些数据名对应的数据内容:
      <tools>
      <li>
      <label>handle</label>
      <capacities>
      <li>Blunt</li>
      </capacities>
      <power>9</power>
      <cooldownTime>2</cooldownTime>
      </li>
      <li>
      <label>point</label>
      <capacities>
      <li>Stab</li>
      </capacities>
      <power>23</power>
      <cooldownTime>2.6</cooldownTime>
      </li>
      <li>
      <label>edge</label>
      <capacities>
      <li>Cut</li>
      </capacities>
      <power>23</power>
      <cooldownTime>2.6</cooldownTime>
      </li>
      </tools>
      看到这里,根据第四章内容tools是一个List。里面的每一个元素都是一种攻击方式,图中从上到下分别是“剑柄”、“剑头”、“剑刃”。每一个元素内的power对应的该攻击方式的伤害,为整数;cooldownTime为冷却时间,即后摇,单位是秒,可以写小数。
      我们可以把整个柄删去,实际上柄是拿来降低DPS,并提供钝器伤害的方式,但我们的巨剑不需要;然后将剑头和剑刃的伤害提高,冷却调高

      然后进游戏测试一下吧!
      千万要注意,修改的是我们复制出来的ThingDef,而不是原版Core的Defs里的数据,否则我们就是直接修改原版数据了!


      IP属地:福建80楼2025-05-17 23:20
      回复


        IP属地:英国来自iPhone客户端81楼2025-05-19 18:26
        回复
          基础篇 第九讲:Defs种类
          该讲是22年3月写的 现在几乎用不了了 就不发了 需要的去三楼找吧


          IP属地:福建82楼2025-05-23 13:49
          回复
            感谢大佬教程


            IP属地:福建83楼2025-05-23 14:20
            回复
              如果想只做些高清贴图替换别的mod,更改一下名称呢


              IP属地:四川来自iPhone客户端84楼2025-05-25 13:07
              回复
                顶顶顶


                IP属地:河南来自Android客户端85楼2025-05-28 15:56
                回复
                  2026-04-24 08:56:38
                  广告
                  不感兴趣
                  开通SVIP免广告
                  唉,我要是写群星mod的时候有这么全的东西就好了


                  IP属地:美国86楼2025-05-30 17:02
                  回复


                    IP属地:福建87楼2025-06-02 11:57
                    回复
                      到时候出完了有没有考虑做个总结文件放网盘里面?


                      IP属地:湖南来自Android客户端88楼2025-06-04 22:16
                      收起回复
                        学习大满足 +10


                        IP属地:河南89楼2025-06-05 02:24
                        回复
                          求问一下有没有属性表?就装备下面额外添加属性的,比如魅力,近战冷却,或者全局工作速度的英文词条,我一直没找到,也没有类似表格,都是找其他模组扒下来的,太累了也找不到我想要的,比如交易价格改善这个词条。


                          IP属地:广东来自Android客户端90楼2025-06-08 15:40
                          收起回复
                            太有用了


                            IP属地:江苏来自Android客户端92楼2025-06-13 09:38
                            回复
                              2026-04-24 08:50:38
                              广告
                              不感兴趣
                              开通SVIP免广告
                              问一下lz需要打印的数据是用什么方法;我在dll里测试了好久log.message但是在debug log里什么都没有,不知道是不是我理解错了不过我确实没找到其他能看见数据反馈的地方了


                              IP属地:四川来自Android客户端93楼2025-06-21 04:48
                              收起回复