优点:多人兼容,可以在服务器使用,而且不会被因飞行踢出服务器(但要开启命令方块),对方可以不需要创造(不要提醒我可以用旁观者模式)
缺点:有几个物品可能会无法使用(就是被用来检测的物品),可能没有开创造飞行那么方便
*下面需要你有积分板命令知识基础,如果你还不怎么了解积分板可以去这里看看
*此教程适用于1.9以上(版本拥有悬浮buff功能)
第一步:
你要先想好这些功能要怎么触发,所有触发条件可以来这里查找
至少要4个触发条件,我选择的是:末影之眼(上升),鸡蛋(悬浮),雪球(下降),萝卜钓竿(取消飞行)
不建议使用放置方块来触发积分板,因为会对地图造成损坏
指令:
/scoreboard objectives add [名称] stat.useItem.minecraft.[触发物品]
复制代码
我填写的是:
/scoreboard objectives add up_eye stat.useItem.minecraft.ender_eye
/scoreboard objectives add stop_egg stat.useItem.minecraft.egg
/scoreboard objectives add down_ snowball stat.useItem.minecraft.snowball
/scoreboard objectives add stop stat.useItem.minecraft.carrot_on_a_stick
复制代码
还要设置一个管理玩家飞行状态的积分板
/scoreboard objectives add [名称] dummy
复制代码
第二步:
设置命令方块,使用give @p command_block获取最基本的命令方块
思路:
第一个高频命令方块作用:让所有相应触发器的玩家分数变成相应的飞行状态
第二个连锁条件制约命令方块作用:将玩家消耗掉的物品重新还给玩家(如果你所用的触发器所侦测的物品可以不被消耗则不需要此命令方块)
第三个连锁条件制约命令方块作用:清除玩家右键后发射出的物品(如果你触发器所侦测的物品右键不会发射出物品则不需要此命令方块)
第四个连锁条件制约命令方块作用:重置玩家相应积分板的分数,让第一个命令方块可以重新侦测玩家
第五个连锁条件制约命令方块作用:清除玩家的悬浮(这命令方块还有点问题,在多人下,如果有一个玩家改变的飞行状态,那么其他所有在同一个飞行状态下的玩家都会被取消悬浮一次,但对于整体的命令没有多大的影响,只是会让玩家下沉一点,如果有知道怎么解决的可以留言)
第六个高频命令方块作用:给相应飞行状态的玩家相应的buff
额外的第七个连锁,条件制约命令方块作用,给予相应飞行状态下的玩家跳跃提升255等级,防止在下降时摔死
详细命令:
上升:
1.execute @a[score_up_eye=1] ~ ~ ~ /scoreboard players set @S fly 1
2.give @a[score_up_eye=1] minecraft:ender_eye
3.kill @e[type=eye_of_ender_signal]
4.scoreboard players reset @a up_eye
5.effect @e[score_fly=1,score_fly_min=1] 25 0
6.effect @e[score_fly=1,score_fly_min=1] 25 1 0 true
复制代码
悬浮
1.execute @a[score_stop_egg=1] ~ ~ ~ /scoreboard players set @s fly 2
2.give @a[score_stop_egg=1] egg
3.kill @e[type=egg]
4.scoreboard players reset @a stop_egg
5.effect @e[score_fly=2,score_fly_min=2] 25 0
6.effect @e[score_fly=2,score_fly_min=2] 25 1 255 true
复制代码
下降
1.execute @a[score_down_snowball=1] ~ ~ ~ /scoreboard players set @s fly 3
2.give @a[score_down_snowball=1] minecraft:snowball
3.kill @e[type=snowball]
4.scoreboard players reset @a down_snowball
5.effect @e[score_fly=3,score_fly_min=3] 25 0
6.effect @e[score_fly=3,score_fly_min=3] 25 1 252 true
7.effect @e[score_fly=3,score_fly_min=3] minecraft:jump_boost 1 255 true
复制代码
取消飞行
1.execute @a[score_stop=1] ~ ~ ~ /scoreboard players set @s fly 0
2.scoreboard players reset @a stop
复制代码
现在只要手里有这些物品,然后右键就可以随时升起或降落啦。
教程已结束,以上由本人自己构想出来,还是可能有很多bug或有更简单的实现方法,如果有什么解决方法可以在下面留言或私信,谢谢!
改进方法:
我之前也有想过怎么样使这些功能更易使用,我想过侦测玩家跳跃和潜行来达到上升和下降的目的,但是跳跃触发器在漂浮buff下是不会生效的其他貌似没有可以侦测玩家按空格的触发器,所以这个方法泡汤了。
可用的方案:
如果想让一些玩家可触发飞行效果,而另一些玩家可以正常使用这些物品,可以先创建一个团队,让允许飞行或要正常使用物品的玩家加入这些团队,然后在第一个命令方块选择器的选择器中选择——不选择这个团队内的玩家或只选择这个团队内的玩家。