杨叔我的世界纯命令方块实现多人领地防熊
以网易我的世界手游为例,在不支持领地插件的前提下,杨叔记录一下直播间正在用的纯命令方块实现多人领地防熊功能,以下指令将会逐步优化并配图说明。
初步设想的原理是这样的,除了领主,针对其他靠近的人做反应:TP传送到其他坐标、杀死外来人、冒险模式,以领地归属两人玩家A和玩家B为例,下面来分析一下。
1、TP传送到其他坐标
在领地中心放置一个命令方块,设置为“重复 无条件 始终活动”,输入如下指令
#使用r表示一个球体空间 /tp @a[type=player,name=!"玩家A",name=!"玩家B",r=10] x y z #使用dx/dy/dz表示一个长方体空间,不设置默认为0 /tp @a[type=player,name=!"玩家A",name=!"玩家B",dx=10,dz=10] x y z
这样除了玩家A和玩家B之外的任何模式的人,靠近命令方块10格范围内,即TP到坐标 x y z。可以在这个坐标放上岩浆或者封死,TP过来的人也就只有等待死亡了。
2、杀死外来人
这个方案比较简单粗暴,同样在领地中心放置一个命令方块,设置为“重复 无条件 始终活动”,输入如下指令
#使用r表示一个球空间 /kill @a[type=player,name=!"玩家A",name=!"玩家B",r=10] #使用dx/dy/dz表示一个长方体空间,不设置默认为0 /kill @a[type=player,name=!"玩家A",name=!"玩家B",dx=10,dz=10]
这样除了玩家A和玩家B之外的任何模式的人,靠近命令方块10格范围内,直接死亡,但有个弊端,如果已经死亡的玩家并没有点击复活或退出按钮,则会重复执行此指令,提示“已清除xxxx”,不仅鞭尸,而且可能卡服务器。
3、修改为冒险模式
同样在领地中心放置一个命令方块,设置为“重复 无条件 始终活动”,输入如下指令
#使用r表示一个球空间 /gamemode 2 @a[type=player,name=!"玩家A",name=!"玩家B",r=10,m=0] #使用dx/dy/dz表示一个长方体空间,不设置默认为0 /gamemode 2 @a[type=player,name=!"玩家A",name=!"玩家B",dx=10,dz=10,m=0]
这里加了个m=0参数,表示将生存模式的人修改为冒险模式,防止重复执行指令。