本帖最后由 tedu1234113 于 2022-1-7 11:48 编辑
最近在做不要跳跑酷的时候遇到了点问题:
一开始的时候用跳跃127来限制跳跃,结果跳跃127他有一些特性:站在黏液块上空格会蹦跶老高、疾跑时按空格可以突然加速一下
我也想过在玩家头顶上setblock屏障方块,但是我的需求是部分玩家(比如有tag的,加入队伍的)不能跳跃,屏障可能会导致其他玩家跑步的时候受阻
我想问问大佬有没有不用跳跃127的方法限制部分玩家禁止跳跃(可以用数据包/原版指令,但不能用mod、插件实现该需求,如果纯命令能实现需求那就再好不过了),或者跳跃的改进方案
最近在做不要跳跑酷的时候遇到了点问题:
一开始的时候用跳跃127来限制跳跃,结果跳跃127他有一些特性:站在黏液块上空格会蹦跶老高、疾跑时按空格可以突然加速一下
我也想过在玩家头顶上setblock屏障方块,但是我的需求是部分玩家(比如有tag的,加入队伍的)不能跳跃,屏障可能会导致其他玩家跑步的时候受阻
我想问问大佬有没有不用跳跃127的方法限制部分玩家禁止跳跃(可以用数据包/原版指令,但不能用mod、插件实现该需求,如果纯命令能实现需求那就再好不过了),或者跳跃的改进方案
给玩家一个强度为200的漂浮buff,怕摔死的话再给个强度为1的缓降
Epresin 发表于 2022-1-6 01:16
给玩家一个强度为200的漂浮buff,怕摔死的话再给个强度为1的缓降
缺点是下落变得很快
本帖最后由 Zapic 于 2022-1-6 03:02 编辑
也许可以换个思路, 一旦跳跃即视为出局, 而不是阻止玩家去跳跃.
检测是否跳跃的方法有很多, 比如inGround属性, 或者用记分板的统计数据来检查.
部分玩家直接用选择器去选择, @a[tag=xxx]或者什么乱七八糟的, 可以很轻松的过滤掉.
你非要setblock你就得考虑清理方块和tp的情况, 这种情况处理起来开销貌似会非常大以及非常繁琐, 也难以做到万无一失.
或者用inGround属性+楼上说的漂浮200的debuff, 在地上就加上不在地上就清除掉, 可以避免下落过快的问题
*统计项的事情我记得不大清楚, 刚刚查了一下记分板可能不能统计跳跃.
也许可以换个思路, 一旦跳跃即视为出局, 而不是阻止玩家去跳跃.
检测是否跳跃的方法有很多, 比如inGround属性, 或者用记分板的统计数据来检查.
部分玩家直接用选择器去选择, @a[tag=xxx]或者什么乱七八糟的, 可以很轻松的过滤掉.
你非要setblock你就得考虑清理方块和tp的情况, 这种情况处理起来开销貌似会非常大以及非常繁琐, 也难以做到万无一失.
或者用inGround属性+楼上说的漂浮200的debuff, 在地上就加上不在地上就清除掉, 可以避免下落过快的问题
*统计项的事情我记得不大清楚, 刚刚查了一下记分板可能不能统计跳跃.
本帖最后由 tedu1234113 于 2022-1-6 13:41 编辑
计分板好像可以统计飞行时间(悬空时间)我主要是想完全禁用掉跳跃键,不过你这种方法应该也可以,我回头试试。
我刚刚试了试,漂浮200还是能跳起来(就是有跳起来的迹象,两者混用的效果仍然不太理想..)
Zapic 发表于 2022-1-6 02:53
也许可以换个思路, 一旦跳跃即视为出局, 而不是阻止玩家去跳跃.
检测是否跳跃的方法有很多, 比如inGround属 ...
计分板好像可以统计飞行时间(悬空时间)我主要是想完全禁用掉跳跃键,不过你这种方法应该也可以,我回头试试。
我刚刚试了试,漂浮200还是能跳起来(就是有跳起来的迹象,两者混用的效果仍然不太理想..)
跳跃128可以
本帖最后由 tedu1234113 于 2022-1-7 12:23 编辑
如果用跳跃128要解决站在黏液块上能跳起来的问题,但是没有什么好方法能解决这个问题。
我试了一下,比跳跃127蹦的还高(
Baxter 发表于 2022-1-6 13:38
跳跃128可以
如果用跳跃128要解决站在黏液块上能跳起来的问题,但是没有什么好方法能解决这个问题。
我试了一下,比跳跃127蹦的还高(
本帖最后由 Zapic 于 2022-1-6 20:05 编辑
没有办法彻底禁止掉, 只能是建立惩罚机制.
在1.18下统计跳跃的方法有点改变:
复制代码
如果玩家跳跃后没能达到一定高度游戏会视为没有跳跃, 即给予128跳跃buff后按空格是不会统计分数的, 除非站在粘液块上.
但是有一个问题, 如果走下方块边缘落到粘液块上然后开始跳是不会被统计为跳跃的, 无论跳的多高, 所以就非常的奇怪.
最接近理想的可能就是悬浮128的debuff了, 效果跟头顶方块一样顶.
tedu1234113 发表于 2022-1-6 11:32
计分板好像可以统计飞行时间(悬空时间)我主要是想完全禁用掉跳跃键,不过你这种方法应该也可以,我回头 ...
没有办法彻底禁止掉, 只能是建立惩罚机制.
在1.18下统计跳跃的方法有点改变:
- /scoreboard objectives add jump minecraft.custom:minecraft.jump {"text": "JUMP"}
如果玩家跳跃后没能达到一定高度游戏会视为没有跳跃, 即给予128跳跃buff后按空格是不会统计分数的, 除非站在粘液块上.
但是有一个问题, 如果走下方块边缘落到粘液块上然后开始跳是不会被统计为跳跃的, 无论跳的多高, 所以就非常的奇怪.
最接近理想的可能就是悬浮128的debuff了, 效果跟头顶方块一样顶.
tedu1234113 发表于 2022-1-6 11:32
计分板好像可以统计飞行时间(悬空时间)我主要是想完全禁用掉跳跃键,不过你这种方法应该也可以,我回头 ...
漂浮200没啥大用,要用也是用漂浮255,不过漂浮255走路很慢,你要做跑酷的话肯定不用这个
所以你还是用跳跃提升250吧,我试过了,249在粘液块上能跳一点点,251能跳很少一点点,250刚好可以让玩家在粘液块上跳不起来
本帖最后由 tedu1234113 于 2022-1-7 12:21 编辑
我刚刚试了一下,的确可以(这..真·不用跳跃127
)
这个方法正好可以满足需求,感谢!
无敌三脚猫 发表于 2022-1-6 20:38
漂浮200没啥大用,要用也是用漂浮255,不过漂浮255走路很慢,你要做跑酷的话肯定不用这个
所以你还是用跳 ...
我刚刚试了一下,的确可以(这..真·不用跳跃127

这个方法正好可以满足需求,感谢!
1设置所有玩家计分板为1,2给所有脚下为空气的玩家设置计分板2,3给所有计分板为2的玩家乡下tp1格子,三命令方块循环开启,就好了