3DMGAME 3DM首页 新闻中心 前瞻 | 评测 游戏库 热门 | 最新 攻略中心 攻略 | 秘籍 下载中心 游戏 | 汉化 购买正版 论坛

注册 登录

QQ登录

只需一步,快速开始

查看: 3220|回复: 3
打印 上一主题 下一主题

[资料] mod教程1

[复制链接]

12

主题

180

帖子

445

积分

高级玩家

Rank: 4

贡献度
41
金元
2811
积分
445
精华
0
注册时间
2015-5-2
跳转到指定楼层
主题
发表于 2020-10-8 17:55 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
<List>
以下是本人学习MOD的一些心得,希望能帮到一些喜欢自己制作MOD的朋友
本人制作的MOD网址为:https://bbs.3dmgame.com/thread-6084944-1-1.html
MOD中的说明应该都挺详细的.有需要的自行打开文件查看.

MOD制作简介
1.在RimWorld目录下的Mods目录里建立个新文件夹,起个好名字
2.目录内各建立需要的目录,一般如下
        About                        [必要]MOD的设置和说明
        Assemblies                程序集
        Defs                        定义
        Languages                语言
        Patches                        补丁
        Sounds                        声音
        Textures                图形
3.建个目录,名为About,里面建立个文件About.xml[必要]
4.编辑About.xml文件内容,可用文本文件打开编辑,建议Notepad++
<?xml version="1.0" encoding="utf-8"?>

<ModMetaData>
        <name>我的MOD名字</name>
        <author>作者名</author>
       
        <!-- 支持的版本 -->
        <supportedVersions>
                <li>1.0</li>
                <li>1.1</li>
                <li>1.2</li>
        </supportedVersions>
       
        <!-- 封包ID -->
        <packageId>作者名.MOD名</packageId>
       
        <!-- 发布MOD的网址 可选-->
        <url>https://bbs.3dmgame.com/thread-6084944-1-1.html</url>
       
        <description>这里是MOD的说明</description>
        <!-- 下面li里面的就是封包ID,你的MOD只能在拥有该封包ID的MOD后面加载,也就是在MOD列表中需要在这些MOD之下. -->
        <loadAfter>
                <li>Ludeon.RimWorld</li>
                <li>Ludeon.RimWorld.Royalty</li>
                <li>brrainz.harmony</li>
                <li>UnlimitedHugs.HugsLib</li>
                <li>jecrell.jecstools</li>
                <li>erdelf.HumanoidAlienRaces</li>
        </loadAfter>  

</ModMetaData>

5.在About目录里面放置一张自己的果照,重命名为preview.png,这会让你知名度提升,能显著的提升MOD下载量

现在,MOD的基本工作完成,可以在游戏里的MOD列表中体现出来,虽说没啥卵用,除了看看自己的果照.
接下来,我们先来做些内容.先来个最简单的...
</List>
<List>
最简单的内容是什么,当然是汉化了......
...
好吧,我写了一段,发现汉化对于你们还是太复杂了,还是做些别的吧.
我们来做新的特性.
在MOD目录里面建立Defs目录,里面建立  随便啥名字.xml
内容如下:
<?xml version="1.0" encoding="utf-8" ?>
<Defs>

  <TraitDef><!-- 定义特性 -->        <!--[射击专精]-->
    <defName>作者名_Trait_序号01</defName>                <!-- 在TraitDef里面defName必须是唯一的 -->
    <commonality>0.1</commonality>        <!--出现概率-->
    <degreeDatas>
      <li>
        <label>&lt;color=#FF6600&gt;[射击专精]&lt;/color&gt;</label>        <!-- 显示的名字 -->
        <description>射击专精</description>                                                                <!-- 描述 -->
        <statOffsets>                <!-- 状态偏移 -->
                  <!--射击-->
                  <MoveSpeed>+1</MoveSpeed>                                                                <!--移动速度-->
          <AimingDelayFactor>-1</AimingDelayFactor>                                <!--瞄准延迟系数-->
          <ShootingAccuracyPawn>+20</ShootingAccuracyPawn>                <!--射击精确度-->
                  <HuntingStealth>1</HuntingStealth>                                        <!--狩猎匿踪系数-->
        </statOffsets>
        <skillGains>                <!-- 技能增加 -->
          <li><key>Shooting</key><value>5</value></li>                        <!--射击-->
        </skillGains>
      </li>
    </degreeDatas>
  </TraitDef>

