欢迎光临散文网 会员登陆 & 注册

MDT模组单位武器制作

2022-01-15 18:24 作者:NullPointerErr  | 我要投稿

单位,一共有三类,他们分别是制作单位的工厂、重构工厂和单位本身

单位本身我只讲官方分类的各一种机甲(全部真的太多了),基本可以囊括所有属性,如果你有其他想知道的可以留言

单位工厂

地面单位工厂 -> UnitFactory/单位工厂

ground-factory



解释

  • plans.unit: 生产的单位

  • plans.time: 生产时间

  • plans.requirements: 生产所消耗的物资

重构工厂

tankAssembler/坦克装配厂 -> UnitAssembler/装配工厂

下面的json代码plans字段为猜测未来写法,anuke没写PayloadStack的转换,当前实现不了

以下在v137版本是会报错的,猜的是未来可能的写法

解释

  • droneType: 用来装载的单位

  • dronesCreated: 装载单位数量

  • droneConstructTime: 装载单位被制造耗时

  • areaSize: 建造区域边长

倍乘级单位重构工厂 -> Reconstructor/重构工厂


解释

  • constructTime: 升级时间

  • upgrades.*.0: 升级前机甲

  • upgrades.*.1: 升级后机甲

单位

alpha/主角小飞机 -> flying(飞行单位)

alphaaa


解释

  • type: 单位种类(JsonMod有区分,在游戏区分不多,且也没有拓展字段。不填默认 flying)

  • defaultController: 单位默认控制者(见后)

  • isEnemy:是否被计数器记作敌人(一般辅助单位为 true)

  • lowAltitude: 低空飞行,对单位的图层和影子变化

  • flying: 是否能飞行

  • mineSpeed: 挖矿速度

  • mineTier: 大于物品 hardness 可挖掘

  • buildSpeed: 建筑速度

  • drag: 惯性

  • speed: 移动速度

  • accel: 加速度

  • itemCapacity: 物品容量

  • rotateSpeed: 单位转速

  • health: 生命值

  • engineOffset: 引擎偏移量(-y)

  • hitSize: 碰撞箱大小

  • alwaysUnlocked: 是否永久解锁

  • weapons: 武器(无需单独开一期,基本只能给单位用。下文w代替weapons里的weapon)

  • w.type: 武器类型(不填默认 Weapon)

  • w.name: 使用的贴图

  • w.reload: 装填时间

  • w.x, w.y: 武器在机甲上所在位置(以机甲中心为平面直角坐标系原点)

  • w.top: 武器是否永远在其他 单位及其子图层 之上

  • w.bullet: 使用的子弹

reign/王座 -> mech(机械单位)

可爱的王座♪~~

解释

  • armor: 单位护甲值

  • mechStepParticles: 走路是否有粒子效果

  • stepShake: 走路屏幕摇晃强度

  • drownTimeMultiplier: 淹死时间倍率

  • mechFrontSway: 单位行走垂直摇晃

  • mechSideSway: 单位行走水平摇晃

  • ammoType: 所使用的子弹(如果开了 单位有弹药限制)

  • w.recoil: 武器后坐力特效

  • w.shake: 使用武器屏幕摇晃强度

  • w.shootSound: 使用武器声音

  • w.shootX, w.shootY: 子弹射击偏移(以武器中心为平面直角坐标系原点)

arkyid/毒蛊 -> legs(腿型单位)

别问我为什么这么挤

