请选择 进入手机版 | 继续访问电脑版

星界边境中文论坛-StarboundForum

查看: 7417|回复: 11

[MOD教程] 【已过期】如何做自己的枪械mod

[复制链接]
  • TA的每日心情
    开心
    2016-7-23 09:01
  • 签到天数: 29 天

    连续签到: 1 天

    [LV.4]金镐

    7

    主题

    65

    帖子

    17

    积分

    封测会员

    修改狂魔

    Rank: 12Rank: 12Rank: 12

    积分
    17
    发表于 2015-2-8 20:57:15 | 显示全部楼层 |阅读模式
    本帖最后由 mappo 于 2016-7-23 08:57 编辑

    源地址:http://community.playstarbound.c ... -gun-updated.42937/

    教程汉化:克拉诺克斯      整理以及新版本适用修改:Mappo


    教程3:如何做自己的枪械mod

    3.1
    在"Starbound\giraffe_storage\mods"文件夹建立你自己的mod文件夹,名字随便(不必和你要做的武器名字一样)




    在新建的mod文件夹下建一个"MyNewGunMod.modinfo"文件,然后键入如下内容




    你应该建立下面的子文件夹:
    "recipes" , "sfx", "projectiles\MyNewGunProjectile\", "items\guns\MyNewGun\"以及"animations\muzzleflash\gunmuzzleflash\"
    (在教程的最后有展示这些文件夹的图片...)
    这样做能让你的"MyNewGunMod"在添加多个mod道具的时候能够保持整洁有序。


    3.2 基础文件

    最快的方法依然是把重要文件拷贝进你的mod文件夹里并重命名
    从"\Starbound\assets\items\guns\accelerator\"拷贝到"mods\MyNewGun\items\guns\MyNewGun\"并重命名:

    aegisaltpistol.png -> MyNewGun.png
    aegisaltpistol.gun -> MyNewGun.gun

    如果你想让这把武器能够在游戏中制作出,从"Starbound\assets\recipes\anvil\" 复制huntingknife.recipe文件到"MyNewGunMod\recipes",通过复制能让你的配方文件格式准确无误,重命名它

    huntingknife.recipe -> MyNewGun.recipe

    现在打开配方




    "input" : (制作这个道具所需的所有材料。)[
    { "item" : "money", "count" : 10 } (在这个例子里的money是像素 )
    ],
    "output" : (通过这个配方你能得到的道具){ "item" : "MyNewGun", "count" : 1 },
    "groups" : ("anvil" 表明你只能在铁砧上制作这个道具,但我们将把它改为"craftingtable" 因为这样可以节省时间。 "weapons"和"all" 是这个配方的进一步分类。)[ "anvil", "weapons", "all" ]

    现在我们把文件合并到player.config中,这样就不必编辑源文件了:

    在MyNewGunMod文件夹中建立"player.config.patch"文件...

    编辑这个player.config.patch,键入以下内容并保存:
    1. [ {"op":"add","path":"/defaultBlueprints/tier1/-","value":{"item":"MyNewGun"} } ]
    复制代码
    现在我们已经在阶段1获得了配方...如果你加了更多的道具不要忘了,像这样写:
    1. {"op":"add","path":"/defaultBlueprints/tier1/-","value":{"item":"MyNewGun"} } ,
    2. {"op":"add","path":"/defaultBlueprints/tier1/-","value":{"item":"MyNewGun2"} }
    复制代码


    3.3 声音和开火动画

    此外,我们要拷贝并重命名这些文件(放进不同的子文件夹使mod有序):

    "/sfx/gun/pistol2.wav" -> "mods/MyNewGunMod/sfx/MyNewGunSound.wav"

    当然,如果你愿意的话,你也可以自己做一个"MyNewGunSound.wav"

    "/animations/muzzleflash/bulletmuzzle3/bulletmuzzle3.animation" ->-"mods/MyNewGunMod/animations/muzzleflash/gunmuzzleflash/MyNewGunMF.animation"

    "/animations/muzzleflash/bulletmuzzle3/bulletmuzzle3.png" -> "mods/MyNewGunMod/animations/muzzleflash/gunmuzzleflash/MyNewGunMF.png"

    "/animations/muzzleflash/bulletmuzzle3/bulletmuzzle3.frames" -> "mods/MyNewGunMod/animations/muzzleflash/gunmuzzleflash/MyNewGunMF.frames"

    打开"MyNewGunMF.png",你将看到这图片有3帧,对其进行编辑,或者你自己加一些帧.
    (重要的一点,你必须知道这些帧的规模,每一帧必须有同样的尺寸。)

    现在我们编辑"MyNewGunMF.frames"




    {
    "frameGrid" : (完整的图像包含以下内容){
    "size" : (一帧的尺寸,宽15像素,高15像素)[15, 15],
    "dimensions" : (帧数,看到的帧数3帧,空白帧数3帧,总共6帧)[6, 1]
    }

    }

    我们继续编辑"MyNewGunMF.animation"




    {
    "frames" : (新建的开火动画的名字)"MyNewGunMF.png",
    "variants" : (我们只有1种flash动画,所以这里为1)1,
    "frameNumber" : (动画有多少帧)3,
    "animationCycle" : (我认为这是动画的循环速度)0.03,
    "offset" : (flash动画的偏移)[0.375, 0]
    }


    3.4 回到基本文件
    编辑 "MyNewGun.png"(角色握枪时的贴图),你可以新建一个"MyNewGunicon.png"作为背包贴图或直接使用MyNewGun.png作为背包贴图(为了方便我们选择第二种)。
    现在打开MyNewGun.gun




    "itemName" : (枪的名字)"MyNewGun",
    "inventoryIcon" : (我们编辑过的图标图像的名字)"MyNewGun.png",
    "dropCollision" : [-8.0, -3.0, 8.0, 3.0],
    "maxStack" : (你的武器的最大堆叠数)1,
    "rarity" : (这件道具当然是稀有的。)"rare",
    "description" : (重要!除非我弄错了,你们在制造台应该能看到这个。) )"My New Gun!",
    "shortdescription" : (重要!如果弄错了的话,你的武器在制作的时候就没名字了。)"MyNewGun",
    "image" : (这是我们为武器做的新贴图)"MyNewGun.png",
    "handPosition" : (武器在手中位置)[-7, -2],
    "firePosition" : (武器的发射物出现的位置)[15, 2.25],
    "recoilTime" : (我想这是反冲动画的播放速度)0.1,
    "level" : (这个level我想可能是伤害加成的级别(在补丁修复后可能会变化))5,
    "tooltipKind" : (我认为这是用放大镜调查后的描述)"gun",
    "fireTime" : (你的武器的开火频率)0.6,
    "twoHanded" : (武器是否为双手武器)false,
    "walkWhileFiring" : (开火时能否行走)false,

    "projectileType" : (在下一步我们将会做一种新型弹药,教你们如何做出自己想要的弹药)"MyNewGunProjectile",
    "projectile" : (在这里你可以为武器设定弹药属性,以speed和color为例,其它的例子请参考其它武器。){
    "speed" : (子弹速度)75,
    "life" : (子弹射出后能存在的时间)3,
    "power" : (这是实际的伤害显示,每一击消耗一次能量!)2.7,
    "color" : (弹药的颜色)[255, 10, 10]
    },

    "muzzleEffect" : {
    "fireSound" : (我做的开枪音效)[ { "file" : "/sfx/MyNewGunSound.wav" } ],
    "animation" : (我制作的枪口焰火效果)"/animations/muzzleflash/gunmuzzleflash/MyNewGunMF.animation"     }


    3.5 弹药
    现在我们来搞定弹药。在MyNewGun.gun文件中我们已经把它命名为"MyNewGunProjectile"
    接下来我们把"Starbound\assets\projectiles\guns\bullets\bullet-1"作为例子拷贝进"MyNewGunMod\projectiles\MyNewGunProjectile\ 文件夹并且重命名。

    bullet-1.frames -> MyNewGunProjectile.frames
    bullet-1.png -> MyNewGunProjectile.png
    bullet-1.projectile -> MyNewGunProjectile.projectile
    icon.png -> MyNewGunProjectileicon.png

    编辑"MyNewGunProjectileicon.png"(伤害类型贴图)和"MyNewGunProjectile.png"(你打出的子弹贴图)直到你满意为止。
    现在打开"MyNewGunProjectile.frames"






    这个frames文件和其他的类似,我们只有一帧,所以dimensions的1,1放在那里不用管
    打开"MyNewGunProjectile.projectile"






    "projectileName" : (弹药名称)"MyNewGunProjectile",
    "frames" : (开火时的png)"MyNewGunProjectile.png",
    "animationCycle" : (动画播放速度)0.25,
    "level" : (武器的级别取代了原来的防具穿透)3,
    "energyCostPerDamagePoint" : (不解释,译注:每击消耗的能量)15,
    "frameNumber" : (不解释,译注:帧数)1,
    "damageKindImage" : (伤害类型贴图,在背包中选择武器时,在武器下方会显示)"MyNewGunProjectileicon.png",
    "pointLight" : (弹药是否发光)false,
    "actionOnReap" : [
    {
    "action" : (你可以查看文件来弄清这些配置会产生什么影响,其它的你可以在文件夹里找到一些好例子。如果你想自己做一个,只需要把这个文件拷贝到你的mod文件夹里,把它重命名进行编辑,直到满意为止)"config",
    "file" : "/projectiles/explosions/bulletexplosion/bulletexplosion.config"
    }
    ],
    "power" : (我认为这是随机枪械的伤害系数)5.0,
    "speed" : (子弹射出速度)75,
    "damageKind" : (不解释,译注:伤害类型)"default"

    这些参数大部分只对随机生成的枪类或者是别的枪械很重要...因为你的设置已经在"MyNewGun.gun"生效了。


    3.6让我们来测试一下新枪



    这就是mod文件的整体样子:






    MOD成品文件:MyNewGunMod.zip




  • TA的每日心情
    慵懒
    2017-2-4 05:05
  • 签到天数: 178 天

    连续签到: 1 天

    [LV.7]金钻头

    178

    主题

    488

    帖子

    121

    积分

    版主

    Rank: 12Rank: 12Rank: 12

    积分
    121

    克拉诺克斯突出贡献

    发表于 2015-2-8 21:06:14 | 显示全部楼层
    前排留名
    回复

    使用道具 举报

  • TA的每日心情
    郁闷
    2015-8-27 16:32
  • 签到天数: 29 天

    连续签到: 2 天

    [LV.4]金镐

    3

    主题

    43

    帖子

    3

    积分

    SB.Lv1

    Rank: 1

    积分
    3
    发表于 2015-2-9 17:13:30 | 显示全部楼层
    呼,有几个小地方错啦,
    1:子弹飞出去的特效大小有90*15个像素,要改成45*15个(或者把一帧改成15*30)
    2:modinfo文件好像错啦,我也不是很清楚

    点评

    这个MOD我测试过的,modinfo不应该错啊?!还有15x15是游戏源文件内容,我以及原作者都没做任何改动,可能像作者提到的dimensions一样是游戏制作者处理的时候导致的数据错误。不影响MOD或者游戏的效果。如果你指的是  详情 回复 发表于 2015-2-9 21:02
    没错,我真是个初中生
  • TA的每日心情
    开心
    2016-7-23 09:01
  • 签到天数: 29 天

    连续签到: 1 天

    [LV.4]金镐

    7

    主题

    65

    帖子

    17

    积分

    封测会员

    修改狂魔

    Rank: 12Rank: 12Rank: 12

    积分
    17
     楼主| 发表于 2015-2-9 21:02:11 | 显示全部楼层
    本帖最后由 mappo 于 2015-2-9 22:08 编辑
    李煜东 发表于 2015-2-9 17:13
    呼,有几个小地方错啦,
    1:子弹飞出去的特效大小有90*15个像素,要改成45*15个(或者把一帧改成15*30)
    2 ...

    教程作者认为帧数应该为3不为6,是游戏开发者数错了,其实不然,有三帧为空白帧。翻译以及修改时我们并未注意,感谢你的提醒,该处错误已更正。所以每帧15x15像素大小并未错误。
    modinfo并未错误,感谢反馈。








  • TA的每日心情
    郁闷
    2015-8-27 16:32
  • 签到天数: 29 天

    连续签到: 2 天

    [LV.4]金镐

    3

    主题

    43

    帖子

    3

    积分

    SB.Lv1

    Rank: 1

    积分
    3
    发表于 2015-2-9 21:56:08 | 显示全部楼层
    据我朋友说,要把modinfo里的“name”:——
    改为gun

    点评

    。。。。。。这个是自定义的,只要不是中文 = =  详情 回复 发表于 2015-2-9 21:58
    没错,我真是个初中生
  • TA的每日心情
    郁闷
    2015-8-27 16:32
  • 签到天数: 29 天

    连续签到: 2 天

    [LV.4]金镐

    3

    主题

    43

    帖子

    3

    积分

    SB.Lv1

    Rank: 1

    积分
    3
    发表于 2015-2-9 21:57:02 | 显示全部楼层
    改”——“处            
    没错,我真是个初中生
  • TA的每日心情
    开心
    2016-7-23 09:01
  • 签到天数: 29 天

    连续签到: 1 天

    [LV.4]金镐

    7

    主题

    65

    帖子

    17

    积分

    封测会员

    修改狂魔

    Rank: 12Rank: 12Rank: 12

    积分
    17
     楼主| 发表于 2015-2-9 21:58:12 | 显示全部楼层
    李煜东 发表于 2015-2-9 21:56
    据我朋友说,要把modinfo里的“name”:——
    改为gun

    。。。。。。这个是自定义的,只要不是中文   = =
  • TA的每日心情
    郁闷
    2015-8-27 16:32
  • 签到天数: 29 天

    连续签到: 2 天

    [LV.4]金镐

    3

    主题

    43

    帖子

    3

    积分

    SB.Lv1

    Rank: 1

    积分
    3
    发表于 2015-2-9 21:58:23 | 显示全部楼层
    比如说这样{
      "name" : "gun",
    "dependencies" : [],
      "metadata" : {
        "author" : "LYD",
        "description" : "Hi!",
        "support_url" : ""
      }
    }

    点评

    这个name是MOD的名字,name为gun代表你这个MOD名为gun。而教程中name为MyNewGunMod指MOD名为此  详情 回复 发表于 2015-2-9 22:04
    没错,我真是个初中生
  • TA的每日心情
    开心
    2016-7-23 09:01
  • 签到天数: 29 天

    连续签到: 1 天

    [LV.4]金镐

    7

    主题

    65

    帖子

    17

    积分

    封测会员

    修改狂魔

    Rank: 12Rank: 12Rank: 12

    积分
    17
     楼主| 发表于 2015-2-9 22:04:45 | 显示全部楼层
    李煜东 发表于 2015-2-9 21:58
    比如说这样{
      "name" : "gun",
    "dependencies" : [],

    这个name是MOD的名字,name为gun代表你这个MOD名为gun。而教程中name为MyNewGunMod指MOD名为此
  • TA的每日心情
    郁闷
    2015-8-27 16:32
  • 签到天数: 29 天

    连续签到: 2 天

    [LV.4]金镐

    3

    主题

    43

    帖子

    3

    积分

    SB.Lv1

    Rank: 1

    积分
    3
    发表于 2015-2-10 11:33:40 | 显示全部楼层
    好吧,我去打我朋友一顿
    没错,我真是个初中生
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    小黑屋|星界边境中文论坛-StarboundForum  

    GMT+8, 2019-3-22 16:16 , Processed in 0.090908 second(s), 27 queries .

    Powered by Discuz! X3.2

    © 2001-2013 Comsenz Inc.

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