starbound吧 关注:83,359贴子:910,201

starbound原创MOD教程(下)

只看楼主收藏回复

就在去年这个时候我发布了一篇MOD教程,当时只是说了一半后来就鸽了,没想到一鸽鸽了一年了。这次准备把这个教程完结了。度娘保佑,请勿吞贴。


IP属地:上海1楼2019-08-16 11:28回复
    一楼不说正事。因为贴吧发帖不稳定,所以还是和原来一样我都会在steam上写好再转过来。没有看过之前教程的可以百度搜一下starbound原创MOD教程。有一篇是去年这个时候发的,可以读一遍再来看这篇。


    IP属地:上海3楼2019-08-16 11:36
    回复
      MOD教程1:进阶前一些知识准备
      1:在上次我给大家说了一个代码,就是/spawnitem waterballoon,敲击完这个代码回车后,在光标出会生成一个水球。waterballoon其实就是水球文件中那个itemName的值,详情大家可以打开水球的游戏文件就能看到,那么我把这段代码后面的waterballoon改成其他itemName的值可不可以呢?


      IP属地:上海4楼2019-08-16 12:48
      回复
        还是定位到Starbound\assets\as\items\throwables文件夹下,打开beachball.thrownitem这个文件。



        IP属地:上海5楼2019-08-16 12:50
        回复
          我们把/spawnitem waterballoon改成/spawnitem beachball,然后进入游戏,进入管理员模式(/admin同上次说的),再敲上这个代码回车,会发现生成沙滩球了。


          IP属地:上海6楼2019-08-16 12:52
          回复
            这个代码其实就是根据游戏里的物品itemName来快速生成自己想要的东西的。而这个itemName就是一种 ID,作为物品的ID这个键的值在游戏里只能是唯一的,不能同时又两个游戏文件的itemName的值是一样的,这样会引起冲突。其实这个键就相当于一个身份证,一个物品要想在游戏里正常存在就必须要有这个而且不能重复。对于游戏里的其他东西比如抛射物、怪物之类的也是有唯一的ID的,往往这个ID是这个游戏文件第一个键值对。


            IP属地:上海7楼2019-08-16 12:53
            回复
              2:一些常用的指令
              这块有几个指令相关的网址发不出来,需要看的可以到steam上我的指南那里看。比较重要的就是starbound官方wiki网有很多东西可以参考。


              IP属地:上海8楼2019-08-16 12:58
              回复
                MOD教程2:Projectile解析上
                在前面内容中,我们尝试将水球的图片改成了手榴弹的图片。但是当抛出手时,其实还是一个水球,那么如果我想要让他抛出时变成真正的手榴弹应该怎么做呢?这涉及到projectile(抛射物)知识了。projectile在starbound中非常重要,很多地方你都能见到他,比如枪支类武器、技能等。在水球例子中,水球也存在projectile,如图


                IP属地:上海9楼2019-08-16 13:01
                回复

                  水球的配置中有projectileType,projectileConfig这两个属性。其中projectileType表示水球抛射出去后的抛射物种类,projectileConfig表示抛射物的属性。这里的projectileType是waterballoon


                  IP属地:上海10楼2019-08-16 13:03
                  回复
                    这个waterballoon其实是抛射物的ID,上一次给大家讲了starbound中所以物品都有他自己唯一的标识也就是ID,抛射物也不例外。定位你的文件夹到解包文件中的/projectiles文件夹。(注意/projectiles和/items文件夹是同级的都处于解包后的第一个目录下,后面的路径都将类似表示)


                    IP属地:上海11楼2019-08-16 13:06
                    回复
                      这里是starbound所有projectile存放的地方,在/projectiles/throwable/waterballoon/ 目录下可以找到waterballoon.projectile配置文件。


                      IP属地:上海12楼2019-08-16 13:07
                      回复
                        打开配置文件,projectile配置文件中的属性其实相当多,有一些只在一个配置文件中是看不出的,下面我列出的是初期需要知道的属性,另外有很多属性则需要后期自己去探索了。


                        IP属地:上海13楼2019-08-16 13:09
                        回复
                          actionOnReap这个属性是比较复杂但是必须要搞懂的属性,他表示此projectile销毁时的动作。从水球这个物品来说,首先在手上的时候他是前面说的/item/throwables/waterballoon.thrownitem,一旦抛出去就变成/projectiles/throwable/waterballoon/waterballoon.projectile了,而这个projectile总是要消失的吧,比如撞到地面或者怪之类的,actionOnReap可大致理解为这个水球在消失时要作的”动作“。


                          IP属地:上海14楼2019-08-16 13:10
                          回复
                            从配置文件中可见他做了两个动作,一个是liquid另外一个是sound,所谓sound就是播放音效,要播放的音效选项就在options属性中,比如这个”/sfx/projectiles/waterballoon1.ogg“音效,你可以到对应文件夹找到这个音效用音乐播放器打开听一下,应该就是水球击中了某个东西消失时的声音。


                            IP属地:上海15楼2019-08-16 13:11
                            回复
                              另外一个是liquid,之前进阶知识里有推荐了几个网址,包含了各种指令的使用,如果你仔细读了,就会发现有个指令和这个很相似/spawnliquid liquidName # 在光标处生成指定液体。这里"action" : "liquid"和这条指令作用相似,只不过不是在光标处生成液体而是在水球“销毁”的地方产生液体,液体是water(水),数量3。


                              IP属地:上海16楼2019-08-16 13:12
                              回复