</Defs>

这里我们可以看得出来,每个特性都是处于单独的一个<TraitDef></TraitDef>内的
TraitDef节点里面基本可以照抄.你可以复制整个TraitDef节点,然后修改下defName,
defName需要唯一性,包括不能与其他的MOD内定义的一致,否则会导致首先加载的MOD同名定义Def失效.(当然,我们会利用到这一特点对其他Mod进行补丁,以后再介绍)
label的内容是特性的名称,里面的 &lt;color=#FF6600&gt;[射击专精]&lt;/color&gt; 其实是转义的.原内容是
<color=#FF6600>[射击专精]</color>  目的是要将那几个字换个颜色.为什么会写成这样,请自行百度.
description就是描述
statOffsets节点内是我们主要的修改内容.把我们需要的状态偏移写进去就行(状态有点多,下个节点我会列出来,V1.2)
skillGains 增加的技能,同上

嗯,下面没有了.
</List>
<List>
原先想完整的列出来,但是发现不能这样,会导致你们越来越懒,所以我也懒得列了,你们自己扒出来吧,下面是方法
解压RimWorld\Data\Core\Languages\下面的简体中文包  ChineseSimplified (简体中文)
\Data\Core\Languages\ChineseSimplified (简体中文)\DefInjected\StatDef\
下列的文件是状态的翻译,
Stats_Pawns_Combat.xml
Stats_Pawns_General.xml
Stats_Pawns_Social.xml
Stats_Pawns_WorkGeneral.xml
Stats_Pawns_WorkMedical.xml
Stats_Pawns_WorkRecipes.xml

栗子:Stats_Pawns_Combat.xml的内容
  <!-- EN: aiming time -->
  <AimingDelayFactor.label>瞄准时间</AimingDelayFactor.label>
  <!-- EN: How long it takes to shoot after choosing a target. -->
  <AimingDelayFactor.description>瞄准后开火所花费的时间。</AimingDelayFactor.description>

  <!-- EN: incoming damage multiplier -->
  <IncomingDamageFactor.label>承伤系数</IncomingDamageFactor.label>
  <!-- EN: A multiplier on all incoming damage. -->
  <IncomingDamageFactor.description>所有受到伤害的乘数。</IncomingDamageFactor.description>

label前面的IncomingDamageFactor就是状态名,如果需要就直接套到上面的文件中
        <statOffsets>                <!-- 状态偏移 -->
                  <!--射击-->
                  <MoveSpeed>+1</MoveSpeed>                                                                <!--移动速度-->
          <AimingDelayFactor>-1</AimingDelayFactor>                                <!--瞄准延迟系数-->
          <ShootingAccuracyPawn>+20</ShootingAccuracyPawn>                <!--射击精确度-->
                  <HuntingStealth>1</HuntingStealth>                                        <!--狩猎匿踪系数-->
                  <IncomingDamageFactor>1</IncomingDamageFactor>                <!-- 承伤系数 -->
        </statOffsets>


技能在这里
\Data\Core\Languages\ChineseSimplified (简体中文)\DefInjected\SkillDef\Skills.xml

栗子:Skills.xml的内容
  <!-- EN: animals -->
  <Animals.label>驯兽</Animals.label>
  <!-- EN: Taming, training, and controlling animals. -->
  <Animals.description>驯服、训练、管理、控制动物。</Animals.description>

label前面的Animals就是技能名,如果需要就直接套到上面的文件中

        <skillGains>                <!-- 技能增加 -->
          <li><key>Shooting</key><value>5</value></li>                        <!--射击-->
          <li><key>Animals</key><value>5</value></li>                        <!--驯兽-->
        </skillGains>

请不要超标太多,否则敌人会让你知道鲜血为啥是蓝的.

</List>

评分

1

查看全部评分

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|3DMGAME ( 京ICP备14006952号-1  沪公网安备 31011202006753号

GMT+8, 2026-5-12 17:10 , Processed in 0.033869 second(s), 16 queries , Memcached On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表