开发教程

1.16.5 数据包 服务器 单人 rgb 坐标规范 计分版 fill scoreboard

qwer***Lv.1 新手上路 发表于 昨天 21:17 IP:湖北省 55 0
[思路描述]
这是我今天在学校用一节大课间加两节课间休息写的一个数据包rgb逻辑,我自己看了一遍感觉有点粗糙,看第五章到第七章屏幕截图,我目前可以同时检测玩家两个状态(积分和坐标)跟方块状态(拉杆是否开启,用来判断是否执行函数)。
[实体坐标与方块网格讲解]
在多数玩家的惯性认知中,方块坐标跟实体坐标默认是匹配的,玩家坐标是负一,那么方块坐标也是负一,实际上不是这样,玩家的坐标如果小于零会先算负零,然后才是负一,方块坐标就是直接从零跳到负一,具体是这样:有一个玩家,他的坐标是-1 24 -3,那么他脚下的方块坐标就是-2 23 -4,这种方块坐标与实体坐标不匹配的关系应该注意,是数据包方块放置异常的主要原因(之前我在正数坐标跟负数坐标中间跨越时想用fill填充方块,之前还没有深入了解方块坐标,每次用fill建完墙壁后,就发现墙壁总是多了一层厚度,最开始是用创世神模组解决的,但是后来觉得太麻烦,就去搜索了维基百科,规范使用了fill指令)。
[检测玩家坐标]
如果想要检测一个坐标是-2 32 12的玩家,并给他发五颗钻石,指令是/execute as @a[x=-2,y=32,z=12] at @s run give @s minecraft:diamond 1,其中,“/”只需要在聊天栏当中输入指令时加入,在mcfunction函数文件中则必须剔除,“execute as @a[x=-2,y=32,z=12] at @s”意思是以玩家为执行者(执行指令的权限是由数据包赋予的,逻辑是即便玩家本身没有权限,也可以由数据包强制由玩家身份来执行),在这当中的“as @a[x=-2,y=32,z=12] at @s”是execute子命令,子命令的意思就是,在execute后面空格就可以直接写的命令,不过需要自己检查一遍逻辑顺序,比如说想以所有玩家为身份执行,把他们脚下的石头换成金块,检测玩家必须放在检测方块前面(除非检测方块是绝对坐标,不过这种点石成金的数据包一般用的是相对玩家坐标),否则在命令方块下面放一格石头,那么所有玩家脚下的任何方块不管是什么都会直接被替换成方块,然后这条子命令本身的含义是,以所有玩家为身份,并且以玩家自己来执行(
as @a at @s),@a(或者填其他的也行,只要是游戏当中存在的玩家或者实体选择器类型)后面填的方括号,当中填检测条件,比如这个方括号的含义就是检测坐标为-2 32 12的玩家,run后面填自己想执行的命令,比如给玩家发钻石。
[检测方块坐标]
刚才说了怎么点检测玩家坐标,现在说怎么检测方块坐标。检测方块坐标的逻辑实际上跟检测玩家坐标类似,不过格式不太一样,先给指令:/execute if block ~ ~-1 ~ minecraft:stone run fill ~ ~-1 ~ minecraft:diamond_block,这条指令如果写到命令方块中,那么命令方块会把下面的石头给替换成金块,if block也是一条子命令(同上,这里不赘述),相对来说比检测玩家坐标更直观,直接看block后面空格跟着的坐标就是,然后只能检测单点坐标,区域坐标需要用blocks(之前在游戏内只验证了单点坐标,区域坐标检测因为使用电脑时间不够,所以暂时不能下结论),然后run后面的指令意思是以命令方块为执行点,在下面放置一个金块。
[检测玩家分数]
先给指令。/execute if score qqq w matches 1000..,这里还是用的子命令(前面已经讲过了),具体逻辑是检测一个玩家名称是qqq的玩家,然后看他的积分版是不是w,最后看他的计分板分数是否大于1000(实际上还可以检测小于,把双点给打在数字前面代表小于的意思,把双点打在数字后面代表大于的意思)。
[目前情况]
实际上我还总结了怎么放置带拐角的楼梯,具体是用shape字段来向游戏描述这个楼梯的拐角该怎么摆放,等我有时间了在下一个帖子细讲。
[难点]
虽然我知道了怎么放置方块,但是实在没有美术细胞,如果有谁想分享建筑经验跟技巧,可以直接在评论区发送,不需要理解底层逻辑(如果想深入了解,可以直接加我的qq私聊)。
Screenshot_20261022-202641.png
IMG_20261022_202726_884.jpg
IMG_20261022_202739_189.jpg
IMG_20261022_202745_828.jpg
2026-10-18_12.27.58.png
2026-10-18_12.27.30.png
2026-10-18_12.28.16.png
2026-10-17_10.25.20.png
Screenshot_20261022-210700.png
Screenshot_20261022-210707.png
您需要登录后才可以回帖 登录 | 立即注册
本版积分规则