欢迎光临散文网 会员登陆 & 注册

无实体全自动地皮(思路+少少少部分指令展示)

2023-08-27 07:33 作者:茗妪  | 我要投稿

版本>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


结构占用:dp


购买地皮部分:(脉冲+连锁*n[无条件])

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..}] ~~~ 购买失败输出

execute @a[tag=dpbuy,scores={x=0,z=0}] ~~~ 购买成功输出

execute @a[tag=dpbuy,scores={x=0,z=0}] ~~~ tag @s add dp

tag @a remove dpbuy


生成地皮部分:(脉冲+连锁*n[无条件],前半部分有条件)

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 地皮集成开始位置

设定保存的模板x=n,z=m,可建筑区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] 地皮上相对坐标

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 倒数第二层 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 地皮集成开始位置

设定保存的模板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 已离开地皮

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


无实体全自动地皮(思路+少少少部分指令展示)的评论 (共 条)

分享到微博请遵守国家法律