我的世界探测实体指令指令怎么探测玩家?

《我的世界》两种方法探测玩家右击方块的坐标 内含指令
(当前版本16w41b)
我们可以做到“右键探测”与“左键探测”,现在还差一个“点击方块位置”的探测(用创世神感悟)
以下介绍两种方法(另增一条设想出的方法)
NO.1 潜隐贝法
众所周知,使用潜隐贝刷怪蛋,潜隐贝会贴在方块上的一侧,而这一侧,就是玩家所选定的方块面,
即:潜隐贝贴住的方块就是玩家右键点击的方块
用这个特性,我们便可以比较好的确定玩家右键方块的位置
潜隐贝有个nbt:AttachFace:1b
优点:6个面都能贴,甚至可以这样(加NoAI:1b就不会瞬移)↓
缺点:潜隐贝在可以贴地时会优先贴地,并且不会很好地贴在非完整方块上(非完整方块:tp进去不会憋死的方块)所以出错率可能较高
icb:scoreboard objectives add shulkerdiretion dummy shulker的朝向
rcb:/entitydata @e[type=shulker,name=testxyz,tag=!noai] {NoAI:1b}
scoreboard players set @e[type=shulker,name=testxyz,tag=noai] shulkerdiretion 0 {AttachFace:0b}
scoreboard players set @e[type=shulker,name=testxyz,tag=noai] shulkerdiretion 1 {AttachFace:1b}
scoreboard players set @e[type=shulker,name=testxyz,tag=noai] shulkerdiretion 2 {AttachFace:2b}
scoreboard players set @e[type=shulker,name=testxyz,tag=noai] shulkerdiretion 3 {AttachFace:3b}
scoreboard players set @e[type=shulker,name=testxyz,tag=noai] shulkerdiretion 4 {AttachFace:4b}
scoreboard players set @e[type=shulker,name=testxyz,tag=noai] shulkerdiretion 5 {AttachFace:5b}
execute @e[type=shulker,name=testxyz,score_shulkerdiretion=0,score_shulkerdiretion_min=0,tag=noai] ~ ~-1 ~ summon shulker ~ ~ ~ {CustomName:"myxyz",NoAI:1b}
execute @e[type=shulker,name=testxyz,score_shulkerdiretion=1,score_shulkerdiretion_min=1,tag=noai] ~ ~1 ~ summon shulker ~ ~ ~ {CustomName:"myxyz",NoAI:1b}
execute @e[type=shulker,name=testxyz,score_shulkerdiretion=2,score_shulkerdiretion_min=2,tag=noai] ~ ~ ~-1 summon shulker ~ ~ ~ {CustomName:"myxyz",NoAI:1b}
execute @e[type=shulker,name=testxyz,score_shulkerdiretion=3,score_shulkerdiretion_min=3,tag=noai] ~ ~ ~1 summon shulker ~ ~ ~ {CustomName:"myxyz",NoAI:1b}
execute @e[type=shulker,name=testxyz,score_shulkerdiretion=4,score_shulkerdiretion_min=4,tag=noai] ~-1 ~ ~ summon shulker ~ ~ ~ {CustomName:"myxyz",NoAI:1b}
execute @e[type=shulker,name=testxyz,score_shulkerdiretion=5,score_shulkerdiretion_min=5,tag=noai] ~1 ~ ~ summon shulker ~ ~ ~ {CustomName:"myxyz",NoAI:1b}
kill @e[type=shulker,name=testxyz,tag=noai]
/scoreboard players tag @e[type=shulker,name=testxyz,tag=!noai] add noai
单指令:(ps:单指令由1.9改至1.11只要改掉落沙与命令车的名称写法,再把其他命令中涉及到的名称替换即可)
/summon falling_block ~ ~1.5 ~ {Time:1,Block:minecraft:redstone_block,Motion:[0d,-1d,0d],Passengers:[{id:falling_block,Time:1,Block:minecraft:activator_rail,Passengers:[{id:commandblock_minecart,Command:blockdata ~ ~-2 ~ {auto:0b,Command:""}},{id:commandblock_minecart,Command:setblock ~2 ~13 ~0 chain_command_block 1 replace {Command:"kill @e[type=shulker,name=testxyz,tag=noai]",auto:1b}},{id:commandblock_minecart,Command:setblock ~2 ~12 ~0 chain_command_block 1 replace {Command:"/scoreboard players tag @e[type=shulker,name=testxyz,tag=!noai] add noai",auto:1b}},{id:commandblock_minecart,Command:"setblock ~2 ~11 ~0 chain_command_block 1 replace {Command:\"execute @e[type=shulker,name=testxyz,score_shulkerdiretion=5,score_shulkerdiretion_min=5,tag=noai] ~1 ~ ~ summon shulker ~ ~ ~ {CustomName:\\\"myxyz\\\",NoAI:1b}\",auto:1b}"},{id:commandblock_minecart,Command:"setblock ~2 ~10 ~0 chain_command_block 1 replace {Command:\"execute @e[type=shulker,name=testxyz,score_shulkerdiretion=4,score_shulkerdiretion_min=4,tag=noai] ~-1 ~ ~ summon shulker ~ ~ ~ {CustomName:\\\"myxyz\\\",NoAI:1b}\",auto:1b}"},{id:commandblock_minecart,Command:"setblock ~2 ~9 ~0 chain_command_block 1 replace {Command:\"execute @e[type=shulker,name=testxyz,score_shulkerdiretion=3,score_shulkerdiretion_min=3,tag=noai] ~ ~ ~1 summon shulker ~ ~ ~ {CustomName:\\\"myxyz\\\",NoAI:1b}\",auto:1b}"},{id:commandblock_minecart,Command:"setblock ~2 ~8 ~0 chain_command_block 1 replace {Command:\"execute @e[type=shulker,name=testxyz,score_shulkerdiretion=2,score_shulkerdiretion_min=2,tag=noai] ~ ~ ~-1 summon shulker ~ ~ ~ {CustomName:\\\"myxyz\\\",NoAI:1b}\",auto:1b}"},{id:commandblock_minecart,Command:"setblock ~2 ~7 ~0 chain_command_block 1 replace {Command:\"execute @e[type=shulker,name=testxyz,score_shulkerdiretion=1,score_shulkerdiretion_min=1,tag=noai] ~ ~1 ~ summon shulker ~ ~ ~ {CustomName:\\\"myxyz\\\",NoAI:1b}\",auto:1b}"},{id:commandblock_minecart,Command:"setblock ~2 ~6 ~0 chain_command_block 1 replace {Command:\"execute @e[type=shulker,name=testxyz,score_shulkerdiretion=0,score_shulkerdiretion_min=0,tag=noai] ~ ~-1 ~ summon shulker ~ ~ ~ {CustomName:\\\"myxyz\\\",NoAI:1b}\",auto:1b}"},{id:commandblock_minecart,Command:setblock ~2 ~5 ~0 chain_command_block 1 replace {Command:"scoreboard players set @e[type=shulker,name=testxyz,tag=noai] shulkerdiretion 5 {AttachFace:5b}",auto:1b}},{id:commandblock_minecart,Command:setblock ~2 ~4 ~0 chain_command_block 1 replace {Command:"scoreboard players set @e[type=shulker,name=testxyz,tag=noai] shulkerdiretion 4 {AttachFace:4b}",auto:1b}},{id:commandblock_minecart,Command:setblock ~2 ~3 ~0 chain_command_block 1 replace {Command:"scoreboard players set @e[type=shulker,name=testxyz,tag=noai] shulkerdiretion 3 {AttachFace:3b}",auto:1b}},{id:commandblock_minecart,Command:setblock ~2 ~2 ~0 chain_command_block 1 replace {Command:"scoreboard players set @e[type=shulker,name=testxyz,tag=noai] shulkerdiretion 2 {AttachFace:2b}",auto:1b}},{id:commandblock_minecart,Command:setblock ~2 ~1 ~0 chain_command_block 1 replace {Command:"scoreboard players set @e[type=shulker,name=testxyz,tag=noai] shulkerdiretion 1 {AttachFace:1b}",auto:1b}},{id:commandblock_minecart,Command:setblock ~2 ~0 ~0 chain_command_block 1 replace {Command:"scoreboard players set @e[type=shulker,name=testxyz,tag=noai] shulkerdiretion 0 {AttachFace:0b}",auto:1b}},{id:commandblock_minecart,Command:setblock ~2 ~-2 ~0 command_block 1 replace {Command:scoreboard objectives add shulkerdiretion dummy shulker的朝向}},{id:commandblock_minecart,Command:setblock ~2 ~-1 ~0 repeating_command_block 1 replace {Command:"/entitydata @e[type=shulker,name=testxyz,tag=!noai] {NoAI:1b}",auto:1b}},{id:commandblock_minecart,Command:setblock ~ ~1 ~ command_block 0 replace {auto:1b,Command:fill ~ ~ ~ ~ ~-2 ~ air}},{id:commandblock_minecart,Command:kill @e[type=commandblock_minecart,r=1]}]}]}
效果:(手上蛋的名称:testxyz)在一个完整方块上右键,会在此方块的位置上生成一个名为myxyz的潜隐贝
但在玻璃上放置就出现了问题
NO.2 物品展示框法
物品展示框也是有潜隐贝类似的性质,所贴方块就是玩家所点方块
同样也有个nbt:Facing:0b
优点:相对于画,可以较好地区分各marker,且不会像画一样“扩大”;相对于潜隐贝,准确率更高,出错率更低,且可以放置在非完整方块上(如玻璃)↓。
缺点:只能放在方块的4个侧面,上下两面无法放置,且为了区分,需要把手上拿的指定名称的展示框放进展示框然后探测展示框的nbt,相当于要点两次
icb:scoreboard objectives add Facing dummy 物品展示框的朝向
rcb:scoreboard players tag @e[type=item_frame,tag=!testxyz2] add testxyz2 {Item:{tag:{display:{Name:"testxyz2"}}}}
scoreboard players set @e[type=item_frame,tag=testxyz2] Facing 0 {Facing:0b}
scoreboard players set @e[type=item_frame,tag=testxyz2] Facing 1 {Facing:1b}
scoreboard players set @e[type=item_frame,tag=testxyz2] Facing 2 {Facing:2b}
scoreboard players set @e[type=item_frame,tag=testxyz2] Facing 3 {Facing:3b}
execute @e[type=item_frame,tag=testxyz2,score_item_framediretion=0,score_item_framediretion_min=0] ~ ~ ~-1 summon shulker ~ ~ ~ {CustomName:"myxyz2",NoAI:1b}
execute @e[type=item_frame,tag=testxyz2,score_item_framediretion=1,score_item_framediretion_min=1] ~1 ~ ~ summon shulker ~ ~ ~ {CustomName:"myxyz2",NoAI:1b}
execute @e[type=item_frame,tag=testxyz2,score_item_framediretion=2,score_item_framediretion_min=2] ~ ~ ~1 summon shulker ~ ~ ~ {CustomName:"myxyz2",NoAI:1b}
execute @e[type=item_frame,tag=testxyz2,score_item_framediretion=3,score_item_framediretion_min=3] ~-1 ~ ~ summon shulker ~ ~ ~ {CustomName:"myxyz2",NoAI:1b}
kill @e[type=item_frame,tag=testxyz2,score_item_framediretion=3,score_item_framediretion_min=0]
/execute @a ~ ~ ~ fill ~-5 ~-5 ~-5 ~5 ~5 ~5 command_block
/summon falling_block ~ ~1.5 ~ {Time:1,Block:minecraft:redstone_block,Motion:[0d,-1d,0d],Passengers:[{id:falling_block,Time:1,Block:minecraft:activator_rail,Passengers:[{id:commandblock_minecart,Command:blockdata ~ ~-2 ~ {auto:0b,Command:""}},{id:commandblock_minecart,Command:setblock ~2 ~8 ~0 chain_command_block 1 replace {Command:"kill @e[type=item_frame,tag=testxyz2]",auto:1b}},{id:commandblock_minecart,Command:"setblock ~2 ~7 ~0 chain_command_block 1 replace {Command:\"execute @e[type=item_frame,tag=testxyz2,score_Facing=3,score_Facing_min=3] ~-1 ~ ~ summon shulker ~ ~ ~ {CustomName:\\\"myxyz2\\\",NoAI:1b}\",auto:1b}"},{id:commandblock_minecart,Command:"setblock ~2 ~6 ~0 chain_command_block 1 replace {Command:\"execute @e[type=item_frame,tag=testxyz2,score_Facing=2,score_Facing_min=2] ~ ~ ~1 summon shulker ~ ~ ~ {CustomName:\\\"myxyz2\\\",NoAI:1b}\",auto:1b}"},{id:commandblock_minecart,Command:"setblock ~2 ~5 ~0 chain_command_block 1 replace {Command:\"execute @e[type=item_frame,tag=testxyz2,score_Facing=1,score_Facing_min=1] ~1 ~ ~ summon shulker ~ ~ ~ {CustomName:\\\"myxyz2\\\",NoAI:1b}\",auto:1b}"},{id:commandblock_minecart,Command:"setblock ~2 ~4 ~0 chain_command_block 1 replace {Command:\"execute @e[type=item_frame,tag=testxyz2,score_Facing=0,score_Facing_min=0] ~ ~ ~-1 summon shulker ~ ~ ~ {CustomName:\\\"myxyz2\\\",NoAI:1b}\",auto:1b}"},{id:commandblock_minecart,Command:setblock ~2 ~3 ~0 chain_command_block 1 replace {Command:"scoreboard players set @e[type=item_frame,tag=testxyz2] Facing 3 {Facing:3b}",auto:1b}},{id:commandblock_minecart,Command:setblock ~2 ~2 ~0 chain_command_block 1 replace {Command:"scoreboard players set @e[type=item_frame,tag=testxyz2] Facing 2 {Facing:2b}",auto:1b}},{id:commandblock_minecart,Command:setblock ~2 ~1 ~0 chain_command_block 1 replace {Command:"scoreboard players set @e[type=item_frame,tag=testxyz2] Facing 1 {Facing:1b}",auto:1b}},{id:commandblock_minecart,Command:setblock ~2 ~0 ~0 chain_command_block 1 replace {Command:"scoreboard players set @e[type=item_frame,tag=testxyz2] Facing 0 {Facing:0b}",auto:1b}},{id:commandblock_minecart,Command:setblock ~2 ~-2 ~0 command_block 1 replace {Command:scoreboard objectives add Facing dummy 物品展示框的朝向}},{id:commandblock_minecart,Command:"setblock ~2 ~-1 ~0 repeating_command_block 1 replace {Command:\"scoreboard players tag @e[type=item_frame,tag=!testxyz2] add testxyz2 {Item:{tag:{display:{Name:\\\"testxyz2\\\"}}}}\",auto:1b}"},{id:commandblock_minecart,Command:setblock ~ ~1 ~ command_block 0 replace {auto:1b,Command:fill ~ ~ ~ ~ ~-2 ~ air}},{id:commandblock_minecart,Command:kill @e[type=commandblock_minecart,r=1]}]}]}
NO.3 fill命令方块穷举法
就是玩家放一个指定的,可以贴在另一个方块表面的方块(如按钮或拉杆等)后,将此方块fill replace成指定的命令方块来生成实体/确定玩家右击方块坐标,最后清除此命令方块即可(此方法估计费资源较大,更甚者replace在预览版貌似又坏掉了,所以可能在预览版里暂时做不出来(恩了解思想就可以了))
下面只是一段暂时没有成功的设想(等正式版吧):
/fill ~-5 ~-5 ~-5 ~5 ~5 ~5 command_block 0 replace stone_button facing:up {Command:summon shulker ~ ~-1 ~ {CustomName:"myxyz3",NoAI:1b}}
execute @e[type=shulker,name=myxyz3] ~ ~ ~ setblock ~ ~1 ~ air
微信号:pc6game
长按识别左侧二维码,关注我们
责任编辑:
声明:该文观点仅代表作者本人,搜狐号系信息发布平台,搜狐仅提供信息存储空间服务。
今日搜狐热点资料图鉴:教程速查:
当前位置:
我的世界TESTFOR指令检测玩家位置教程
小编:采蘑菇时间: 22:19
  导读:在中,玩家可以利用TESTFOR指令来检测有没有玩家在服务器中的位置,这个方法常用在服务器中,下面小编我就来介绍一下TESTFOR指令的使用教程
  testfor是第一条只能用在指令方块中的指令,在13w03a中被加入,它用来检测特定玩家是否存在(用法为/testfor [玩家]),或者特定玩家是否存在于特定坐标/范围内(用法为/testfor @p[x坐标,y坐标,z坐标],/testfor @p[r=一定范围]或者/testfor @p[x坐标,y坐标,z坐标,r=一定范围]),其输出的信号可以被周围的红石比较器接收,像是用红石比较器接收箱子的填满度一样(中括号中的数值可以修改)
  教程开始
  这是未激活的情况
  这是指令方块写的指令,意为以指令方块为中心,检测其半径为1的范围内是否存在玩家
  当玩家不在检测范围内时,激活指令方块,比较器那也不会有输出
