Rimworld Mod教程 武器Weapon篇 近战章 第一讲:长剑与等离子剑,tools与extraMeleeDamages

本讲以LongSword【长剑】讲解一把最简单的近战武器如何制作。而复杂的部分要留在本章的后面几讲来剖析。
考虑到很多人喜欢做武器,甚至可能跳过前面的片段直接看到本章节,让我们重新复习一下如何从0开始制作mod。
首先启动合适的编辑器,找到文件内查找功能,

路径设置为这游戏的简中翻译包(Steam\steamapps\common\RimWorld\Data\Core\Languages\ChineseSimplified (简体中文).tar,注意需要解压)
查找内容为长剑
能看到搜索结果
如果你不确定哪个是长剑物品,哪个是长剑相关的其他东西(比如合成配方,研究项目之类的),就去看搜索结果所在的文件位置,肯定是要在ThingDef里面的。
经过上述操作,我们就能得到长剑的defName:MeleeWeapon_LongSword
再次搜索该defName,我们就能找到长剑def所在的xml文件了

接下来我们看到Core/ThingDefs_Misc/Weapons/MeleeMedieval.xml,line120开始就是长剑了

但在一切开始之前,我们从ParentName="BaseMeleeWeapon_Sharp_Quality"开始,不断追溯父定义。
首先BaseMeleeWeapon_Sharp_Quality这一层让武器有了品质的区分
找到一个合适的父定义能省不少事,我稍微列一下
BaseMeleeWeapon_Sharp_Quality:有品质和艺术区分的锐器近战武器
BaseMeleeWeapon_Blunt_Quality:有品质和艺术区分的钝器近战武器
上面这两个父级是:
BaseMeleeWeapon_Sharp:没有品质和艺术区分的锐器近战武器
BaseMeleeWeapon_Blunt:没有品质和艺术区分的钝器近战武器
上面两个父级是:
BaseMeleeWeapon:没有锐器和钝器来区分,需要手动填写weaponClasses,同时也少了合成材料的筛选,一般来说不会用到这一个,用上面四种就够了。这一级提供了近战武器相关的基础东西,但我就不细讲了,你们直接拿来用就可以。

再往父级找,就是BaseWeapon
它有一个非常重要的comp就是CompEquippable。如果处于什么原因你不想直接使用原版的这些父定义,请一定记得要把thingClass改为ThingWithComps及其子类,然后加上这一个comp。
就是这个Comp使得你的武器可以被小人拿在手上。
哦对了,这个父定义还提到了武器扔在地上会有最高35°的随机旋转角度

好了,现在开始正式地分析长剑

<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>
    <possessionCount>1</possessionCount>
    <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>
      <displayPriority>420</displayPriority>
    </recipeMaker>
</ThingDef>

我们只看重要的几个东西
>weaponTags:一个字符串的list,如果敌人拥有相同的weaponTag,那么敌人在生成时就有可能选择该武器。
>equippedAngleOffset:武器的旋转角度,顺时针为正方向。该旋转只在小人手持时生效,在地上是不生效的。
>equippedDistanceOffset:这条长剑没有,我就顺带补充一下,表示的是手持时武器贴图的偏移量,填的内容是格数。偏移方向由小人瞄准方向决定。
>tools:近战的重头戏,它是一个list,内容是若干个Tool,接下来我们详细讲一下Tool

<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

