其实吧,做个PvP手雷做法有很多,但这个问题的确困扰到我了。
服务器资源不足,希望尽量减少高频检测,所以在做手雷的时候曾经希望能用在实体nbt中motion里面写极坐标之类的方法,做出投掷creeper避免高频(最后发现不大可能)。
现在我认怂搞滞留药水高频判断手雷了,但我还是想问问有没有可能在尽量减少高频和function嵌套、保持流畅(不做连续tp)的前提下:
1.读取一个实体的motion等nbt值进入记分板,或者用记分板数据修改nbt?
2.让生存玩家如同投掷物品一样抛物线投掷生物,且可以设定投掷的力量?(能在预设档位间切换就可以)
服务器资源不足,希望尽量减少高频检测,所以在做手雷的时候曾经希望能用在实体nbt中motion里面写极坐标之类的方法,做出投掷creeper避免高频(最后发现不大可能)。
现在我认怂搞滞留药水高频判断手雷了,但我还是想问问有没有可能在尽量减少高频和function嵌套、保持流畅(不做连续tp)的前提下:
1.读取一个实体的motion等nbt值进入记分板,或者用记分板数据修改nbt?
2.让生存玩家如同投掷物品一样抛物线投掷生物,且可以设定投掷的力量?(能在预设档位间切换就可以)
本帖最后由 ⊙v⊙ 于 2018-12-7 10:34 编辑
是不是结合一下就好了?...
丢药水,创一个丢药水的记分板判据
创一个mcfunction当药水丢出时执行,
/execute as @e[...] store result entity @s Motion[0] double 0.00001 run data get entity @s Motion[0] 150000
(获取这个丢出物当前x轴Motion的数值,放大1.5倍后,丢回原位)
力度控制的话用档位设置感觉不方便,可以改为shift(潜行)键,创建判断潜行的记分板判据。
根据不同的潜行分数执行不同的Motion倍数修改...
/execute as @a[scores={shift=1..50,throw=1..}] at @s positioned ~ ~1.319999992847443 ~ as @e[type=<药水...>,limit=1,distance=..0.5] store result entity @s Motion[0] double 0.00001 run data get entity @s Motion[0] 150000
/execute....scores={shift=51..100.....run data get entity @s Motion[0] 175000
/execute....scores={shift=101..150.....run data get entity @s Motion[0] 200000
...
记得也要修改Motion[1]和Motion[2]
另外,~ ~1.319999992847443 ~是玩家Q键丢出时物品所在的坐标,扔药水的话不知道是不是也是从这个坐标出发,可能有误
另外...如果还要作到能反弹的话...参考这个http://www.mcbbs.net/thread-776362-1-1.html
另外这是什么版本?(要凉...)
是不是结合一下就好了?...
丢药水,创一个丢药水的记分板判据
创一个mcfunction当药水丢出时执行,
/execute as @e[...] store result entity @s Motion[0] double 0.00001 run data get entity @s Motion[0] 150000
(获取这个丢出物当前x轴Motion的数值,放大1.5倍后,丢回原位)
力度控制的话用档位设置感觉不方便,可以改为shift(潜行)键,创建判断潜行的记分板判据。
根据不同的潜行分数执行不同的Motion倍数修改...
/execute as @a[scores={shift=1..50,throw=1..}] at @s positioned ~ ~1.319999992847443 ~ as @e[type=<药水...>,limit=1,distance=..0.5] store result entity @s Motion[0] double 0.00001 run data get entity @s Motion[0] 150000
/execute....scores={shift=51..100.....run data get entity @s Motion[0] 175000
/execute....scores={shift=101..150.....run data get entity @s Motion[0] 200000
...
记得也要修改Motion[1]和Motion[2]
另外,~ ~1.319999992847443 ~是玩家Q键丢出时物品所在的坐标,扔药水的话不知道是不是也是从这个坐标出发,可能有误
另外...如果还要作到能反弹的话...参考这个http://www.mcbbs.net/thread-776362-1-1.html
另外这是什么版本?(要凉...)