cataclysmdda吧 关注:21,408贴子:333,203

回复:新人向|无基础情况下如何从0开始写MOD

只看楼主收藏回复

好,我们继续。
" class="BDE_Image" onload="EditorUI.resizeImage(this, 560)" unselectable="on"/>

对于前面部分的词条,我们大多都认识

这些我就不解释了,大家自己研究
我们继续
"use_action": [
"EINKTABLETPC",
"CAMERA",
{
"menu_text": "Activate Tactical tablet",
"//": "启动战术平板",
"type": "transform",
"target": "Tactical_Pad_on",
"need_charges": 2,
"need_charges_msg": "Low battery, cannot start!",
"//2": "电量低,无法开机!",
"active": true,
"msg": "You've activated the tactical tablet.",
"//3": "你启动了战术平板."
}
]
这个词条我们可以通过作者在其中的注释知道是具体的操作(其实看那个use就知道了。。。)
但为什么会有这么奇怪的格式?
我们之前的经验都是
“属性”:[“词条1”,"词条2"]
或者
"属性":[{"属性1":"词条1","属性2":"词条2","属性3":"词条3"}]
从来没有"属性":["词条1",{"属性2":"词条2"}]这种
那让我们搜索一下”EINKTABLETPC“

有几个跟我们的情况一样,我们点进去看一下

好像是一个打开手机MP3的操作,但是经过翻译,我们发现"use_action":条目中的几乎所有词条都无法翻译成汉语,那老办法———不管了,爱咋咋地
如果之后没有其他办法,我们再回来啃这块硬骨头
我们去那个id文件看一下,经验告诉我应该大有收获

很好!啥也没有!
我们只能去看看有没有办法高清楚它的意思
我们把这些词条逐一拿去翻译
"MP3_ON", "PORTABLE_GAME", "EINKTABLETPC", "EBOOKSAVE", "EBOOKREAD"
"WATCH", "TRADER AVOID", "ALARMCLOCK", "USE_UPS", "NO_UNLOAD", "NO_RELOAD", "WATER_BREAK"
得到
“MP3_打开”、“便携_游戏”、“EINKTABLETPC”、“电子书保存”、“电子书阅读”,
“观察”、“交易者回避”、“警报锁”、“使用UPS”、“无卸载”、“无重装”、“断水”

这条路也不通,我们就再换个思路,从
"type": "item_action",
"id": "EINKTABLETPC",
"name": { "str": "Use SD-Card apps" }
入手,猜测一下它是做什么用的
我们知道,这个东西的名字叫做“使用储存卡的应用”
并且经过搜索,整个游戏只在这里出现过一次sd卡
那说明并不是什么引用,而是这三行确确实实的就是这个词条的全部
我们需要一个测试mod,就用之前的背包好了,把这个词条加进去(具体过程不写了,大家自行脑补一期内容),我们去游戏里看一下

原来是表示里面有内存卡
所以我们只要添加了这个词条,无论什么东西都会有内存(一个有内存卡的背包,啧啧啧)
同理,如果加了EBOOKREAD这个词条,那么哪怕是一口锅,也可以看电子书
好!我们继续
我们已经知道了EINKTABLETPC是指这个东西有内存卡,那么CAMERA自然就是相机了
那便剩下了这部分

我们去搜索一下没见过的词条,比如menu_text

东西还是不少的
不过我们发现大部分的menu_text中都是不一样的,结合这个词本身的意思(菜单文本)
想必各位已经有了答案
那我们继续看type,先搜索一下

大量的几乎一样的文本,说明这个是固定用法
那我们去翻译一下
{
" menu_text ":"激活战术平板",
"//": "启动战术平板",
"类型":"转换",
"目标":"战术_垫_开",
need _ charges:2
" need_charges_msg ":"电池电量低,无法启动!",
"//2": "电量低,无法开机!",
“主动”:真,
“msg”:“你已经激活了战术平板。”,
"//3": "你启动了战术平板."
}
看来大家都明白了,这个
"type": "transform",
是表示这个东西将要经过转换
"target":后面应该是跟转换的对象
为了验证,我们搜索一下"target":后面的内容

