Rimworld Mod教程 第八章:以原版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里的数据,否则我们就是直接修改原版数据了!

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值