t1546542
版本:1.12.2 (实在做不到就试试1.14.4?)
让拥有“螺旋升天”tag的玩家旋转并且不断升高
遇到方块时停止升高,但继续旋转
持续2秒,结束后移除tag









Chelover_C60
本帖最后由 CHElover_C60 于 2019-11-24 01:58 编辑

1.12可以做,但是我可以改动一个要求吗?就是检测到tag后那一刻就删除,而不是过2秒后删除,因为需要一个计时器,而这个标签可能会带一定干扰
如果允许我做这个改动
建立计分板
/scoreboard objectives add timer dummy
循环
  1. scoreboard players set @a[tag=螺旋升天] timer 40
  2. effect @a[tag=螺旋升天] levitation 2 0 true
  3. scoreboard players tag @a[tag=螺旋升天] remove 螺旋升天
  4. execute @a[score_timer_min=0] ~ ~ ~ tp @s ~ ~ ~ ~30 ~
  5. scoreboard players remove @a[score_timer_min=0] timer 1
  6. scoreboard players reset @a[score_timer=0] timer
复制代码

不方便测试,纯手打,可能有误

MC深坑不回头
本帖最后由 MC深坑不回头 于 2019-11-24 03:08 编辑

1.12.2实测,


scoreboard objectives add timer dummy 测试


示范村民:/summon minecraft:villager ~ ~1 ~ {NoAI:1b,NoGravity:1b,Silent:1,Tags:["螺旋升天"]}


要对玩家做此效果就tp玩家到村民身上,村民改隐形。当然中间tp可以自行改单次上升及改变的面向数值大小。


把下面的命令放到function内高频侦测:




  1. scoreboard players add @e[tag=螺旋升天] timer 1

  2. scoreboard players tag @e[tag=螺旋升天] remove noair

  3. execute @e[tag=螺旋升天] ~ ~ ~ detect ~ ~2 ~ minecraft:air 0 scoreboard players tag @s[tag=螺旋升天] add noair

  4. tp @e[tag=螺旋升天,tag=noair,score_timer=10,score_timer_min=10] ~ ~0.05 ~ ~30 ~

  5. tp @e[tag=螺旋升天,tag=noair,score_timer=20,score_timer_min=20] ~ ~0.05 ~ ~30 ~

  6. tp @e[tag=螺旋升天,tag=noair,score_timer=30,score_timer_min=30] ~ ~0.05 ~ ~30 ~

  7. tp @e[tag=螺旋升天,tag=noair,score_timer=40,score_timer_min=40] ~ ~0.05 ~ ~30 ~

  8. tp @e[tag=螺旋升天,tag=noair,score_timer=50,score_timer_min=50] ~ ~0.05 ~ ~30 ~

  9. tp @e[tag=螺旋升天,tag=noair,score_timer=60,score_timer_min=60] ~ ~0.05 ~ ~30 ~

  10. tp @e[tag=螺旋升天,tag=noair,score_timer=70,score_timer_min=70] ~ ~0.05 ~ ~30 ~

  11. tp @e[tag=螺旋升天,tag=noair,score_timer=80,score_timer_min=80] ~ ~0.05 ~ ~30 ~

  12. tp @e[tag=螺旋升天,tag=noair,score_timer=90,score_timer_min=90] ~ ~0.05 ~ ~30 ~

  13. tp @e[tag=螺旋升天,tag=noair,score_timer=100,score_timer_min=100] ~ ~0.05 ~ ~30 ~

  14. tp @e[tag=螺旋升天,tag=noair,score_timer=110,score_timer_min=110] ~ ~0.05 ~ ~30 ~

  15. tp @e[tag=螺旋升天,tag=noair,score_timer=120,score_timer_min=120] ~ ~0.05 ~ ~30 ~
复制代码
  1. scoreboard players set @e[tag=螺旋升天,tag=noair,score_timer=121,score_timer_min=121] timer 0
  2. scoreboard players set @e[tag=!noair,score_timer=121,score_timer_min=0] timer 130 {Tags:["螺旋升天"]}
  3. tp @e[tag=螺旋升天,score_timer=130,score_timer_min=130] ~ ~ ~ ~30 ~
  4. tp @e[tag=螺旋升天,score_timer=140,score_timer_min=140] ~ ~ ~ ~30 ~
  5. tp @e[tag=螺旋升天,score_timer=150,score_timer_min=150] ~ ~ ~ ~30 ~
  6. tp @e[tag=螺旋升天,score_timer=160,score_timer_min=160] ~ ~ ~ ~30 ~
  7. tp @e[tag=螺旋升天,score_timer=170,score_timer_min=170] ~ ~ ~ ~30 ~
  8. scoreboard players tag @e[tag=螺旋升天,score_timer=171,score_timer_min=171] remove 螺旋升天
复制代码
侦测上头一格方块是非空气时,变数设定到130,继续计到170即两秒后停止。


xmdhs
本帖最后由 xmdhs 于 2019-11-24 08:17 编辑

借鉴了上面两位的思路哈。。

  1. scoreboard objectives add lxsttimg dummy
复制代码

  1. execute @a[tag=lxst] ~ ~ ~ tp @s ~ ~ ~ ~2 ~
  2. execute @a[tag=lxst] ~ ~ ~ effect @s levitation 2 0 true
  3. execute @a ~ ~ ~ detect ~ ~2 ~ air 0 scoreboard players set @s lxsttimg 0
  4. scoreboard players add @a[tag=lxst] lxsttimg 1
  5. execute @a[score_lxsttimg_min=40] ~ ~ ~ scoreboard players tag @s remove lxst
复制代码

第一页 上一页 下一页 最后一页