我的世界 我想建乙個地圖,用什麼指令能做到在一定秒數後兩個人互換位置

時間 2021-06-01 16:52:24

1樓:huhu

很多人應該都會想到找個中間者來實現,但「先把A tp到B 再把B tp到A」 這種常識上一看就是錯的做法,的確是可行的。

假設我現在要將乙個tag為a的人與tag為b的人調換位置

如果在兩個命令方塊分別輸入

tp @e[limit=1,tag=a] @e[limit=1,tag=b]

tp @e[limit=1,tag=b] @e[limit=1,tag=a]

然後依次執行,結果很顯然,a被tp到b後,b又tp到a,b肯定是在原位

然而,如果我們定義函式minecraft:tp

tp @s @e[limit=1,tag=b]

tp @e[limit=1,tag=b] ~ ~ ~

然後使用execute as @e[limit=1,tag=a] at @s run function tp呼叫

看上去和上面的方法並無二致,但卻的確能實現調換兩者位置的目的

這是因為乙個function在執行時會被賦予命令環境,如執行座標(即at),執行者(即as)等等。而~ ~ ~指代的便是命令環境中的執行座標,也就是execute中at後的@s在命令執行開始時的座標。在第一次tp後,雖然執行者@s的座標發生了改變,但命令環境未發生改變,也就是說~ ~ ~指代的仍然是@s在命令執行開始時的座標。

因此第二次tp可以將b傳送到a原來的位置。

再比如,如果把函式tp改成:

tp @s @e[limit=1,tag=b]

tp @e[limit=1,tag=b] @s

那麼將會失敗,因為第二次tp時@s的座標已經改變

至於每經過一段時間觸發的問題,各位大佬已經說的很清楚了,schedule或者scoreboard都可以實現,我這裡不再贅述

2樓:熊孩子

(假設這個時間是60秒)

scoreboard objectives add swap_player dummy

scoreboard players add delay swap_player 1

execute if score delay swap_player matches 1200.. run execute as @r run tag @s add swap_a

execute at @a[tag=swap_a] run summon minecraft:area_effect_cloud ~ ~ ~

execute as @a[tag=swap_a] at @s run tp @s @a[limit=1,sort=nearest,tag=!swap_a]

execute as @a[tag=!swap_a] at @s run tp @s @e[type=minecraft:area_effect_cloud,limit=1,sort=nearest,tag=swap_a]

kill @e[type=minecraft:area_effect_cloud,tag=swap_a]

tag @e[tag=swap_a] remove swap_a

execute if score delay swap_player matches 1200.. run scoreboard players set delay swap_player 0

憑感覺寫的,沒實測,可能有bug

如果是命令方塊跑的話第乙個迴圈保持開啟,其他的連鎖保持開啟就行了

不想用那麼多命令方塊的話打包在function裡,然後直接使用或者命令方塊跑也行。如果還想懶一點的話,也可以把斜體全刪了,然後在最後加一條schedule function 60s

3樓:洪荒太初

scoreboard objectives add delay dummy

summon area_effect_cloud ~ ~ ~

下面都是迴圈

scoreboard players add timer delay 1

execute @e[score_delay_min=100,type=area_effect_cloud,name=timer] ~ ~ ~ execute @a ~ ~ ~ summon area_effect_cloud ~ ~ ~

execute @a ~ ~ ~ tp @e[type=area_effect_cloud,name=changer,c=-1]

scorebord players set @e[type=area_effect_cloud,name=timer,score_delay_min=100] delay 0

20遊戲刻為一秒,延遲的值在100處改為20*想要延遲的秒數

這是互換最近倆玩家位置的思路,有需要題主可以自己小改一下

4樓:Qiufeng54321

execute as 玩家1 at @s run summon minecraft:armor_stand ~ ~ ~

tp 玩家1 玩家2

tp 玩家2 @e[tag=SwapTemp, limit=1]kill @e[tag=SwapTemp]這個armor_stand可以換

玩家1和玩家2換成名字或者選擇器未測

我想建乙個拼夕砍價群

寶寶的發育是有標準的,但是這個標準應該就是乙個參考的東西,並不是完全到了一定的時間就是確定數值。不過還有一些媽媽其實並不知道寶寶的發育標準,所以每一次想要知道寶寶的發育情況都很懵。寶寶每個月的身高體重標準是什麼?一歲之內的寶寶每乙個月的體重的增加是比較穩定的,一般就是乙個月的時候56.5厘公尺左右的...

我的世界乙個地圖裡面的地形是不是都有?

回不去的神明 是肯定有的,這個肯定指的是遊戲設定的肯定。每乙個平庸的史蒂夫都有去叢林神廟的美好希望。每乙個種子碼裡都有生成熱帶雨林的一部分指令。每乙個玩家都會跋涉千山萬水來找到想去的地方。每一張地圖都包含希望地期盼會有珍貴遺跡坐落。少年,不要放棄!繼續跋涉吧!你和你腳下的方塊,都相信,這個世界有一切...

多我乙個少我乙個,並不影響的世界執行 世界要怎麼執行,與我也沒什麼關係。我的存在有什麼意義?

雪泥 你自己就是乙個世界,內在世界。我們每個人生活在外在世界,而內在世界與外在世界是平等的。於你自己而言,你的存在就是最重要的,不需要外在世界的證明。 李波 按照佛經的意思,我們的這個身形並不是真正的自我,隨然他是那麼的寶貴。他諸多因緣所促成的乙個暫時的存在。我們日常所用的這顆意識心也不是自己,隨然...