rimworld吧 关注:244,894贴子:4,390,772
  • 7回复贴,共1

(Mod制作)xml型Mod制作答疑

取消只看楼主收藏回复

虽然我一直都有想开答疑帖的想法,但很多时候感觉实力不允许我做这些事情,所以很多时候只是回答一些别人提出的我力所能及的问题。但答疑帖总归还是要做的,还是需要有一个整合所有问题,让后来者能更轻松地找到相关内容的帖子,不用在茫茫帖子里用搜索去找,所以就有了这篇帖子。
面向:涉及纯xml类mod的(疑惑/问题/bug/与期望不符等)【不包括红字,因为xml类红字主要是有关def的问题,我也不知道你的def具体是写的什么。还有一种情况是直接用翻译软件就能知道意思的红字】
我的话还是技术有限(不会C#,学的不是计算机专业,况且刚刚回坑,不是那么熟悉了),所以还希望路过的大佬也可能帮忙帮助一下刚刚萌芽的moder
本帖不出意外长期有效(节假日常在,工作日不好说)。
(同时请尽可能在帖子里留言,为了以后有相同问题的朋友可以快速找到对应的问题)


IP属地:广东1楼2022-01-05 16:14回复
    (先自己写几个常见的答疑吧)
    问题1:我想自己做mod该怎么搞?
    回答1:(这里只做搬运,我觉得用这些教程入门已经足够了)
    基础:
    这里强烈推荐工具:XML Notepad 2007 相比于其他编辑软件相当直观,简洁
    凌洛的教程:https://tieba.baidu.com/p/5154573420?see_lz=1&red_tag=2460731668(我的入坑契机)
    漆原琉华吧主的教程:https://tieba.baidu.com/p/6299123459(我做出了第一个mod)
    狐狸的教程:https://tieba.baidu.com/p/6881368885
    (外网好像也有教程,不过我英文不是很好,也没在外网冲浪过,所以就没写进来了)
    (据我所知之后某位大佬也会做mod教程)
    看完前面的教程应该会对制作mod有一个基本的认识和框架。
    进阶:
    VE制作组的VE框架:https://github.com/AndroidQuazar/VanillaExpandedFramework/wiki(需要阅读英文或者搭配翻译使用,不过翻译会有一些问题,请自行比对。)
    如:pawn直译:爪子(×),游戏内实际意思:生物(√)
    Vanilla直译:香草(×),游戏内实际意思:原版(√)(其他的我想不起来了)
    Mote(特效):https://tieba.baidu.com/p/7405207888?pn=3(64楼——90楼)
    Mote特效是我看其他mod涉及的比较少的地方,因为对实际游戏不产生任何效果,但却能大幅度增加逼格(需要注意的是,mote类xml在1.2版本到1.3版本xml结构发生一些改变,我还没开始玩1.3,所以请自行订阅下载对应mod进行比对)
    但教程终归还是起到示范作用,教程作者精力也有限,无法涵盖到方方面面,教程贴更多的是引导有兴趣的玩家入门。正所谓“师父领进门,修行靠个人”,这时候想要更进一步的话,最直接的方法就是去抄原版的Core/DLC1的文件(指原版/DLC1的内容)。(具体怎么抄Core以后如果有提问再详细说明了)
    游戏里的内容虽然基础,但也涉及到了方方面面,有些觉得自己不满意的地方完全可以自己改,改着改着就会发现自己能做的,想做的远比一开始要多得多。


    IP属地:广东2楼2022-01-05 16:15
    收起回复
      问题2:我做着做着发现一个很严重的问题:我没有贴图,我又不会画画/PS,怎么办?
      (其实我觉得一开始做mod大概率倒在这一步)
      前提(以下回答均以此为前提):由于以下我提供的思路均涉及【未经授权使用/非原创】,所以请记住——未经授权/非原创的贴图/音效请勿在公开渠道或大范围内传播,因为这并不是你的原创作品,同时也是为了避免不必要的争端。
      (描摹/描改难以定义是否原创,我自己也描也改,所以无法给出准确的回答)
      回答2-1:(我不会画画,也不会基础PS的操作)
      可以去各种(免费的游戏素材网站)上自行获取(但其中绝大部分并没有授权,请勿传播)
      这里不提供相关素材网站,请根据关键词自行寻找(我才发现我常用的素材网居然这么容易就找得到)
      【请注意,免费的素材在互联网上都能找得到,请不要去某宝交【智商税】】
      回答2-2:(我不会画画,但我会一点PS)
      可以根据游戏/影视等画面进行自行抠图描边。或者更进一步做环世界化改动(指的是只保留相关主色调并且结构以大色块方式呈现—也即描改)
      (纯抠图在(未经授权使用/非原创)之列,请勿传播)


      IP属地:广东3楼2022-01-05 16:16
      收起回复
        (前两个大方向应该写完了,下面是一些小方面了,主要是我曾经见过,回答过的问题)
        (常见)问题3:我不想让我做的物品出现在除我以外的任何地方/我想修改某个mod,让里面的物体只能我自己用
        补充知识:Tag是可以随便写的,你写成AAAA也不会怎么样
        回答3:
        (简易版):删除***tag里的所有内容(作用:让别人手上不会拿),同时把tradeability里的内容改成None(作用:变为不可交易,这样不会出现在商船/商队内)
        (同时需要注意的是,如果你是想要修改别人的mod,请做好备份,因为每一次更新都会把你改过的内容覆盖掉(或者自己写补丁?我没写过,不做过多说明))
        (详细原理版):因为***tag主要是与Faction(派系)里的内容进行联动,这里以海盗(Pirate)为例。在PawnKinds_Pirate(来袭击的小人种类)这个文件里,在每个ThingDef里都有WeaponTags,而tag里面的内容,与武器里的WeaponTags是一模一样的。因此可以理解为:只要WeaponTags对的上,且武器的价格在合理区间(武器的MarketValue的数值在weaponMoney区间之内)刷出来的小人将会携带特定的武器。所以如果自己想做一个派系,想让里面的小人拿上专属武器,就可以在它们的pawnkind里的WeaponTags,里写上你自己的tag,在weaponMoney里写上对应的价格。


        IP属地:广东4楼2022-01-05 16:17
        收起回复
          问题4被吞了,应该是敏感词


          IP属地:广东6楼2022-01-05 16:20
          回复

            1.这是我的代码,从结果来看应该是主要针对头部的攻击
            2.我穿上了bodyPartGroups里写了Neck跟FullHead的衣服
            3.测试环境:100倍血量人体和50000MaxHitPoints的衣服

            4.这是对头部的179次40伤害的利器攻击(被对半分摊到了头跟头下面的颅骨)142次之后衣物损坏,失去了对头部的保护能力,但依旧没对大脑造成伤害。大脑无需特意保护结论成立。

            5.这是开发者里的随机10点攻击直到死去,虽然伤害分配到头部的次数比较少,但依旧只伤害到了头跟头骨,没有伤害到大脑。(但有个问题是衣服虽然被破坏了,但造成所有伤害的时候还是计算了衣服的保护。后来我测试了无甲,所以这个问题也没什么影响)大脑无需特意保护结论成立。

            6.这是临时起意的无甲状态下的测试,随机10点攻击直到死去,可以看到依旧没对大脑造成任何伤害。大脑无需特意保护结论成立。


            IP属地:广东24楼2022-03-14 20:20
            收起回复

              这个是我随便找的我自己的代码(DnSpy),也够短(够我截图完整)

              这个是在C#里的代码,跟DnSpy稍微不同(主要是类全写在一起(而且可以收缩为一行),比较方便,DnSpy则是会把一个个类拆开,有时候不是很好观察,而且还会自动按字母顺序排序。我用了快半年的DnSpy,虽然不是不能用,但用过VS之后就真香了)
              所以我还是比较推进用C#进行入门好了,DnSpy用来看跟抄原版代码
              引用:这个一开始挺重要的,有时候你的mod报错,会说缺少引用(这个时候直接把DnSpy里你要复制粘贴的代码的引用复制粘贴进来就行了)(不过之后做的多了,该引用了都引用过了,就基本上都全了)
              命名空间:这个相当于前缀,与类的名共同作用
              写进xml的格式为:“命名空间.类名”(引号内全是要写的)(这个问题可以看32楼里层主的回复)
              (通过一个大括号把所有类包在一起)
              类:代码主要就写在这里了(需要注意的还是上面有关命名空间的事情)(如果你的命名空间是RimWorld,则不用写“命名空间.”【但我不建议这么做,假如重名了呢】)


              IP属地:广东41楼2022-04-14 19:45
              收起回复

                还有一个是该怎么搜索的,我刚开始那会也因为不知道怎么搜索卡了一会而二
                1.红色框:这个是要找的类型,我们要找一整个类,就选择类,要找其他的,就选择其他的类型(不过找其他的我也没用过)
                2.要找的类名(这个可以在xml里找,带XXXclass的部分,就好像Verb_Spawn的class就是Verb_Spawn,爆炸物的class是Projectile_Explosive)
                3.找到的类,后面写的Rimworld(命名空间)是原版的(除此之外还要别的Verb的命名空间等等。。这个可以看找到的是不是包含在Assembly-CSharp里长长的一大段里)


                IP属地:广东42楼2022-04-14 19:56
                收起回复