分享到:更多
类型:休闲娱乐平台:PC,iOS,安卓
游戏大礼包手游开测表
御剑决公测钻石礼包钢铁骑兵大礼包新雪鹰领主大礼包剑与家园光棍节脱单礼包烈焰龙城激活码魔法王座大电影上线礼包
03-08内测03-07公测01-17公测01-13公测01-11公测01-10公测01-09公测01-07公测01-05公测11-03公测
攻略推荐本月最新
手游排行网游单机后使用我的收藏没有帐号?
抱歉,指定的主题不存在或已被删除或正在被审核&>&&>&&>&正文
《我的世界》1.8.3指令大全 指令代码使用教程
16:00:35 来源:MCBBS 作者:End-Enderman
第13页:探测相关指令-testforblock指令
2.testforblock指令
  和testfor性质相同,但是testfor一般用于探测玩家或者其他实体,而testforblock用于探测方块。在做机关等地图有很大的用处。最基础的形式为
  testforblock x y z 方块 数据值 数据标签
  x y z处填写方块所处位置的坐标,方块名想要探测方块的对应名称(老方法查看,F3+h)。数据值这里要特殊强调下,这个在其他指令总是不填,但是在testforblock最好要填上,也就是探测方块状态。不同的朝向、不同的方式(例如按钮按下去的时候、箱子打开的时候等等)都会有不同的数据值。比如当箱子打开的时候,数据值就会改变,会变成和原来关上箱子不同的数据值,一旦关上又会变回原样。所以数据值在testforblock得到了很大的应用。数据标签填写类似于give的标签,不同物品会有不同的数据标签,比如容器的Item等等。不填写数据值依然可以用的,但是探测不了状态,只能探测方块的种类,比如随便输入一个坐标,
  testforblock x y z chest
  如果是箱子就会成功探测到,不是的话就会显示位于x y z的方块为xxx(预定:箱子)的形式。所以在想把玩家随机tp到一个坐标时可以先用testforblock来查看这个坐标是否安全。但是这并无法探测方块状态。
  假如要探测一个朝南的箱子,那就用
  testforblock x y z chest 3
  如果不确定它的数据值,可以随便填写一个数据值,当你执行命令的时候,如果探测到箱子,但是数据值不对,会提示"位于x y z的方块拥有数据值xxx(预定:你所填写的数据值)",xxx便是这个物品所有的数据值。当数据值和物品都对上了号时,便会提示"成功找到了位于x y z的方块"并且会有信号输出。
  物品自己本身的数据标签依然可以使用,如果想探测一个箱子里的物品那就用
  testforblock x y z chest 数据值 {Items:[{id:"minecraft:物品名",Damage:损伤值s,Slot:格数b,Count:数量b}]}
  数据值之前说过,就是用于调整方块的状态,Item指令是方块自带的特殊标签,凡是容器都带有这个标签。损伤值就是用于区分物品的种类(F3+h查看,give的图片里有)格数说过,比如箱子第一格物品栏就填写0,以此类推(数字b千万不能丢掉,不然可能会造成指令有误)。数量填写方块叠加的数量。这个指令可以用来做机关,本人推荐用非电路来配合类似的testforblock。
  非电路类似于↓
  一旦探测不到某个物品(物品状态被改变)就会触发后面一系列的指令。
  如果想探测另一格子的物品,就用
  testforblock x y z chest 数据值 {Items:[{id:"minecraft:物品名",Damage:损伤值s,Slot:格数b,Count:数量b},{id:"minecraft:物品名",Damage:损伤值s,Slot:格数b,Count:数量b}]}
  其他的和上面的讲解相同,只是需要注意下括号,以此类推。
  建议学会了testfor再来学习testforblock,因为学会了testfor后这个就好理解了。自从出了execute探测方块(detect)之后testforblock使用频率也受到了影响。但是testforblock对于execute而言还是比较好理解的多,所以做陷阱还是比较方便些。陷阱例子请看此帖
  (execute算是testfor和testforblock的进一层指令)
