- 积分
- 14753
- 帖子
- 主题
- 精华
贡献- 份
爱心- 心
- 钻石
- 颗
- 人气
- 点
- 下界之星
- 枚
- 最后登录
- 1970-1-1
- 注册时间
- 2016-11-13
来自:广东 | 本帖最后由 Mithey 于 2022-5-8 16:34 编辑
什么是自定义天灾? 自定义天灾是玩家为插件 Deadly Disasters 所制作的天灾,它们具有特性丰富与分享便利的特点。你可以在Discord上提交你所制作的天灾,通过验证后便可出现在插件列表中供其他玩家下载。
如何制作一个自定义天灾? 在 plugins\DeadlyDisasters\custom disasters 路径内创建yml文件并编辑即可。
如何产生自定义天灾? 在游戏内输入 /disasters start <自定义天灾名称> [等级] [玩家名称] 且在 plugins\DeadlyDisasters\custom disasters 路径内有此天灾便可成功执行命令。
重新加载自定义天灾列表 输入 /disasters reload 来进行快速重载列表与测试自定义天灾
设定主体: 若要创作一个自定义天灾,我们开始所需要的是一个设定主体,内容包括一些插件所要获取的基本天灾信息 下面是一个示范的例子:
- # 注释前带'*'的为必须填写项目
- # 注释前带'*'的为必须填写项目 (重要的事情说两遍)
- settings:
- # * 天灾在命令中的代号,请不要使用空格或非英文字符
- name: 'doomsday'
- # * 天灾的显示名称
- title: '&4Doomsday'
- # 天灾显示提示后开始的时间,单位为秒
- start_delay: 10
- # 是否会自然生成(默认为false)
- natural: false
- # 天灾生成的最低Y坐标
- min_height: 0
- # 天灾生成的最高Y坐标
- max_height: 200
- # 天灾开始时的提示(%level_char%为等级颜色代码)
- start_message: '%level_char%Level: %level% &4Doomsday &6is beginning..'
- # 天灾结束时的提示,需要注意的是有关天气的天灾等持续天灾在结束后仍会有效
- ending_message: '&eThe clouds begin to clear..'
- # 天灾自然产生的频率,仅在natural为true时此项生效
- frequency: 1.0
- # * 天灾能发生的区域(世界类型: normal, nether, the_end, custom)
- environments:
- - normal
- # * 执行此天灾所需的最低Minecraft版本(取决于你的自定义天灾中的物品或生物等,有些低版本可能不支持)
- game_version: 1.16
- # * 执行此天灾所需的最低插件版本
- plugin_version: 9.0
复制代码
核心主体: 核心主体包含不同等级的天灾和发生的事件 下面是一个示范例子:
- core:
- level 1:
- operation: 'ordered'
- interval_seconds: 10
- events:
- event 1:
- disaster 1:
- type: 'acidstorm'
- level: 2
- time: 60
- damage: 2.0
- particles: false
- broadcastAllowed: true
- broadcast 1:
- message: '&cYou feel a cold chill down your spine..'
- target: 'all'
- event 2:
- disaster 1:
- type: 'sinkhole'
- size: 0.5
- target: 'player'
- offset: 5
- disaster 2:
- type: 'earthquake'
- level: 3
- force: 0.5
- target: 'player'
- offset: 10
- event 3:
- wait:
- event 4:
- disaster 1:
- type: 'supernova'
- level: 1
- target: 'player'
- level 2:
- operation: 'random'
- number_of_events: 3
- interval_seconds: 9
- events:
- event 1:
- disaster 1:
- type: 'acidstorm'
- level: 2
- time: 60
- damage: 2.0
- particles: true
- event 2:
- disaster 1:
- type: 'sinkhole'
- size: 0.6
- target: 'all'
- offset: 5
- disaster 2:
- type: 'earthquake'
- level: 3
- force: 1.2
- target: 'random'
- targetAmount: 3
- offset: 10
- event 3:
- event 4:
- disaster 1:
- type: 'supernova'
- level: 2
- target: 'random'
- targetAmount: 1
复制代码
让我来解释一下自定义天灾是如何运作的:核心主体中包含天灾的多个等级(Levels),等级内可以包含多个天灾中将发生的事件(Events),每个事件中又可以有多个不同的行为(Actions)。
等级(Levels) 等级选项决定了天灾在特定等级时会发生的情况,如果系统随机到等级3的天灾而你的自定义天灾不包括等级3,则天灾不会发生。 译注:等级最高为6。
- core:
- level 1:
- # operation分为"ordered"与"random"
- # "ordered"代表无论有几个事件,只会执行第一个,即event 1
- # "random"代表会从所有事件中抽取N个执行(N为number_of_events后的个数)
- operation: 'ordered'
- # 间隔时间
- interval_seconds: 10
- # 天灾执行数量,仅在operation为random时有效
- number_of_events: 2
- events:
复制代码
事件(Events) 每个等级选项都包含事件,可以根据需要来加入多个事件,也可以更改事件发生顺序。 下面是一个示范例子:
- events:
- event 1:
- disaster 1:
- type: 'acidstorm'
- level: 2
- time: 60
- damage: 2.0
- particles: false
- broadcastAllowed: true
- broadcast 1:
- message: '&cYou feel a cold chill down your spine..'
- target: 'all'
- event 2:
- disaster 1:
- type: 'sinkhole'
- size: 0.5
- target: 'player'
- offset: 5
- disaster 2:
- type: 'earthquake'
- level: 3
- force: 0.5
- target: 'player'
- offset: 10
- event 3:
- wait:
- event 4:
- disaster 1:
- type: 'supernova'
- level: 1
- target: 'player'
复制代码
行为(Actions) 行为由事件来决定,一个事件中可以有多种行为。 下面是你可以使用的行为列表:
Disasters(天灾)
天灾行为可以对目标执行插件内自带天灾 (不能套娃执行自定义天灾), 必须填写天灾名称。此项中可以更改插件自带天灾的一些细节数值细节(见本帖最下方备注)。
下面是一个高度自定义的天坑范例:- disaster 1:
- # * 类型必须指定
- type: 'sinkhole'
- # 执行该天灾的等级 (不填会默认为随机等级)
- level: 3
- size: 0.5
- # 天灾开始执行的所追踪的目标 (目标类型: 'player', 'random', 'all', 'startPos【该自定义天灾的起始点】') (默认: 'player')
- target: 'player'
- # 天灾可距离目标产生的最远半径(默认: 0)
- offset: 5
复制代码 此行为会造成在自定义天灾开始的玩家半径5个方块内生成3级的sinkhole(天坑)
观察下面的例子可以进一步了解目标追踪功能:- disaster 2:
- type: 'earthquake'
- force: 0.5
- target: 'random'
- # * 如果把目标设定为 'random' ,则必须填写targetAmount后的数量,数值5表示会在5名随机玩家的附近生成earthquake(地震),如果想所有玩家旁边都发生天灾可以请使用类型'all'。
- targetAmount: 5
- # 此处并非上面所说的半径, 在数字前面的`~`可用于表示基于追踪目标的相对坐标
- location:
- x: ~10
- y: 60
- z: ~10
复制代码 此行为会造成在随机五个玩家半径10个方块内(x10 z10)生成3级的earthquake(地震),需要注意的是不加~会导致天灾生成在固定位置
|
Broadcast(提示消息)
提示消息事件会给天灾执行世界内的玩家发送提示:- broadcast:
- message: '&cSkies begin to darken..'
- target: 'all'
复制代码
|
Fill(填充方块)
填充方块事件可以让你填充一片区域的方块:- fill 1:
- target: 'player'
- # 用于完成操作所需要的ticks【20为1秒】,需要根据填充区域大小设置数值否则会导致服务器崩溃 (默认: 0)
- partition: 10
- # 此项为真时仅有固体方块会被填充
- fillSolids: true
- # * 填充区域的第一个坐标(和we一样的对角线计算)
- firstPoint:
- x: ~-50
- y: ~-20
- z: ~-50
- # * 填充区域的第二个坐标
- secondPoint:
- x: ~50
- y: ~0
- z: ~50
- # 填充材料列表,随机占比 (默认: 空气)
- materials:
- - gold_block
- - netherrack
- - cobblestone
- # 是否会被填充的白名单/黑名单
- whitelist:
- - grass
- - dirt
- - stone
复制代码 这会使在天灾正产生的玩家脚下100*100*20(长宽高)区域被金块、下界岩和圆石以随机占比填充,且只有白名单的方块才会被填充。
接下来是一个黑名单的例子:- fill 2:
- target: 'all'
- firstPoint:
- x: ~-10
- y: ~-5
- z: ~-10
- secondPoint:
- x: ~10
- y: ~0
- z: ~10
- blacklist:
- - bedrock
- - obsidian
复制代码 这会使在所有玩家脚下20*20*5(长宽高)区域被空气(默认值)填充,且只有基岩和黑曜石能幸免于难。
|
Summon(召唤生物)
召唤生物行为可以让你创作专属的自定义生物:
- summon 1:
- # 需要生成的实体名称
- type: customZombie
- target: 'player'
- # 实体距离目标生成的半径
- offset: 10
- # 是否强制生成,设置为true会导致即使有方块也生成,设置为false则会生成在方块上的空位 (默认: false)
- force: false
- # 如果此项为true,则生成的生物会立刻以目标为仇恨对象
- setTarget: true
复制代码 这会导致名为customZombie的实体在天灾开始的玩家附近生成,详见下文自定义生物
这是另一个例子:- summon 2:
- type: scaryMob
- target: 'startPos'
- location:
- x: ~10
- y: ~0
- z: ~-10
复制代码 这会导致在自定义天灾起始点十格远的地方生成名为scaryMob的实体
|
Particle(粒子)
粒子行为可以产生粒子来为你的天灾添砖加瓦- particle 1:
- type: 'flame'
- target: 'startPos'
- # 粒子数量
- count: 10
- # 粒子飞行速度
- speed: 0.2
- # 粒子重复展现的次数
- repeat: 5
- # 每次再现的间隔时间(刻)
- intervalTicks: 10
- # range为dx,dy,dz(粒子拓展区域),location为目标的相对区域
- range:
- x: 5
- y: 2
- z: 3
- location:
- x: ~5
- y: ~0
- z: ~5
复制代码 这会导致在天灾产生点附近产生火焰粒子,点此查阅所有粒子类型
|
Sound(音效)
音效行为可以产生音效:- sound 1:
- type: 'block_anvil_land'
- target: 'all'
- volume: 0.5
- # 音调
- pitch: 0.5
- # 音效重复次数
- repeat: 5
- # 重复时间间隔(刻)
- intervalTicks: 60
- location:
- x: ~5
- y: ~0
- z: ~5
复制代码 这会导致在所有玩家附近产生每3秒一次共5次的铁砧音效,点此查阅所有音效类型
|
自定义物品主体: 需要与核心主体分开,每个主体具有相同地位,可以不分前后(除设定主体) 译者注:此物品无法通过命令/disasters give 获得,仅可用于自定义生物上并设定掉落几率
- items:
- # 以物品名称开头来定义多个物品
- # 这会是你用于其他地方填写物品的名称根据
- coolSword:
- # 物品名称
- name: '&6Cool Sword'
- # * 物品显示名字
- type: iron_sword
- hide_enchants: false
- # 物品描述
- lore:
- - '&eThis is line 1'
- - '&bThis is line 2'
- # 附魔主体
- enchantments:
- type 1:
- enchantment: sharpness
- level: 2
- type 2:
- enchantment: unbreaking
- level: 3
- # 物品2
- strongerShield:
- name: '&4Stronger Shield'
- type: shield
- hide_enchants: false
- lore:
- - '&eThis is line 1'
- - '&bThis is line 2'
- enchantments:
- type 1:
- enchantment: unbreaking
- level: 3
复制代码 此主体可以创造两种自定义物品,coolSword和strongerShield,点此查阅兼容物品列表
自定义生物主体: 自定义生物也需要重写新主体:
- entities:
- # 以生物名称开头来定义多个物品
- # 这会是你用于其他地方填写生物的名称根据
- customZombie:
- # 实体类型
- type: zombie
- # 生物显示名字
- name: '&cCustom Zombie'
- equipment:
- # 可以填写原版物品或自定义物品
- mainHand: coolSword
- offHand: strongerShield
- helmet: iron_helmet
- chest: iron_chestplate
- legs: iron_leggings
- boots: iron_boots
- dropChances:
- # 装备掉落几率,默认为0.1(10%)
- mainHand: 1.0
- offHand: 0.5
- helmet: 0.1
- chest: 0.1
- legs: 0.1
- boots: 0.1
- health: 30
- # 移动/飞行速度
- speed: 0.3
- # 索敌范围
- range: 50
- # 击退效果
- knockback: 1.0
- # 基础伤害
- damage: 6.0
- # 抗击退效果
- resistance: 3.0
- # 生物2
- scaryMob:
- type: skeleton
- name: '&cCustom'
- equipment:
- mainHand: bow
- helmet: chainmail_helmet
- chest: chainmail_chestplate
- legs: chainmail_leggings
- boots: chainmail_boots
- dropChances:
- mainHand: 1.0
- helmet: 0.1
- chest: 0.1
- legs: 0.1
- boots: 0.1
- health: 15
- speed: 0.3
- range: 50
- knockback: 1.0
- damage: 6.0
- resistance: 3.0
复制代码 点此查看兼容生物列表
目录主体: 自定义天灾必须要有目录主体来显示信息
- catalog:
- # 用来表示你的天灾的原版物品
- item: 'lava_bucket'
- # 是否显示附魔效果
- enchanted: false
- description: '&eExample disaster to show you how to create custom disasters'
- # 你的ID
- author: 'davidclue'
复制代码
![]()
备注 每种天灾都有独特的详细设定,可以通过定义来改变天灾行为(Actions)的工作方式。例子如下:
- disaster 1:
- type: 'supernova'
- level: 2
- # 以下为超新星爆发的详细设定
- size: 3.5
- particleType: falling_water
- flash: false
- volume: 0.5
- # 超新星爆炸后留下的方块,原版是黑曜石和陶瓦
- materials:
- - water
- - dirt
- - sand
复制代码
这个天灾会是一个独特的超新星爆发,它有着水滴粒子,而且会剩下水、泥土和沙子在周围。这些属性只有超新星爆发具有,而其他天灾也有它们独特可更改的属性。接下来举一个进阶版陨石雨的例子:
- disaster 2:
- type: 'meteorshower'
- level: 4
- time: 30
- night: false
- spawnRate: 5
- particleType: water_bubble
- maxMeteors: 10
- normalMeteor:
- material: obsidian
- generateOres: false
- minSize: 4
- maxSize: 10
- speed: 0.8
- explodingMeteor:
- material: lava
- damage: 5
- minSize: 2
- maxSize: 5
- speed: 2.5
- splittingMeteor:
- material: gravel
- impactSpeed: 3
- minSize: 3
- maxSize: 6
- speed: 2
复制代码
下面是所有天灾目前可用的详细设定,值设定为cfg则表示将应用插件文件中config.yml的值 Sinkhole- # 规模系数
- size: cfg
- # 方块更新速度,改变天坑的成型下落速度
- tickSpeed: cfg
- # 声音倍数
- volume: cfg
复制代码 |
Earthquake- size: cfg
- # 让生物摔到地上的严重程度
- force: cfg
- # 地震长度
- length: levelBased
- # 地震宽度
- width: levelBased
- # 地震可以偏离其路径的程度。数字越大,自然生成的地震就越多,但会有更多的区块被略过
- tilt: cfg
- volume: cfg
复制代码 |
Supernova- size: cfg
- # 每个方块生成粒子的概率
- particleChance: cfg
- # 显示的粒子种类
- particleType: explosion_huge
- # 靠近玩家是否会显示闪光特效
- flash: true
- volume: cfg
- # 组成超新星的方块,占比随机
- materials:
- - obsidian
- - black_concrete
- - fire
复制代码 |
Cave In- size: cfg
- # 方块掉落层数
- depth: levelBased
- # 方块下落速度
- fallSpeed: -0.5
- volume: cfg
- # 材质列表,如果定义了在塌方时落下的方块将会变成这里面随机的一种
- materials: null
复制代码 |
Geyser- # 间歇泉宽度
- width: 1
- # 间歇泉喷发量
- amount: levelBased
- # 间歇泉喷发对玩家造成的伤害
- damage: cfg
- # 喷发的材质
- material: water 或者 lava
- # 间歇泉更新速度,会影响移动速度
- tickSpeed: 1
- # 玩家被波及后的上升速度
- velocity: 3.0
- # 在间歇泉附近展示的粒子
- particleType: falling_water 或者 falling_lava
- # 喷发最低能到达的高度
- minReach: 100
- # 喷发最高达到的高度
- maxReach: 256
- # 间歇泉随机生成距离
- range: levelBased
- volume: cfg
- # 音效
- sound: block_fire_extinquish
- # 间歇泉生成时间间隔
- spawnTicks: 10
复制代码 |
Hurricane- size: cfg
- # 飓风持续时间
- time: cfg
- # 闪电频率
- lightning: cfg
- # 方块破坏所需强度的最小值
- blockForce: cfg
- # 飓风强度最小值
- minForce: levelBased
- # 飓风强度最大值
- maxForce: levelBased
- # 显示的粒子种类
- particleType: cloud
- volume: cfg
复制代码 |
Purge- # 需要清除多少生物才能结束
- maxEntities: cfg
- # 是否显示boss条
- showBar: cfg
- # boss条标题
- barTitle: cfg
- # boss条颜色
- barColor: red
- # 每个怪物距离目标玩家的生成距离
- spawnDistance: cfg
- # 怪物生成间隔(刻)
- spawnTickSpeed: cfg
- # 怪物潮结束后怪物消失的时间限制
- despawnSpeed: cfg
- # 怪物潮结束后的信息通知
- endMessage: cfg
- volume: cfg
复制代码 |
Tornado- size: cfg
- # 龙卷风持续时间
- time: cfg
- # 在龙卷风内的方块的最多值
- maxBlocks: cfg
- # 将生物和方块卷入的强力值
- pullForce: levelBased
- # 龙卷风内方块和生物的上升速度
- yVelocity: 0.35
- # 移动速度倍率
- speed: cfg
- # 方块在龙卷风中能达到的最高点
- height: levelBased
- # 每个方块粒子生成概率
- particleChance: cfg
- # 龙卷风宽度
- width: cfg
- # 粒子类型
- particleType: cloud
- volume: cfg
- materials: null
复制代码 |
Tsunami- size: cfg
- # 海啸能到的最高高度
- height: levelBased
- # 对生物造成的伤害
- damage: cfg
- # 海啸移动速度
- tickSpeed: 1
- # 是否要在结束后使液体消失
- removeLiquid: cfg
- # 是否取消附近需要有海洋的限制以强制产生海啸
- ignoreOcean: false
- # 海啸中液体的材质
- liquidMaterial: water
- # 粒子种类
- particleType: water_bubble
- # 海啸生成的最浅深度
- minDepth: cfg
- volume: cfg
- # 在被卷入海啸生物附近会形成的方块列表
- materials:
- - sand
- - dirt
复制代码 |
Acidstorm- time: cfg
- # 酸雨是否会融化物品
- melt_items: cfg
- # 是否会融化在玩家身上的盔甲
- melt_armor: cfg
- # 酸雨对生物造成的伤害
- damage: cfg
- # 是否生成粒子
- particles: cfg
- volume: cfg
- # 灾害开始时是否显示提示
- broadcastAllowed: false
复制代码 |
Blizzard- time: cfg
- # 生物被冻成冰棍或直接死亡
- freezeMobs: cfg
- # 穿皮革是否会受到保护
- leatherProtect: cfg
- volume: cfg
- broadcastAllowed: false
复制代码 |
Endstorm- # 天灾持续时间
- time: cfg
- # 一次性存在的实体数量上限
- maxEntities: cfg
- # 随机传送的方块距离
- teleportRange: cfg
- volume: cfg
- broadcastAllowed: false
复制代码 |
ExtremeWinds- time: cfg
- # 狂风最大风力值
- force: cfg
- # 粒子类型
- particleType: cloud
- # 玩家身边粒子数量最大值
- maxParticles: cfg
- # 摧毁方块所需的力量最小值
- blockForce: cfg
- volume: cfg
- broadcastAllowed: false
复制代码 |
Meteoshower- time: cfg
- # 是否将时间变成夜晚
- night: cfg
- # 陨石雨粒子轨迹
- particleType: smoke_large
- # 陨石落地后是否有烟雾尾气
- smokeTime: cfg
- # 每秒降落在玩家附近的陨石几率(默认为1/7)
- spawnRate: 7
- # 一次性最多降落的陨石
- maxMeteors: cfg
- volume: cfg
- broadcastAllowed: false
- # 下列三种陨石雨类型都可以如下修改
- normalMeteor:
- # 这种类型是否生成
- allowed: true
- # 陨石雨材质
- material: deepslate 或者 stone
- # 陨石落地后是否产生矿石
- generateOres: true
- # 速度倍率
- speed: 1.0
- # 最小陨石规模
- minSize: 2
- # 最大运势规模
- maxSize: 6
- explodingMeteor:
- allowed: true
- material: magma_block
- # 爆炸范围内对生物造成的伤害
- damage: 10.0
- speed: 1.0
- minSize: 2
- maxSize: 6
- splittingMeteor:
- allowed: true
- material: calcite OR diorite
- # 陨石落地后地上方块飞出的速度
- impactSpeed: 1.0
- speed: 1.0
- minSize: 2
- maxSize: 6
复制代码 |
Sandstorm- time: cfg
- # 自定义生物是否生成
- customMobs: cfg
- # 玩家处在天灾中是否受到凋零效果伤害
- wither: cfg
- # 沙尘暴结束后生物是否会在地上掉落头颅
- skulls: cfg
- volume: cfg
- broadcastAllowed: false
复制代码 |
Soulstorm- time: cfg
- # 自定义生物是否生成
- customMobs: cfg
- volume: cfg
- broadcastAllowed: false
复制代码 |
授权证明 ![]()
|
|