跳到主要内容

动作:环境与规则

这一页的动作改变整场副本的环境:天气、时间、副本规则(能不能破坏方块、PVP……),以及计分板的「目标」和王条文字。 这些动作都是对整场副本生效,不看 @对象。每个动作的格式说明见 怎么看这几页动作说明。

weather 天气​

改副本里玩家看到的天气。只影响副本里的人,不会改到世界的天气。

简写:weather 天气

完整写法:$weather{type=thunder}

参数必填说明
第 1 个 / type(或 weather)是clear 晴天 / rain 下雨 / thunder 雷雨(会不时在玩家附近闪电,只有效果)
monster.yml
霜烬守卫:
start:
- "title &4霜烬守卫||&7它醒了"
- "weather thunder"
end:
- "weather clear"
trigger.yml
走出洞穴:
type: enter
region: 山顶
once: true
script:
- "weather rain"
- "subtitle &7外面下起了雨"

注意:开场的天气写在 config.yml 的 environment.weather;中途重连的人会套用最新的天气。

time 时间​

改副本里玩家看到的时间,并固定在这个时间(不会继续走)。

简写:time 时间

完整写法:$time{value=night}

参数必填说明
第 1 个 / time(或 value)是day(1000)/ noon(6000)/ night(13000)/ midnight(18000)/ 直接写数字 0~24000 / reset = 回到世界原本的时间
monster.yml
亡灵领主:
start:
- "time midnight"
- "title &5午夜降临"
end:
- "time day"
script.yml
黄昏:
- "time 12500"

setting 副本规则​

改这一场的副本规则(DungeonPlus 的 $setting),例如在某个房间允许破坏方块、Boss 战开启 PVP。改动只到这一场结束。

简写:setting 规则=值 [规则=值 …],或只有一项时 setting 规则 值

DungeonPlus 写法:$setting{break=false;place=false;pvp=false;mode=ADVENTURE} @init

参数必填说明
规则名称 = true / false是可以一次写好几项。值只认 true,其它(包括 yes)都当成 false
mode(或 gamemode)否整场的游戏模式:SURVIVAL / ADVENTURE / CREATIVE。活着的人立刻切换,之后复活、重连也用这个模式

可以改的规则(默认值是全服 config.yml 没改时的值,副本的 config.yml 也可以在 rules 里覆写,见 副本规则):

规则别名管什么默认
block-breakbreak破坏方块false
block-placeplace放置方块false
explosion-block-damage爆炸破坏方块false
pvp队友互相伤害false
item-drop丢物品true
item-pickup捡物品true
hunger饱食度下降true
ender-pearl末影珍珠false
chorus-fruit紫颂果传送false
elytra鞘翅false
firework-boost烟花加速false
riptide激流三叉戟false
wind-charge风弹false
totem不死图腾false
ender-chest末影箱false
buckets使用桶false
vehicles船、矿车等载具false
leash拴绳false
spawn-eggs刷怪蛋false
throw-eggs扔鸡蛋false
fire点火、火蔓延false
explosivesTNT 等爆炸物false
flight飞行false
frames-and-stands物品展示框、盔甲架、画false
trample踩坏耕地false
bed-and-anchor床、重生锚false
mob-drops怪物掉落物true
sun-burn亡灵怪白天燃烧false
trigger.yml
进入矿洞:
type: enter
region: 矿洞
once: true
script:
- "setting break=true"
- "message &e这里的矿石可以挖!"
monster.yml
决斗场:
start:
- "setting pvp true"
- "title &c决斗开始||&7队友之间可以互相攻击"
end:
- "setting pvp false"
before.yml
script:
- "$setting{break=false;place=false;mode=ADVENTURE} @init"

注意:

  • 规则名称写错时控制台会提示「不认识的规则」。
  • DungeonPlus 的 rejoin、quit-number-limit 不在这里设,请改用 config.yml 的掉线设置(disconnect)。
  • break=false(或 place=false)时其他方块挖不掉,但开着的 type: break(type: place)触发组所指定的方块(它的点位 / 区域里,种类也符合) 仍然可以挖 / 放,并且会触发。所以用「挖方块」做机关时不用打开 break;只要注意冒险模式挖不动方块,要把游戏模式改成 SURVIVAL(setting mode=SURVIVAL 或 environment.gamemode),见 触发组。

setmap(不需要)​

DungeonPlus 用 $setmap{name=地图} @init 在开场前选地图。本插件的地图写在 config.yml 的 map,副本开始前就已经贴好, 所以 setmap 不会做任何事(开启 debug 时控制台会提示)。从 DungeonPlus 搬过来时可以直接删掉这一行。

DungeonPlus 写法:$setmap{name=地牢地图} @init

对象:不看 @对象。

config.yml
map: frost_temple # 在这里指定地图,不用 setmap

objective 目标​

改计分板、王条上显示的「目标」文字(变量 {objective})。

简写:objective 文字 / objective reset

完整写法:$objective{text=前往冰之祭坛}

参数必填说明
第 1 个起的整段 / text是目标文字,可以用 {…} 变量(会即时更新)。写 reset 或留空 = 清掉,显示「没有目标」的默认文字
monster.yml
前厅卫兵:
end:
- "obstacle open 大门"
- "objective &f前往冰之祭坛(右键)"
trigger.yml
收集碎片:
type: enter
region: 碎片洞窟
once: true
script:
- "objective &f收集寒冰碎片 &b{v:碎片}&f/3"

注意:

  • 怪物组开始时会把目标换成它自己的 objective,打完后清掉;所以怪物组打完后要显示的下一个目标,写在它的 end 里。
  • 目标文字里的 {…} 会即时代入,但没有「某位玩家」可以代入 %…%,PlaceholderAPI 变量请改放在计分板的其他行。

bossbar 王条文字​

把王条(Boss 血条)上的文字换成自己写的,适合剧情阶段的提示。

简写:bossbar 文字 / bossbar reset

完整写法:$bossbar{text=&b冰封仪式进行中……}

参数必填说明
第 1 个起的整段 / text是王条文字。写 reset 或留空 = 回到默认(显示目标与时间)
trigger.yml
启动仪式:
type: interact
point: 仪式祭坛
once: true
script:
- "bossbar &b冰封仪式进行中……守住祭坛!"
- "task start 仪式计时"
task.yml
仪式计时:
auto-start: false
timeline:
60:
- "bossbar reset"
- "message &a仪式完成!"

注意:

  • 要 config.yml 的王条是开着的(bossbar.enabled: true)才看得到。
  • 场上有标记为 boss 的怪活着时,王条显示 Boss 血量,优先于这里的文字;Boss 死了才会显示这里的文字。
  • 王条文字不会代入变量(写 {v:碎片} 会原样显示)。需要会变的数字,用 objective(默认王条会显示目标)。