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

minecraft如何用更好指令实现二段跳(可详细解析java1.13+适用)

2023-07-09 22:36 作者:春天里的death  | 我要投稿

在这里我先介绍一下我的思路

如果您恰好有兴趣,可以先了解一下思路,但如果没兴趣也可以往下翻,去看详细说明后直接复制到游戏里也可以。

以胡萝卜钓竿为主控端,随后去检测玩家到地板上是y轴动量为0,则Motion[1]约等于-784则获最重要的一步,当然也可以直接用OnGround代替,但是指令的二段跳效果要好的是漂浮,需要在动量到达一定时在去跳跃就会显得更具有特性,不会失去原有活

总体就是在y轴动量趋于0时获得漂浮,xz轴也不会失活如下图

则之后的漂浮就很好解释了,漂浮时间就只有几刻,然后直接清掉就行了,正常应该都是可以做的到的,主要就是要搞懂其动量趋近于0就行,就是斜率为0咯,效果如上图还是很好的效果的,我还做了其他的辅助进行操作,比如可视化的经验cd

就是可进行二段跳时则就是满的,反之则空,且不能频繁二段,当然你要是能看得懂我的你也可以进行修改也可以询问我

接下来直接抄就行了

橙色为一次性,用普通命令方块手打

紫色为循环的,用循环命令方块

青色为连锁的,用连锁命令方块

先创个计分板

/scoreboard objectives add carrot minecraft.used:minecraft.carrot_on_a_stick

/scoreboard objectives add jump dummy "time"

/scoreboard objectives add Motion1 dummy "Motion[1]"


获取命令方块:/give @s command_block

之后直接塞命令方块:

在地板上禁止用钓竿:/execute as @a[scores={carrot=1..},level=100,nbt={OnGround:1b}] at @s run scoreboard players set @s carrot 0

二段跳粒子效果:   / execute as @a at @s if score @s jump matches 1 run particle minecraft:firework ~ ~ ~ 0 0 0 0.03 8 normal @a

获取玩家在y轴的动量:execute as @a at @s store result score @s Motion1 run data get entity @s Motion[1] 10000

跟经验值有关的计数cd:

在100级时,满经验点为742点,因此可视化用741:

execute as @a[level=100,nbt={OnGround:1b}] run experience set @s 741 points

在空中时禁止恢复的状态,需要在地板上持续恢复状态才可进行跳跃

execute as @a[level=0,nbt={OnGround:0b}] run experience set @s 0 points

这里是在地板上的恢复速度,数值可选1~8:

execute as @a[nbt={OnGround:1b},level=0] run experience add @s 1 points

恢复满后恢复成100级

execute as @a[nbt={OnGround:1b},level=1..98] run experience set @s 100 levels

使用二段跳后降为0则无法使用二段跳:(此处为需要连锁

连锁就是你先我后的顺序,只有前面完成了指令才可以进行下一步

execute as @a[level=99] run experience set @s 0 points

execute as @a[level=99] run experience set @s 0 levels

在这里就需要趋近于0的需求了,在这里总区间获得标记(tag)

execute as @a[scores={carrot=1..,Motion1=..-783},level=100,nbt={OnGround:0b}] at @s run tag @s add jump

execute as @a[scores={carrot=1..,Motion1=-785..130},level=100,nbt={OnGround:0b}] at @s run tag @s add jump


主体:(但实际上所有指令相辅相}注意连锁命令方块

1.execute as @a[tag=jump] run scoreboard players add @s jump 1

2.execute as @a at @s if score @s jump matches 1 run effect give @s minecraft:levitation 1 26 true

3.execute as @a at @s if score @s jump matches 3.. run effect clear @s minecraft:levitation

4.这里的值可以适当修改想要X段跳,则把数值改成{y|y=742/X}:

   execute as @a at @s if score @s jump matches 1 run experience add @s -742 points

5.execute as @a at @s if score @s jump matches 3.. run scoreboard players set @s carrot 0

6.execute as @a at @s if score @s jump matches 3.. run tag @s remove jump

7.execute as @a at @s if score @s jump matches 3.. run scoreboard players set @s jump 0

输完这些你就会获得这样的总体趋势,注意命令方块的方向连锁

此处所有命令方块都用保持开启反正看懂的话就一点也不麻烦了呢qwq

随后你就完成了所有,只需要把胡萝卜钓竿从背包里拿出来就行了,当然如果你会一点的话也可以把胡萝卜钓竿打上标签,我这里为了那些不是很懂的人也就舍去了物品的标签

以上总体大概就是我的想法了,其实已经算是机制上够完整了,就是一条我暂时没办法修改的一种机制作为火箭跳夹在特性当中,虽然所有的漂浮类二段跳一般都存在火箭跳的机制,但我这里也算是极大缩小了其概率,但依然存在问题,也望各位佬佬指点指点

minecraft如何用更好指令实现二段跳(可详细解析java1.13+适用)的评论 (共 条)

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