解释

  • hovering: 是否悬浮,也会改变单位寻路方式(即寻路代价算法)

  • groundLayer: 图层,详见1565619256.github.io/Mindustry-zh_CN-modding-guide/constant.html(比较多,故不放在专栏内)

    猫猫没有写图层数值转换器,所以只能写数字

  • allowLegStep: 如果是腿型单位且这个值为 true ,这个单位就可以跨过大多数建筑物

  • legCount: 腿的数量

  • legMoveSpace: 脚落脚距离倍率(一直走动情况下)

  • legPairOffset: 各腿移动时间间隔(或者不同步程度)

  • legLength: 腿长

  • legExtension: 小腿纵向坐标偏移量(一般用于无关节单位,合适的值只能试出来)

  • legBaseOffset: 大腿离单位中心距离

  • legLengthScl: 每次移动脚尝试向单位中心远离倍率(不能理解为腿长短缩放)

  • legSpeed: 腿移动速度

  • rippleScale: 落脚后脚底特效夸张程度(不知道怎么解释或者词穷想不出什么词)

  • legSplashRange: 脚落地溅射范围

  • legSplashDamage: 脚落地溅射伤害

retusa/潜螺 -> naval(海军)

看起来像个脸(


解释

  • targetAir, targetGround: 是否瞄准空军, 陆军

  • faceTarget: 是否面向(瞄准/射击的)目标

  • trailLength: 尾拖长度(波浪尾拖)

  • waveTrailX, waveTrailY: 尾拖偏移

  • trailScale: 尾拖粗细

  • w.mirror: 是否镜像武器(以单位中心向上轴为对称轴作轴对称图形)

  • w.shoot: 射击形式(若不写type默认为 ShootPattern,挖坑+1)

oct/要塞 -> payload(荷载单位)

你别说还真像兲哈哈哈

解释

  • engineSize: 引擎大小

  • payloadCapacity: 荷载容量(tilePayload一般取64)

  • drawShield: 是否绘制护盾(一个小圈)

  • buildBeamOffset: 建造枪偏移(y)

  • abilities: 单位能力

stell/铁蹄 -> Tank(坦克)

其实应该叫围护

解释

  • squareShape: 是否为方形影子

  • omniMovement: 是否能全方位移动(若为 false 单位只可朝他面朝的方向移动)

  • rotateMoveFirst: 是否旋转在先

  • w.heatColor: 武器过热颜色

  • w.cooldownTime: 武器过热冷却时间

elude/挣脱 -> hover(悬浮单位)

依鲁德?德鲁格挖矿机器人!

解释

  • useEngineElevation: 始终显示引擎正常尺寸,不受高度影响

  • parts: 单位额外绘制部件

  • w.shootCone: 射击角判定(瞄准允许偏差角度,采用角度制)

  • w.baseRotation: 武器基础旋转角度

assemblyDrone/装配无人机 -> tether(打工单位)

打工,玩家当老板,嬲

解释

  • targetable: 若为 true,单位不会被任何东西瞄准

  • hidden: 是否隐藏(核心数据库,荷载路由器配置界面...)

  • useUnitCap: 无单位数量限制

  • logicControllable:逻辑可控性

  • playerControllable: 玩家可控性

  • allowedInPayloads: 是否能作为荷载被运输

  • createWreck: 是否显示死亡印记

latum/爆浆大虫子 -> crawl(蠕动单位)

实验性(v137)单位,属性肯定不全,请仔细考虑是否使用这种单位

肉虫子


解释

  • segments: 身体分节数

  • segmentScl, segmentPhase, segmentMag: 不知道

    float trns = Mathf.sin(crawl.crawlTime() + i * segmentPhase, segmentScl, segmentMag)

  • immunities: 免疫效果

  • drawCell: 是否绘制队伍指示器

  • drawBody: 是否绘制单位身体

  • segmentRotSpeed: 分节转速

  • segmentMaxRot: 各个分节最大差异角度

  • crushDamage: 在 坦克/蠕动 单位下方每帧受到的伤害(?

  • healFlash: 被治疗是否显示颜色

  • healColor: 被治疗显示颜色

至于为什么不写 SpawnDeathAbility,请看如下片段自行理解

get rickroll LOL

分类部分

单位工厂

  • plans.unit: UnitType

  • plans.time: float

  • plans.requirements: ItemStack[]

重构工厂

  • constructTime: float

  • upgrades: UnitTypes[]

装配工厂

  • droneType: UnitType

  • dronesCreated: int

  • droneConstructTime: float

  • areaSize: int

单位

  • aiController: Prov<? extends UnitController>

  • weapons: Seq<Weapon>

  • isEnemy:boolean

  • lowAltitude: boolean

  • flying: boolean

  • mineSpeed: float

  • mineTier: int

  • buildSpeed: float

  • speed: float

  • accel: int

  • itemCapacity: int

  • rotateSpeed: speed

  • health: float

  • engineOffset: float

  • hitSize: int

  • armor: float

  • mechStepParticles: boolean

  • stepShake: float

  • drownTimeMultiplier: float

  • mechFrontSway: float

  • mechSideSway: float

  • ammoType: AmmoType

  • hovering: boolean

  • groundLayer: float

  • allowLegStep: boolean

  • legCount: int

  • legMoveSpace: float

  • legPairOffset: float

  • legLength: float

  • legExtension: float

  • legBaseOffset: float

  • legLengthScl: float

  • legSpeed: float

  • rippleScale: float

  • legSplashRange: float

  • legSplashDamage: float

  • targetAir, targetGround: boolean

  • faceTarget: boolean

  • trailLength: int

  • waveTrailX, waveTrailY: float

  • trailScale: float

  • engineSize: float

  • payloadCapacity: float

  • drawShield: boolean

  • buildBeamOffset: float

  • abilities: Seq<Ability>

  • squareShape: boolean

  • omniMovement: boolean

  • rotateMoveFirst: boolean

  • useEngineElevation: boolean

  • parts: Seq<DrawPart>

  • targetable: boolean

  • hidden: boolean

  • useUnitCap: boolean

  • logicControllable: boolean

  • playerControllable: boolean

  • allowedInPayloads: boolean

  • createWreck: boolean

  • segments: int

  • segmentScl, segmentPhase, segmentMag: float

  • immunities: ObjectSet<StatusEffect>

  • drawCell: boolean

  • drawBody: boolean

  • segmentRotSpeed: float

  • segmentMaxRot: float

  • crushDamage: float

  • healFlash: boolean

  • healColor: Color

武器

  • name: String

  • reload: float

  • x, y: float

  • top: boolean

  • bullet: BulletType

  • recoil: float

  • shake: float

  • shootSound: Sound

  • shootX, shootY: float

  • mirror: boolean

  • shoot: ShootPattern

  • heatColor: Color

  • cooldownTime: float

  • shootCone: float

  • baseRotation: float

其他

AI

  • AssemblerAI: 装配AI(装配无人机)

  • BuilderAI: 建造AI(T2空辅)

  • CargoAI: 搬运AI(货运无人机)

  • DefenderAI: 保护单位AI(那只兲)

  • FlyingAI: 空军AI(日蚀)

  • FlyingFollowAI: 飞行跟随AI?(悲怆)

  • GroundAI: 陆军AI(尖刀)

  • HugAI: 亲亲AI?(上面的大虫子)

  • LogicAI: 被逻辑控制AI

  • MinnerAI: 矿工AI(独影/德鲁格)

  • RepairAI: 修复AI(巨象)

  • SuicideAI: 自杀AI(T1爬爬)

后言

本期把武器和单位杂在一起,故字数会很多,请细心观看我写一下卡一下挺难受的。现在最主要的模组内容更新完了(如果你有看我以前的文章),接着就是去完善文集内容。现在学了一些jsMod,到时候也可能继续更新jsMod的教程。顺便,`DeveloperMode`这个模组帮了我很多忙虽然137我基本没用过了,让我省去了很多退出重进的时间。Anuken更新的真快, 一个学期更了6个版本我也不知道为什么有人一直在看另一个文集的内容,我之前都不知道我在写什么东西,之前写教程很大程度上是为了蹭热度,就翻译wiki的内容谁不会啊,现在想想还是挺尴尬的。这个教程也必定会过时,毕竟专栏只能改3次。


8月13日更新版

[M] 更详细的内容(?

[+] 更多废话(?



MDT模组单位武器制作的评论 (共 条)

分享到微博请遵守国家法律