更多相关内容请关注:
责任编辑:Shy夏夏
友情提示:支持键盘左右键“← →”翻页
本文是否解决了您的问题
文章内容导航
第13页:探测相关指令-testforblock指令
用手机访问
扫一扫,手机浏览
相关攻略:
游戏制作:Mojang Studio、Microsoft
游戏发行:网易游戏
游戏平台:PC/Xbox360/XboxOne/PS3/PS4/NintendoSwitch/PS Vita
上市时间:
单机游戏下载
综合热点资讯
游民星空联运游戏>>>>我的世界经验条玩家速度探测器原理
我的世界经验条玩家速度探测器原理
14:27:27 条 来源:互联网 作者: ]
  这是所有秘密所在
  脉冲部分
  为主控部分命令方块奠定脉冲基础
  [注意看清刻数]
  处命令方块命令
  /fill ~1 ~2 ~ ~13 ~2 ~2 redstone_block
  命令讲解:
  (一大群命令方块下方)放置一个平面的
  处命令方块命令
  /fill ~1 ~2 ~-2 ~13 ~2 ~ air
  命令讲解:
  (一大群命令方块下方)放置一个平面的空气[即删除这个平面]
  于是主控命令部分形成脉冲
  主控部分首先我们需要一个记录玩家行走距离的计分板[sidebar就不解释了]
  /scoreboard objectives add 1 stat.walkOneCm 1
  命令讲解:创建一个记录玩家行走距离的名称与显示名称都为1的计分板
  绿色处命令方块命令
  scoreboard players set @a 1 0
  命令讲解:将&1&的计分板分数设置为0
  红色羊毛处命令方块命令
  xp -100l @a
  命令讲解:移除所有玩家xp100级
  黄色羊毛处命令方块命令
  xp 4l @a
  命令讲解:给予所有玩家xp4级
  一大堆蓝色羊毛处命令方块命令
  xp 1 @a[score_1_min=20]
  xp 1 @a[score_1_min=40]
  (以每个命令方块数值20的规律不断增加,当然蓝色处命令方块数量可以无限)
  命令讲解:给&1&中计分板分数为20、40、60&&的玩家每20给予1xp
  也就是主控部分将一段时间内移动距离归纳为速度,然后显示于经验条中。

我要回帖

更多关于 我的世界探测玩家指令 的文章

 

随机推荐