本帖最后由 Aegean_ 于 2022-9-18 02:13 编辑
BossBar: #boss血条能让玩家更清楚情况
Enabled: true
Range: 500
Color: GREEN
Style: SEGMENTED_1
Title: '&e剩余怪物数量:&a<mob.score.sc> &e当前波数:&a<mob.score.num>'
Skills:
- skill{s=关卡启动} @self ~onTimer:1
Options:
NoAI: true
Despawn: false
Silent: true
ApplyInvisibility: true
#像这样就有了一个无敌的怪来提供计分板了
②写"关卡启动"技能
关卡启动:
Skills:
- skill{s=第一波}
- skill{s=第二波}
- skill{s=结算}
#按自己的需求来更改
接下来是每一波的具体技能:
第一波:
Cooldown: 30 #尽量避免卡出2次技能而写的cd
Conditions: #计分板数值检测
- score{objective=num;value=0}
Skills:
- modifytargetscore{objective=num;action=add;value=1} @self #波数计分板
- modifytargetscore{objective=sc;action=set;value=10} @self #剩余怪物数量计分板
- delay 100 #回合冷却
- sendtitle{title="&c&l第<mob.score.num>波";subtitle="";d=60} @world #给予玩家提示
- summon{sio=false;sip=false;t=怪物;a=10;r=3} @location{c=x,y,z} #在指定坐标刷10只怪
第二波:
Cooldown: 30
Conditions:
- score{objective=num;value=1} #由于前面加个一次num计分板了,所以数值要+1
- score{objective=sc;value=0} #除去第一波后面每一波都要检测剩余怪物数量
Skills:
- modifytargetscore{objective=num;action=add;value=1} @self
- modifytargetscore{objective=sc;action=set;value=15} @self
- delay 100
- sendtitle{title="&c&l第<mob.score.num>波";subtitle="";d=60} @world
- summon{sio=false;sip=false;t=怪物;a=15;r=3} @location{c=x,y,z}
结算:
Cooldown: 30
Conditions:
- score{objective=num;value=3}
- score{objective=sc;value=0}
Skills:
- modifytargetscore{objective=num;action=add;value=1} @self
- sendtitle{title="&2&l你获得了胜利";subtitle="";d=60} @world
- delay 60
- remove @self
提醒:将更改计分板数值的技能放在第一位
③写"怪物"
怪物:
Type: zombie
Health: 20
Damage: 4
Modules:
ThreatTable: true
Skills:
- skill{s=怪物数量计算} @self ~onDeath
Options:
PreventOtherDrops: true
Despawn: false
④写"怪物数量计算"技能
怪物数量计算-减少:
Skills:
- delay 10 #这个延时能缓解怪物死亡放不出技能的问题
- modifytargetscore{objective=sc;action=SUBTRACT;value=1} @MIR{t=全局检测怪;r=500} #sc计分板数值-1
再来总结一下:
创建一个全局检测的怪物,在它身上加上num和sc这两个计分板
num计分板是波数,sc是每波剩余怪物
每回合开始时,num+1,即波数+1
检测到sc=0,即剩余怪物数量=0时,开启下一波
怪物死亡后触发技能,使sc-1,即剩余怪物数量-1
后话:
本帖仅仅展示了最基础的框架部分
其实还有很多功能可以扩展
比如说每个波数固定时间
每波结束后给予一定的奖励…
大家发挥下自己的脑洞叭!
波次刷怪副本
前言:
波次刷怪方式一般能在塔防游戏,还有些肉鸽游戏遇到
比如击杀10只怪物,可结束当前波次,开启下一波次
这个方式能够用一些副本插件,如dp地牢实现
不过用mm做也可以实现,而且能加上更多东西
原理:
modifytargetscore 这是mm的一个计分板技能
我们会使用它去控制整个波次刷怪系统
它拥有的分选项为:
- objective=记分板名
- action=算法
算法包括:
SET(设置)
ADD(加)
SUBTRACT(减)
MULTIPLY(乘)
DIVIDE(除)
MOD(除以后取余)
- value=修改值
例如: modifytargetscore{objective=num;action=set;value=1}
#我们就创建了一个名为num,值为1的计分板
思路:
击杀怪物→怪物死亡变化计分板数值→检测计分板数值→检测成功后开启下一波
正式讲解:
①首先要有一个怪物携带计分板进行全局检测
全局检测怪:
Type: pigBossBar: #boss血条能让玩家更清楚情况
Enabled: true
Range: 500
Color: GREEN
Style: SEGMENTED_1
Title: '&e剩余怪物数量:&a<mob.score.sc> &e当前波数:&a<mob.score.num>'
Skills:
- skill{s=关卡启动} @self ~onTimer:1
Options:
NoAI: true
Despawn: false
Silent: true
ApplyInvisibility: true
#像这样就有了一个无敌的怪来提供计分板了
②写"关卡启动"技能
关卡启动:
Skills:
- skill{s=第一波}
- skill{s=第二波}
- skill{s=结算}
#按自己的需求来更改
接下来是每一波的具体技能:
第一波:
Cooldown: 30 #尽量避免卡出2次技能而写的cd
Conditions: #计分板数值检测
- score{objective=num;value=0}
Skills:
- modifytargetscore{objective=num;action=add;value=1} @self #波数计分板
- modifytargetscore{objective=sc;action=set;value=10} @self #剩余怪物数量计分板
- delay 100 #回合冷却
- sendtitle{title="&c&l第<mob.score.num>波";subtitle="";d=60} @world #给予玩家提示
- summon{sio=false;sip=false;t=怪物;a=10;r=3} @location{c=x,y,z} #在指定坐标刷10只怪
第二波:
Cooldown: 30
Conditions:
- score{objective=num;value=1} #由于前面加个一次num计分板了,所以数值要+1
- score{objective=sc;value=0} #除去第一波后面每一波都要检测剩余怪物数量
Skills:
- modifytargetscore{objective=num;action=add;value=1} @self
- modifytargetscore{objective=sc;action=set;value=15} @self
- delay 100
- sendtitle{title="&c&l第<mob.score.num>波";subtitle="";d=60} @world
- summon{sio=false;sip=false;t=怪物;a=15;r=3} @location{c=x,y,z}
结算:
Cooldown: 30
Conditions:
- score{objective=num;value=3}
- score{objective=sc;value=0}
Skills:
- modifytargetscore{objective=num;action=add;value=1} @self
- sendtitle{title="&2&l你获得了胜利";subtitle="";d=60} @world
- delay 60
- remove @self
提醒:将更改计分板数值的技能放在第一位
③写"怪物"
怪物:
Type: zombie
Health: 20
Damage: 4
Modules:
ThreatTable: true
Skills:
- skill{s=怪物数量计算} @self ~onDeath
Options:
PreventOtherDrops: true
Despawn: false
④写"怪物数量计算"技能
怪物数量计算-减少:
Skills:
- delay 10 #这个延时能缓解怪物死亡放不出技能的问题
- modifytargetscore{objective=sc;action=SUBTRACT;value=1} @MIR{t=全局检测怪;r=500} #sc计分板数值-1
再来总结一下:
创建一个全局检测的怪物,在它身上加上num和sc这两个计分板
num计分板是波数,sc是每波剩余怪物
每回合开始时,num+1,即波数+1
检测到sc=0,即剩余怪物数量=0时,开启下一波
怪物死亡后触发技能,使sc-1,即剩余怪物数量-1
后话:
本帖仅仅展示了最基础的框架部分
其实还有很多功能可以扩展
比如说每个波数固定时间
每波结束后给予一定的奖励…
大家发挥下自己的脑洞叭!
感谢分享,讲解的很详细
我记得mythicmobs有自定义全局变量可以不用单独生成一个生物给变量
TUCAOEVER 发表于 2022-8-13 10:17
我记得mythicmobs有自定义全局变量可以不用单独生成一个生物给变量
意思是不用生物作为载体吗,这我不太清楚
Aegean_ 发表于 2022-8-13 10:37
意思是不用生物作为载体吗,这我不太清楚
https://git.mythiccraft.io/mythi ... is/Skills/Variables
找了好久终于找到写这个的了 好评
作者好强作者好强作者好强
我很好奇这个第二波的监测数值怎么会是2呢 会导致第一波结束后不会进行第二波
- score{objective=num;value=2} #由于前面加个一次num计分板了,所以数值要+1
- score{objective=num;value=2} #由于前面加个一次num计分板了,所以数值要+1
这个妙啊,学到了学到了
打卡 我想做深渊副本的 不想用dp来做波次 因为不想去学= = 然后我就用技能来实现 我的思路跟你差不多 就是不知道怎么写得分什么的 看了你这个之后就实现了我要的功能