無(wú)實(shí)體全自動(dòng)地皮(思路+少少少部分指令展示)

版本>1.18.60
前置指令
/scoreboard objectives add x dummy
/scoreboard objectives add z dummy
/scoreboard objectives add dx dummy
/scoreboard objectives add dz dummy
/scoreboard objectives add visit dummy
tag占用:indp ondp dp dpback dpbuy visit
結(jié)構(gòu)占用:dp
購(gòu)買地皮部分:(脈沖+連鎖*n[無(wú)條件])
scoreboard players add @a x 0
scoreboard players add @a z 0
tag @p add dpbuy
execute @a[tag=dpbuy,scores={x=1..,z=1..}] ~~~ 購(gòu)買失敗輸出
execute @a[tag=dpbuy,scores={x=0,z=0}] ~~~ 購(gòu)買成功輸出
execute @a[tag=dpbuy,scores={x=0,z=0}] ~~~ tag @s add dp
tag @a remove dpbuy
生成地皮部分:(脈沖+連鎖*n[無(wú)條件],前半部分有條件)
summon armor_stand "dp" ~~~
tag @e[c=1,type=armor_stand,name="dp"] add dp
scoreboard players add x x 0
scoreboard players add z z 0
scoreboard players operation dx x = x x
scoreboard players operation dx x -= z z
scoreboard players test dx x 0 0
scoreboard players set z z 1 有
scoreboard players add x x 1 有
scoreboard players test dx x 1 *
scoreboard players operation x x >< z z 有
scoreboard players test dx x * -1
scoreboard players operation x x >< z z 有
scoreboard players add z z 1 有
scoreboard players operation @e[tag=dp] x = x x
scoreboard players operation @e[tag=dp] z = z z
execute @e[type=armor_stand,scores={x=1..,z=1..}] ~~~ tp @s 地皮集成開(kāi)始位置
設(shè)定保存的模板x=n,z=m,可建筑區(qū)x=a,z=b
execute @e[type=armor_stand,scores={x=16..}] ~~~ tp @s ~16n~~
execute @e[type=armor_stand,scores={x=16..}] ~~~ scoreboard players remove @s x 16
execute @e[type=armor_stand,scores={x=8..}] ~~~ tp @s ~8n~~
execute @e[type=armor_stand,scores={x=8..}] ~~~ scoreboard players remove @s x 8
execute @e[type=armor_stand,scores={x=4..}] ~~~ tp @s ~4n~~
execute @e[type=armor_stand,scores={x=4..}] ~~~ scoreboard players remove @s x 4
execute @e[type=armor_stand,scores={x=2..}] ~~~ tp @s ~2n~~
execute @e[type=armor_stand,scores={x=2..}] ~~~ scoreboard players remove @s x 2
execute @e[type=armor_stand,scores={x=1..}] ~~~ tp @s ~1n~~
execute @e[type=armor_stand,scores={x=1..}] ~~~ scoreboard players remove @s x 1
execute @e[type=armor_stand,scores={z=16..}] ~~~ tp @s ~~~16m
execute @e[type=armor_stand,scores={z=16..}] ~~~ scoreboard players remove @s z 16
execute @e[type=armor_stand,scores={z=8..}] ~~~ tp @s ~~~8m
execute @e[type=armor_stand,scores={z=8..}] ~~~ scoreboard players remove @s z 8
execute @e[type=armor_stand,scores={z=4..}] ~~~ tp @s ~~~4m
execute @e[type=armor_stand,scores={z=4..}] ~~~ scoreboard players remove @s z 4
execute @e[type=armor_stand,scores={z=2..}] ~~~ tp @s ~~~2n
execute @e[type=armor_stand,scores={z=2..}] ~~~ scoreboard players remove @s z 2
execute @e[type=armor_stand,scores={z=1..}] ~~~ tp @s ~~~n
execute @e[type=armor_stand,scores={z=1..}] ~~~ scoreboard players remove @s z 1
支持961塊地皮
execute @e[type=armor_stand,scores={x=0,z=0}] ~~~ tickingarea add ~~~ ~n-1~~m-1
execute @e[type=armor_stand,scores={x=0,z=0}] ~~~ structure load "dp" ~ 指定高度 ~
execute @e[type=armor_stand,scores={x=0,z=0}] ~~~ tp @a[tag=dp] 地皮上相對(duì)坐標(biāo)
execute @e[type=armor_stand,scores={x=0,z=0}] ~~~ tickingarea remove "dp"
execute @e[type=armor_stand,scores={x=0,z=0}] ~~~ kill @s
tag @a remove dp
地皮主人判定部分(脈沖+連鎖*n)
tag @a remove ondp(為拓展用的,必須加)
tag @a remove indp
execute @a ~~~ detect 地皮基層 bedrock -1 tag @s add ondp
execute @a ~~~ detect 倒數(shù)第二層 bedrock -1 tag @s add indp
scoreboard players add @a[tag=indp] visit 0
execute @a[scores={visit=0}] ~~~ summon armor_stand "dp" ~~~
execute @a[scores={visit=0}] ~~~ tag @e[c=1,type=armor_stand,name="dp"] add dp
execute @e[type=armor_stand,tag=dp] ~~~ scoreboard players operation @s x = @p x
execute @e[type=armor_stand,tag=dp] ~~~ scoreboard players operation @s z = @p z
execute @e[type=armor_stand,tag=dp] ~~~ scoreboard players operation @s dx = @p x
execute @e[type=armor_stand,tag=dp] ~~~ scoreboard players operation @s dz = @p z
execute @e[type=armor_stand,scores={x=1..,z=1..}] ~~~ tp @s 地皮集成開(kāi)始位置
設(shè)定保存的模板x=n,z=m
execute @e[type=armor_stand,scores={x=16..}] ~~~ tp @s ~16n~~
execute @e[type=armor_stand,scores={x=16..}] ~~~ scoreboard players remove @s x 16
execute @e[type=armor_stand,scores={x=8..}] ~~~ tp @s ~8n~~
execute @e[type=armor_stand,scores={x=8..}] ~~~ scoreboard players remove @s x 8
execute @e[type=armor_stand,scores={x=4..}] ~~~ tp @s ~4n~~
execute @e[type=armor_stand,scores={x=4..}] ~~~ scoreboard players remove @s x 4
execute @e[type=armor_stand,scores={x=2..}] ~~~ tp @s ~2n~~
execute @e[type=armor_stand,scores={x=2..}] ~~~ scoreboard players remove @s x 2
execute @e[type=armor_stand,scores={x=1..}] ~~~ tp @s ~1n~~
execute @e[type=armor_stand,scores={x=1..}] ~~~ scoreboard players remove @s x 1
execute @e[type=armor_stand,scores={z=16..}] ~~~ tp @s ~~~16m
execute @e[type=armor_stand,scores={z=16..}] ~~~ scoreboard players remove @s z 16
execute @e[type=armor_stand,scores={z=8..}] ~~~ tp @s ~~~8m
execute @e[type=armor_stand,scores={z=8..}] ~~~ scoreboard players remove @s z 8
execute @e[type=armor_stand,scores={z=4..}] ~~~ tp @s ~~~4m
execute @e[type=armor_stand,scores={z=4..}] ~~~ scoreboard players remove @s z 4
execute @e[type=armor_stand,scores={z=2..}] ~~~ tp @s ~~~2n
execute @e[type=armor_stand,scores={z=2..}] ~~~ scoreboard players remove @s z 2
execute @e[type=armor_stand,scores={z=1..}] ~~~ tp @s ~~~n
execute @e[type=armor_stand,scores={z=1..}] ~~~ scoreboard players remove @s z 1
execute @e[type=armor_stand,tag=dp] ~~~ scoreboard players operation @s dx -= @a[scores={visit=0},x=~,y=-100,z=~,dx=n-1,dy=1000000,dz=m-1] x
execute @e[type=armor_stand,tag=dp] ~~~ scoreboard players operation @s dz -= @a[scores={visit=0},x=~,y=-100,z=~,dx=a-1,dy=1000000,dz=b-1] z
gamerule sendcommandfeedback false
execute @e[type=armor_stand,tag=dp,scores={dx=0,dz=0}] ~~~ scoreboard players add @s visit 1
execute @e[type=armor_stand,tag=dp,scores={dx=0,dz=0}] ~~~ scoreboard players operation @s visit += @e[r=0.01,type=armor_stand] visit
execute @e[type=armor_stand,tag=dp,scores={dx=0,dz=0,visit=3..}] ~~~ kill @e[r=0.01,type=armor_stand,tag=dp,scores={dx=0,dz=0,visit=3..}]
execute @e[type=armor_stand,tag=dp,scores={dx=0,dz=0}] ~~~ gamemode 0 @a[c=1,x=~(n-a)/2,y=-100,z=~(n-a)/2,dx=a-1,dy=1000000,dz=b-1,m=2]
title @a[scores={visit=1},tag=!indp,tag=ondp,m=0] actionbar 已離開(kāi)地皮
title @a[scores={visit=1},tag=!indp,tag=ondp,m=2] actionbar 已停止拜訪
execute @a[scores={visit=1},tag=!indp,tag=ondp,m=0] ~~~ gamemode 2 @s
gamerule sendcommandfeedback true
title @a[scores={visit=0},m=0] actionbar 歡迎回家
title @a[scores={visit=0},m=2] actionbar 正在拜訪
scoreboard objectives remove visit
scoreboard objectives add visit dummy
scoreboard players add @a[tag=indp] visit 1