(建议新手从第一期开始看)
本期会讲到的内容:目标选择器及其参数,/spawnpoint指令,/gamemode指令,/gamerule指令,/time指令,/help指令

目标选择器
目标选择器是指玩家在输入指令时所针对的目标,也可以说对哪个目标起作用。其中,“@c(自己的智能体)”,“@v(所有智能体)”,“@initiator(当前与NPC交互的玩家)”三个目标选择器仅存在于基岩版,在此不作讲解。
@p:选择最近的玩家。玩家输入时默认为玩家自己,在命令方块输入时选定距离命令方块最近的玩家,在服务器控制台输入时默认距离出生点最近的、最晚进入世界的玩家。
@r:(random)选择随机的玩家。
@a:(anybody)选择全部玩家。
@e:(everything)选择全部实体,包括但不限于玩家、生物、掉落物、点燃的tnt、弹射物、矿车和船、经验球等物品。
@s:该命令的执行实体,由于命令方块无法执行实体,所以无法直接输入命令方块中。
在@e时,由于范围过大,很容易出现误伤的情况,所以经常使用中括号来添加限制条件,例如在清除实体时,若只想清除僵尸,则可以用“/kill @e[type=zombie]”来实现清除僵尸的指令,若想清除“除玩家以外的实体”,则使用“/kill @e[type=!minecraft:player]”,其中,“minecraft:”可写可不写,但最好带上,m不要大写,符号要用英文;“!”代表“除了……以外”。
除了type一种目标选择器参数以外,还有20种目标选择器参数。

目标选择器参数
目标选择器参数在现阶段(1.20.2版本)有21种,分别为:
advancements=<进度ID>,玩家进度ID为英文单词,若有需要,可以查阅Minecraft Wiki。可以选择达成/未达成成就的玩家或已做过某事的玩家。例如,你可以输入“@a[advancements={minecraft:story/obtain_aemor=false}]”来选择“未达成‘整装上阵’进度的玩家”;或者输入“@a[advancements={story/obtion_armor={iron_helmet=true}}]”选择装备过铁头盔的玩家,不论玩家是否仍在装备或是否获得了该成就。
distance=<半径>,可以规定半径内的实体,Wiki中描述为“到某点的欧几里得距离”,可以浅显理解为算法下的最优像素球体的范围。例如:“@a[distance=5]”,选择到执行者距离=5的玩家;“@a[diatance=..5]”,选择到执行者距离≤5的玩家;“@a[diatance=5..]”选择到执行者距离≥5的玩家;“@a[diatance=5..10]”选择5≤到执行者距离≤10的玩家,“..”可以理解为“≤”。
dx=<距离>
dy=<距离>
dz=<距离>,这三个参数可以任意单独使用,也可以组合使用,三个一起使用可以划定一个长方体体积,凡是碰撞箱任何一部分进入这个范围内部,都可以检测到。例如“@a[dx=3,dy=4,dz=5]”,检测了从指令发起人坐标(x,y,z)到(x+3,y+4,z+5)这个长方体区域内的全部玩家。也可以规定初始点,例如“@a[x=3,y=4,z=5,dx=1,dy=2,dz=3]”,选择了从(3,4,5)到(4,6,8)的这一长方体范围内的实体
gamemode=<游戏模式>,专用于检测玩家游戏模式的参数,一般搭配@a,@r使用,例如“@r[gamemode=creative]”,检测随机一名创造模式的玩家。
level=<整数>,检测一定等级的玩家,例如“@a[level=5..20]”,意为所有等级在5~20级之间的玩家。
limit=<整数>,选择一定数量的目标,并指定其优先级。例如:“@a[limit=2,sort=furthest]”,选择距离执行者最远的两名玩家sort=后面可以接4种数值,nearest:从近到远排序;furthest:从远到近排序;random:随机排序;arbitray:按生成时间由远到近。
name=<名称>,选择名字为该名称的目标。比如“@e[name=!Jason_Black_]”,表示除了名字为Jason_Black_以外的所有实体,不只是除了我一个玩家,也除去所有叫这个名字的其他实体。
nbt=<nbt标签>,对实体所带的nbt标签进行选择,nbt标签到之后慢慢学……
predicate=<命名空间ID>,选择所有匹配该谓词的目标(一般用不到)
scores={<计分项>=<分值>},检测某项计分项达到某分数的玩家。
sort=<排序方式>,按照一定的排序方式决定优先级,具体见limit指令介绍
tag=<标签名>,筛选具有某个标签名的目标。例如羊毛的标签全部为wool,不论颜色
team=<队伍名>,选择在某队伍中的实体。注意:每个实体只能处于一个队伍,属于映射关系。
type=<实体类型>,选择一个类型的实体。如果实体命名空间为minecraft,则可以省略。例如“@e[type=minecraft:zombie]”与“@e[type=zombie]”效果相同
x=<坐标>
y=<坐标>
z=<坐标>,指定实体的坐标值,可以同时使用x、y、z,也可以单独使用。
x_rotation=<垂直旋转角度>,以水平为0,度为单位,竖直向上为-90,竖直向下为-90。
y_rotation=<水平旋转角度>,以正南为0,从上看顺时针为正方向以度为单位的角度。
文中带“<>”的内容在实际输入时不带有“<>”