>>label:填一个文本,可以翻译。
>>capacities:填一些“ToolCapacityDef”,一般情况下只填一个,多个的话就是每次攻击时选一个。后文会列出常用的ToolCapacityDef。
>>power:单次攻击基础伤害。这个伤害还会受到很多因素影响,从而造成最终伤害。比如武器品质,武器材质什么的都会影响。
>>cooldownTime:近战后摇,也会受到很多因素影响。单位是秒。
再补充一些额外的东西。
>>armorPenetration:伤害穿透。在默认情况下,其值为伤害的0.015倍。手动指定时,就是指定的值,并且会乘以“MeleeWeapon_DamageMultiplier”【近战伤害乘数】
>>chanceFactor:权重乘数,每个tool的基础权重由其单次伤害决定,然后会再乘以这个值,默认值是1。
>>soundMeleeHit:填一个SoundDef,表示命中之后播放该音效。
>>soundMeleeMiss:填一个SoundDef,表示没有命中时播放的音效。
>>extraMeleeDamages:ExtraDamage的List,表示额外伤害,这里再引入一个新的例子。MeleeWeapon_PlasmaSword等离子剑的Tools内:

     <li>
        <label>point</label>
        <capacities>
          <li>Stab</li>
        </capacities>
        <power>21</power>
        <cooldownTime>2.6</cooldownTime>
        <extraMeleeDamages>
          <li>
            <def>Flame</def>
            <amount>10</amount>
            <chance>0.5</chance>
          </li>
        </extraMeleeDamages>
      </li>
      <li>
        <label>edge</label>
        <capacities>
          <li>Cut</li>
        </capacities>
        <power>21</power>
        <cooldownTime>2.6</cooldownTime>
        <extraMeleeDamages>
          <li>
            <def>Flame</def>
            <amount>10</amount>
            <chance>0.5</chance>
          </li>
        </extraMeleeDamages>
      </li>

看到这里的extraMeleeDamages里的元素,每个代表一种额外伤害的属性
>>>def:填一个DamageDef,Flame是那个带点燃的烧伤,详细可以看我另一个文章【RimWorld 代码机制:伤害机制与伤害类型】
>>>amount:伤害量,跟上面的amount类似
>>>armorPenetration:穿甲,跟上面的armorPenetration类似,不填的话也是自动生成
>>>chance:默认值是1,如果填了的话就是填0~1,表示该额外伤害的触发概率

综上所述,等离子剑的效果就是,当使用剑头或剑刃进行攻击时,有50%概率触发额外的10点火焰伤害,该伤害会引燃目标。
如果有extraMeleeDamages有多个元素,就会分别进行判定
需要注意的是,必须主攻击命中了,额外伤害才会开始判定。

这里再给一些capacities里能填的东西:
Stab【刺】,Cut【割】,Blunt【钝击】,Demolish【拆除】,KickMaterialInEyes【扬沙】,Poke【捅】,Scratch【抓】,ScratchToxic【毒击】,Bite【咬】,ToxicBite【蛰】
比如edge+Cut在上面长剑的页面写的是剑刃(割)
这些capacities具体的细节我们在后续有机会再分析。

我得提一下,所有加群的人必须查看群公告,然后按照指定的规则来提问。
提问的时候必须附上你的代码和游戏给你的报错内容。
不要忽视红字在解决问题时的重要性,它能提供最直观的错误信息。
也不要把你的代码藏着掖着,在看不到你的代码的情况下解答者只能用猜的。

我的教学工作和答疑工作都是无偿的,就请给到我基本的尊重,我不是你解答问题的工具。

内容概要:本文档《ccnp_300-430.pdf》涵盖了Cisco无线网络配置相关的多个选择题及其答案解析。文档详细探讨了FlexConnect AP在不同模式下的行为、AP模式和子模式的选择、客户端特征配置、图像传输优化、Cisco OEAP配置、QoS设置、多播配置、安全措施(如入侵保护、恶意AP检测)、位置服务配置以及BYOD策略实施等内容。文档不仅提供了具体的配置命令和选项,还解释了每种配置背后的逻辑和技术原理。 适合人群:具备一定网络基础知识,特别是对Cisco无线网络设备有一定了解的技术人员,包括但不限于网络管理员、无线网络工程师和CCNP认证考生。 使用场景及目标: ① 为无线网络工程师提供实际操作指导,确保在不同场景下正确配置Cisco无线设备; ② 帮助CCNP认证考生复习并掌握相关知识点; ③ 协助IT管理员解决日常无线网络管理中的常见问题,如连接不稳定、性能不佳或安全性问题; ④ 支持企业IT部门制定和实施BYOD策略,确保员工个人设备接入公司网络的安全性和效率。 阅读建议:由于文档内容较为专业且技术性强,建议读者首先熟悉Cisco无线网络的基本概念和术语。在阅读过程中,应结合具体的工作环境和需求进行理解,并尝试将所学知识应用到实际工作中。对于不熟悉的术语或配置命令,可以通过查阅官方文档或在线资源进一步学习。此外,通过模拟环境练习配置也是巩固知识的有效方法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值