就在这个文件中,我们找到了这样一串代码想必到现在大家已经能够看懂了
(为一没说过的可能有些难度的就是copy-from,这个词条的意思是指这个东西的其他属性与copy-from所指向的东西的属性一致,通过我之前讲过的方法不难知道,就不带大家一起了
那么这串代码的最后部分
"pocket_data": [
{
"pocket_type": "MAGAZINE_WELL",
"rigid": true,
"holster": true,
"max_contains_volume": "20 L",
"max_contains_weight": "20 kg",
"item_restriction": [ "medium_battery_cell", "medium_plus_battery_cell", "medium_atomic_battery_cell", "medium_disposable_cell" ]
}
经过背包那里的经验,这个很明显是一个口袋,硬的,且有一个holster属性(这个属性也很有意思,感兴趣的可以自己去研究研究),容积不大
只有一行是我们无法确定的,那先翻译一下
“物品限制”:[“中号电池”、“中号加电池”、“中号原子电池”、“中号一次性电池”


IP属地:山东18楼2022-06-21 15:22
收起回复
    写json不需要基础,去翻github文档就是了合成配方部分itemgroup和工具那些更值得讲一点
    copyfrom是加item的正确做法,比如游戏里所有枪都是继承自一个抽象的枪


    IP属地:北京来自iPhone客户端19楼2022-06-25 09:44
    收起回复
      嘿嘿嘿嘿,我们继续
      继续看大佬的mod文档

      这些词目大家都差不多知道,我们就着重讲比较新颖的
      像这个revert_to,就是指的这个东西在用光电量以后会变回所指向的东西,类似于死亡动作。
      而且值得注意的是,怪物身上也可以使用这个词条,大家按照我之前教的方法就能弄明白,就不带大家演示了。
      又像item_restriction便是指的物品限制,即:只有这些物品可以放到里面
      target这个此比较复杂,不过大家知道这个是指的目标对象即可,像这里:本身的type是动作,target指向之前的无人机,意思当然是对这个无人机发出这个动作(当然,我们可以说是无人机发出的这个动作,这取决于你是怎么理解的)
      另外,补充一下:对于换行符\r和回车符\n,楼主自己的测试结果是\n作用于换行,\r似乎作为了空格,但是空格可以直接打上去。所以大家不用纠结回车符还是换行符,需要的时候都加上就好了。
      经过前面的学习,这些东西真是一点难度有没有啊!!
      那我们加快节奏

      这里有一个我们没见过的
      "drop_action": {
      "target": "Military_UAV_MAP_KEY_act",
      "target_charges": 1,
      "moves": 3000,
      "active": true,
      "type": "transform"
      },
      再最后带着大家分析一遍,以后这种根据已知例子求过程的就不再讲了
      老样子,先搜索

      结果非常少,我们可以一个一个看
      先看第一个

      这个里面说,你可以甩出酸液来
      我们看看 下一个

      孬!几乎一模一样
      那我们去试试搜索子条目"type": "emit_actor"

      毫无结果,仅仅指向了它自己
      那我们只好试图自己用眼睛瞅出答案来,我们来瞅瞅
      "drop_action": {
      "target": "Military_UAV_MAP_KEY_act",
      ........
      我们发现,这里的drop_action指向了另一个id。我们去找一下

      通过眼瞅这些代码,我们知道:
      这是一个工具(TOOL)
      属于武器weapons(category这个词条的用法大家可以毋需关注,不过为了大家好奇心依然简要讲一下:好比一个“苹果”,你知道它是苹果,那么想当然的它有汁水,因为你知道“苹果”这个东西。那么假设一个东西叫“阿斯顿奥丁阿瑟东跌幅高达ABCDE”,你不知道这是什么,但是我告诉你这是水果,那么你也立马会理解“它有汁水”这个事。这个category同样如此,它是武器,那么自然具有武器的通用属性,自然可以出现在武器出现的地方(不是指的物品刷新)。另外,配方中的制作类别并不是这个词条,大家不要搞错了)
      它还有一个类型是cast_spell的动作,经过我们翻译我们可以知道,这个动作是施法
      那我们去找一下它施了什么法

      几乎没有难度,就不带着大家翻译了
      (给大家留个作业,最后这个魔法能量源是干什么用的?
      那我们继续

      这里有一些groups,我不打算讲这些东西,虽然它对mod有很大提升,但是里面的类似权重这些东西对于没有接触过程序编写的朋友来说可能有些难理解。
      我们继续往下看

      我们发现,这个mod作者将无人机做成了一个monster,来执行侦察功能
      这是一个非常好的思路,我们可以把脱离小@的东西,无论是工具还是武器装备,都可以做成monster的形式
      更甚者,我们可以尝试做一个移动堡垒,或者护体真气(这两者似乎都有人做了
      .
      .
      那么,第一部分的内容讲解完毕。之后会再讲一些其他方面的东西,有关方法的部分就是这些了。
      最后总结一下,拿到东西先搜索,搜索过后就翻译,翻译不行就搜索下位词条,都不行就再去看原文档,最后找到某词条的用法。
      .
      .
      好!非常成功!


      IP属地:山东20楼2022-06-27 17:48
      收起回复
        我想问一下,我参考绳网者的变异写了一个新的变异,激活后生成物品没有问题,但是如果是生成液体会直接洒到地上,没办法出现倒入容器的选项,这个怎么办呢?虽然有类似获取液体的CBM,但我搜不出CBM的效果代码,只有价值安装难度之类的数据………


        IP属地:四川来自Android客户端21楼2022-06-29 16:59
        收起回复
          挖,忍不住赞叹lz好用心,好佩服。
          想搞个自定义的职业想起了这个见过的帖子(新手向··),不过我只是说说罢了,不会有那种坚定决心的。
          好羡慕··


          IP属地:广东23楼2023-02-13 14:34
          回复
            嘻嘻,弄好了,谢谢lz启发我
            可以为所欲为了。



            IP属地:广东24楼2023-02-13 19:03
            收起回复
              韩国画师的图


              IP属地:湖南26楼2023-03-10 15:25
              收起回复
                赞美lz 然后经验+3


                IP属地:广东来自iPhone客户端27楼2023-03-10 16:51
                收起回复
                  那我缺的0.G这一块谁给我补啊


                  IP属地:山东来自Android客户端28楼2023-04-30 09:26
                  收起回复
                    学习了,刚把ASRG 改成10倍电力····哈哈哈哈 核能发电机就是爽


                    IP属地:四川29楼2023-08-08 12:39
                    回复