/spawnpoint 指令
spawnpoint指令用于定义出生点,格式为:
/spawnpoint <玩家> <坐标> <角度>
玩家项必须是玩家名称或目标选择器,如果未指定玩家名称,则默认为执行者。
坐标可以使用~ ~ ~来指定相对坐标,坐标取整数。
偏转角可以为重生时面对的角度,也可以使用~指定相对坐标。
例如:“/spawnpoint steve ~ ~1 ~ ~90”,规定玩家Steve的出生点位于命令执行者位置上方一格,面向命令执行者右方90°。

/gamemode 指令
gamemode指令用于更改玩家的游戏模式。格式为:
/gamemode <游戏模式> <玩家>
同样地,玩家项必须是玩家名称或目标选择器,未指定目标时默认为执行者。
游戏模式一共有4种:
adventure:冒险模式,玩家无法建造、破坏方块,只允许交互。
creative:创造模式,玩家拥有无限资源,可以飞行,随意建造,破坏。
spectator:旁观模式,玩家强制飞行,没有碰撞体积,不能建造、破坏或进行交互,可以被目标选择器选择或检索到。
survival:生存模式,玩家可以破坏方块并建造,资源有限,需要维持生命。
另外,玩家可以通过按F3+F4来调整游戏模式,按住F3点按一次F4可以快捷选择上次更改的游戏模式;按住F3多次点按F4可以在四种游戏模式之间选择。


/gamerule 指令
gamerule指令用于指定或修改游戏规则。格式为:
/gamerule <规则名称> <值>
要注意Java版输入指令时要严格规定大小写,否则不能成功执行命令。如果指令没有报错,只能说明至少语法正确,并不能说明命令可以运行。
以下是Java版的规则名称及翻译,
首先是“true、false'型规则”,后面的值只需要输入true或false,若不输入值,则可以查询现有的值
announceAdvancements 在聊天栏显示成就达成
commandBlocksEnabled 命令方块被启用
commandBlockOutput 显示命令输入时的聊天栏提示
sendCommandFeedback 在聊天栏显示玩家执行命令结果
showDeathMessages 聊天栏显示死亡信息
spectatorsGenerateChunks 观察者生成区块(观察模式下加载区块)
disableElytraMovementCheck 停止让服务器检测玩家飞行速度
naturalRegeneration 自动回血(金苹果,状态,属性不受影响)
disableRaids 禁用袭击
doDaylightCycle 时间流动
doEntityDrops 非生物实体生成掉落物
doFireTick 火焰蔓延和熄灭
doInsomnia 幻翼生成
doImmediateRespawn 跳过死亡动画
doLimitedCrafting 玩家合成需要配方
doMobLoot 生物死亡生成掉落物
doMobSpawning 生物自然生成(刷怪笼和人为生成不受影响)
doPatrolSpawning 生成灾厄巡逻队
doTileDrops 方块生成掉落物
doTraderSpawning 生成流浪商人
doWeatherCycle 天气变化
drowningdamage 窒息伤害
falldamage 跌落伤害
firedamage 火焰伤害
forgiveDeadPlayers 宽恕死亡玩家
freezedamage 冰冻伤害
keepInventory 保留物品栏(死亡不掉落)
mobGriefing 生物改变地形
pvp 玩家之间攻击
universalAnger 中立生物锁定敌人
reducedDebugInfo 调试信息简化
logAdminCommands 记录在服务器中op用的指令
然后是数值型规则,<value>需要输入一定的数值
functioncommandlimit 最大函数指令数量
maxCommandChainLength 连锁型命令方块能连锁执行的最大数量
maxEntityCramming 实体挤压上限(超过上限会造成挤压伤害)
playersSleepingPercentage 入睡比例(入睡玩家达到比例会跳到第二天)
spawnRadius 重生半径(玩家死亡后会在距离重生点一定半径内重生)
randomTickSpeed 随机刻速度(随机事件发生的速度,例如作物生长)

/time 指令
time指令用于更改或查询游戏的时间,具体格式为:
/time set <时间值>
/time add <时长>
/time query <查询项>
首先是time set,设置游戏时间,数值后方加单位,省略时默认为t,
t为游戏刻,每天的时间为24000游戏刻,0t=24000t=日出
s为秒,每20个游戏刻等于1秒,
d为天,每天为1200秒,为20分钟。
其次是time add,在当前基础上增加时间,单位与上述相同。java基础的指令
最后是time query,查询当前时间,一共有三个选项:
daytime:查询当前游戏日的日出后流逝的游戏刻数。
gametime:查询该世界总共流逝的游戏刻数。
day:查询游戏的天数。

/help 指令
help指令可以查询一个命令的格式,基础格式为:
/help <命令> <下一级命令>
例如在游戏中输入/help time,就可以查询“/time”命令的用法了,但输出结果为全英文。如果能够看懂命令提示,可以自学“/execute”、“/scoreboard”命令,如果可以学会,后面的文章内容也就不需要看了(
例如输入“/help scoreboard players”,可以查询计分板指令中,关于“玩家”方面的全部指令格式。
关于目标选择器和部分基础指令就讲到这里,本合集会根据本人学习进度进行更新

免责声明及原创声明:
如有错误或更新带来的更改,请积极指正,我会第一时间做出修改;如有侵权,请联系删除。以上皆为本人对于游戏内容的理解,如有冲突,请以Minecraft Wiki为准。请勿利用本教程进行任何商业行为,图片均为本人在游戏中截取或实际场景拍摄,文字均为手敲,如有引用需要,无需说明,标明出处即可直接引用。
版权声明:
本文来源网络,所有图片文章版权属于原作者,如有侵权,联系删除。
本文网址:https://www.bianchenghao6.com/h6javajc/19474.html