命令格式为:
/gkrun [自定义选择器(可选):选择器] [任何命令:字符串]
可选参数 | 参数释义 |
[自定义选择器(可选):target] | 该参数可忽略,直接写后面的命令; 当该参数存在时,需要写一个被引号包裹的选择器及其参数(也可无参数),选择器为原版游戏的选择器,参数格式也与原版一致,参数支持原版选择器参数,也支持全部gq属性(由于历史遗留,部分属性采用attr.xxx的格式,也兼容选择器参数)以及gq变量(以后统称为自定义选择器参数),在使用自定义选择器参数时,参数名为var.xxx或attr.xxx以及未来会支持的sql.xxx,即无需添加$self.部分,详情请看后面示例 |
[任何命令:string] | 原版命令或gq自定义命令,支持转义字符(事实上转义字符只在这里有效),变量,常量,数据库(未来会支持),属性的取用; 另外注意,当带有自定义选择器时,此处命令执行者将会被改变为选择器所选实体 |
//让所有生命值为10的实体说“hi”
/gkrun "@e[attr.health=10.0]" "execute as @s run say hi"
有这么几点需要强调一下:
1.自定义选择器及其参数需要被双引号包裹
2.自定义选择器参数名无需使用“$self.”部分
3.参数值需要使用浮点型,即10.0
4.最后命令部分可以不使用execute嵌套,但是为了让say命令带有实体名,所以使用execute嵌套say
5.如果自定义参数值使用了变量,self取值对象对执行者,所以必要时须使用execute嵌套gkrun
//假设将玩家变量test值设为11
/gkentityvar test "10"
//然后使test变量为10的实体说hello
/gkrun "@e[var.test=11]" "execute as @s say hello
//自定义选择器参数值也可以使用调用变量
//击杀刚刚攻击我的实体
/gkrun "@e[var.gquid=$self.var.gkonatk]" "kill @s"
//实现全部玩家一击必杀
RCB:
/execute as @a run gkrun "@e[var.gquid=$self.var.gkatkt]" "execute as @s run kill @s"
或者:
/execute as @a run gkrun "@e[var.gquid=$self.var.gkatkt]" "kill @s"
特别说明:
由于该命令作用对象为全体玩家,所以使用execute嵌套gkrun执行
Q:如果我想要在其他地方使用使用自定义选择器?
A:严格来说,自定义选择器只能在gkrun命令使用,但是可以将对应属性值通过tag给予实体,然后使用原版选择器选择该tag(注意转义字符)