三、如何从优秀的作品中学习
——————————————————————
本次使用的教学mod是mod创作基地里下载的教学mod
【[军用无人机][EN]Military_UAV】
作者为:
"authors": [ "Aunt_Su | 苏大妈#7831" ],
"maintainers": [ "Aunt_Su | 苏大妈#7831" ],
未有作者授权、我也不认识他
![](https://tb2.bdstatic.com/tb/editor/images/face/i_f33.png?t=20140803)
但mod里也没说不让拿来当教材
![](https://tb2.bdstatic.com/tb/editor/images/face/i_f33.png?t=20140803)
总而言之,我们开始吧!
——————————————————————
我们现在有着一个非常优秀的mod,我们想学习其中的技巧方法化为己用,我们该怎么做呢?
首先,先看一下mod的文件构成:
![](http://tiebapic.baidu.com/forum/w%3D580/sign=e30e472786fdfc03e578e3b0e43d87a9/5defc15c10385343d00036f8d613b07ec8808865.jpg?tbpicau=2024-09-05-05_883e80b32393fc1b2b09ef5b2b104eba)
一共有三个文件,其中两个是我们所知道的:
一个XXXX.json是mod本体
一个modinfo.json是mod的说明信息
另一个32x32.png我们没有见过,猜测是贴图文件,那么我们先打开看看:
![](http://tiebapic.baidu.com/forum/w%3D580/sign=846f55aae84bd11304cdb73a6aada488/3c2231d12f2eb938d7aacb2b90628535e7dd6f6d.jpg?tbpicau=2024-09-05-05_4c4d5b70fd878cf0b0c0ae320069db56)
很明显,是无人机的贴图
【很好!我们可以从这个mod中学习至少一部分的贴图使用方法!】
那继续看其他文件,这里建议先modinfo,因为这个文件通常不会太大,而且里面的mod介绍可以更好的帮助我们去理解mod的内容
那我们打开看看:
![](http://tiebapic.baidu.com/forum/w%3D580/sign=af322a2a3c310a55c424defc87444387/a6de9a16fdfaaf51abda3166c95494eef11f7a77.jpg?tbpicau=2024-09-05-05_d27b984ee2c317f193198ee9ea2304d5)
里面除了我们熟知的
"type": "MOD_INFO",
以外,还有一个
"type": "mod_tileset",
这个东西我们没见过,而且单词我们也不认识,那么我们翻译一下:
![](http://tiebapic.baidu.com/forum/w%3D580/sign=d5ed6517dc25bc312b5d01906ede8de7/9fc6968fa0ec08faa925a37e1cee3d6d54fbda0c.jpg?tbpicau=2024-09-05-05_3334cb1dce6b9dfc1d979c6ffcc9dc93)
![](http://tiebapic.baidu.com/forum/w%3D580/sign=bbdcbc32f3fd5266a72b3c1c9b199799/da72d7a20cf431adf1f8f3e00e36acaf2fdd9802.jpg?tbpicau=2024-09-05-05_5c43ad7bf889eb2b5a19b14546db30a7)
经过翻译,我们发现我们仍然不知道这是什么东西
![](https://tb2.bdstatic.com/tb/editor/images/face/i_f16.png?t=20140803)
那就用老办法——不管了,爱咋咋地
我们继续看
下一行是compatibility,也就是兼容,后面跟了一些模组名称
也就是说,这一句表示它(这个mod)所兼容的其他mod
下一句是一个明显的大括号,经过之前的经验,括号内的应该是一系列同一种东西
![](http://tiebapic.baidu.com/forum/w%3D580/sign=6f383cfb8dfcc3ceb4c0c93ba244d6b7/5242ee50352ac65c3810d6aabef2b21192138a13.jpg?tbpicau=2024-09-05-05_ed1e964d71af820545f9987aa940f385)
可以发现,里面的语句排列整齐,fg分别从0到7,一共八种
可旋转的属性被标为了false
我们再去数一下贴图文件,一共8个,与这里的八种相互匹配
所以这个极大概率就是贴图的使用方法
那让我们仔细看看
里面先是给了一个id,然后跟着一个名为fg的参数,最后跟着是否可以旋转
那我们去另一个文件里找一找相关id
搜索结果很让人惊讶
"id": "Tactical_Pad"和"id": "Tactical_Pad_on"是可以搜索到的
但是"id": "overlay_wielded_Tactical_Pad"和 "id": "overlay_wielded_Tactical_Pad_on"是搜索不到的
而且这个mod只有三个文件,那么【真実はいつも一つ】!——CDDA是可以识别id前加overlay_wielded_的
对比之前的图片
![](http://tiebapic.baidu.com/forum/w%3D580/sign=128b3bd7f43533faf5b6932698d2fdca/130e0d46f21fbe09603071cd2e600c338544adc6.jpg?tbpicau=2024-09-05-05_56535e6eafff42e09887fc12861e482e)
很明显,带overlay_wielded_的条目,是缩放的样子。
那么我们得到一个知识:
缩略图是"type": "mod_tileset",且里面的词条以fg相表示,贴图存在外面(作为对比,look like词条是存在json内部的),贴图条目中以overlay_wielded_表示另一个视角,这个视角的翻译是“放置行驶的”。
![](https://tb2.bdstatic.com/tb/editor/images/face/i_f33.png?t=20140803)
![](https://tb2.bdstatic.com/tb/editor/images/face/i_f33.png?t=20140803)
![](https://tb2.bdstatic.com/tb/editor/images/face/i_f33.png?t=20140803)
那我们继续看另一个被我们叫做mod本体的JSON
![](http://tiebapic.baidu.com/forum/w%3D580/sign=614c3bd8196034a829e2b889fb1249d9/c8290ffa513d2697a187ba8410fbb2fb4116d8dd.jpg?tbpicau=2024-09-05-05_365f0f397eb8f80bd9b048496913d556)
仅仅是第一页,我们就发现了两个不认识的type
"type": "item_action",和 "type": "tool_quality",
这两个相对简单,就交给大家当作业了
这里提两个东西,一个是这个//和//2
一个是str
两个东西没什么难度,学过编程的都知道,//是注释,str是字符串
这里给没学过的解释一下,//和//2不同是因为要区分这两个注释,如果同一个{}中有两个以上的注释,那么理所应当的是//2、//3、//4等等等等,具体上限多少不清楚,你可以自己试试。
而用str是因为,不能在str以外的数据格式中用空格,想用空格就必须str,否则会报错
(这时候你可能就要问了,在 "volume": "300 ml",中300和ML之间不就有空格吗?emmm,这个真的很难清晰的解释一下,因为有字节这个东西,不去正经学一下很难理解。简单的来说,这里的空格起到的不是空格的作用。好比你把橡木装在了桃木箱里,那它就是一箱橡木,而不是“橡木、桃木混合箱”)
(此外,description在定义上就是str的数据类型,无需再加)
好!我我们继续!
![](https://tb2.bdstatic.com/tb/editor/images/face/i_f33.png?t=20140803)
![](https://tb2.bdstatic.com/tb/editor/images/face/i_f33.png?t=20140803)
![](https://tb2.bdstatic.com/tb/editor/images/face/i_f33.png?t=20140803)
![](http://tiebapic.baidu.com/forum/w%3D580/sign=e044442786fdfc03e578e3b0e43d87a9/5defc15c10385343d34a35f8d613b07ec88088a3.jpg?tbpicau=2024-09-05-05_8b7ee0ab0648eabc256b996a3cb31685)
这里面
"price_postapoc": 1500000,一看就是价值的某一个分支,具体是什么对我们影响不大,有相关需求的制作者可以自己去研究研究
"to_hit": -1,这个词条比较奇怪,因为它后面是一个负数,但是我们只要去游戏里面看一下就可以发现
![](http://tiebapic.baidu.com/forum/w%3D580/sign=fb562b2539d98d1076d40c39113eb807/5ebfddb44aed2e735e5f3bf5c201a18b85d6faff.jpg?tbpicau=2024-09-05-05_79a7a7cb457e039456298d0c5c54636d)
它是命中-1
其他的都可以通过对比游戏内与游戏外的数值来确定
(先到这里吧,这个mod跟我的版本不匹配,装进去以后就一直报错,整了一下午才整明白"type": "mod_tileset",现在需要单独一个json,否则会提示id不对author不对description不对一堆不对,他还就是不提示mod_tileset不对
![](https://tb2.bdstatic.com/tb/editor/images/face/i_f16.png?t=20140803)
,全改了一遍以后发现shape的现在是必须添加,而死亡效果的格式改了。。。。总之给别人修了一堆BUG,吐了吐了)
剩下的之后再说,这个mod到这里才讲了三分之一。
孬!
非常非常!