欢迎光临散文网 会员登陆 & 注册

关于minecraft地图扁平化转档(1.12.2>1.15.2)函数修改的记录15-32(完结篇)

2020-10-02 09:04 作者:-凛武-  | 我要投稿

本文目的

  1. 给自己写个参考;

  2. 记录地图更新过程;

  3. 加深记忆改变自己的书写习惯;

  4. 如果能帮到其他需要转档的玩家也是极好的。

要不是我在wiki上找不到指令修改的归纳总结......


文章中提到的内容都是在国际版上进行的,修改针对在网易开局域网(租赁服)的情况,但也适用于其他启动器。

15.修改effect命令

effect [玩家] [状态] [时间] [等级] [模式] > effect give [玩家] [状态] [时间] [等级] [模式]

effect [玩家] clear > effect clear [玩家]

effect [玩家] [状态] 0 > effect clear [玩家] [状态]

effect中状态效果的数字id需改成英文id

wiki截图

16.修改particle命令颗粒名称

wiki截图

iconcrack > item [物品id](删去原句末物品id)

wiki截图

17.修改replaceitem命令槽位名称

删去“slot.”

物品的[数据值]部分删去

通过正则表达式修改replaceitem

18.修改gamemode数值

上期截图 可参考

19.修改spawnpoint命令坐标

扁平化后spawnpoint的x、z坐标不再允许小数

20.修改方块ID

由于数量过多,请参考下方wiki链接中的方块与物品ID部分:

https://minecraft-zh.gamepedia.com/Java%E7%89%881.13/%E6%89%81%E5%B9%B3%E5%8C%96

方块类型数据值由不同方块名称区分 而方块状态改为在方块名后定义数据值:

setblock -59 6 -15 minecraft:stone_button 3 > setblock -59 6 -15 minecraft:stone_button[facing=south]

21.修改entitydata命令

原entitydata [实体] [数据标签]等价于data merge entity [实体] [数据标签]或data modify entity [实体] [数据标签名称] set value [数据标签值]

但data命令中的选择器只允许选择一个实体 所以选择多个实体时需要搭配execute(只是一种方法)

如:

entitydata @e[type=arrow] {pickup:2b}

改为

execute as @e[type=arrow,limit=1] run data merge entity @s {pickup:2b}

execute as @e[type=arrow,limit=1] run data modify entity @s pickup set value 2


22.修改命令中的后置数据标签条件

tag @e[type=minecraft:item_frame] add 1 {ItemRotation:1b}

改为

tag @e[type=minecraft:item_frame,nbt={ItemRotation:1b}] add ResetItemRotation

23.修改实体ID

wiki截图

24.修改xp命令

如:

xp 1L @a 改为 xp add @a 1 levels

xp 1 @a 改为 xp add @a 1 points

负数同理

25.修改replaceitem命令

replaceitem槽位名称变化

"slot."被删除


26.修改物品数据标签位置并删除数据值

如:

replaceitem entity @a[scores={Joined=1},gamemode=!spectator] container.0 written_book 1 0 {resolved:1,author:"Runwill(Creator2005)",title:"镜像决斗规则",generation:0,pages:["[{\"text\":\"玩家分场次决斗, 剩余一人未被击败则游戏结束; 所有玩家使用相同的镜像决斗特定装备。\"}]"]}

改为

replaceitem entity @a[scores={Joined=1},gamemode=!spectator] container.0 written_book{resolved:1,author:"Runwill(Creator2005)",title:"镜像决斗规则",generation:0,pages:["[{\"text\":\"玩家分场次决斗, 剩余一人未被击败则游戏结束; 所有玩家使用相同的镜像决斗特定装备。\"}]"]} 1

由于使用物品数据标签的地方实在太多,我使用正则来进行替换:

替换为的{}可以不加\


27.修改选择器r、rm参数

r=1 > distance=1

rm=1 > distance=1..(由于distance参数对取值范围的端点取等 所以需要用如tag的其他方法排除r=的实体 如rm=0

如:

修改前
修改后(马和狗的选择器因为本来就选不到自己 所以省略掉rm=0了)

28.修改数据标签ench

查找模式不必要选正则表达式 图中选错了
附魔代码的修改参考 表格是自己整理的(=・ω・=) 注意附魔代码不是wiki上的附魔英文名称

29.修改含中文的数据标签Name、Lore

Name:"中文" > Name:"[{\"text\":\"中文\"}]"

Lore:["中文"] > Lore:["{\"text\":\"中文\"}"]

30.修改声音事件名称(playsound)

由于数量过多,请参考下方wiki链接中的声音事件部分:

https://minecraft-zh.gamepedia.com/Java%E7%89%881.13/%E6%89%81%E5%B9%B3%E5%8C%96

31.修改有包含@s选择器的JSON文本的命令(tellraw、title等)

扁平化后tellraw等带有JSON文本的命令执行时,其中的@s不再选择命令的目标,而是命令的执行者,所以需要进行以下修改(此处用score元素演示):

tellraw @a [{"score":{"name":"@s","objective":"GuanZhu"}]

改为

execute as @a run tellraw @s [{"score":{"name":"@s","objective":"GuanZhu"}]

32.修改地图内独立于函数的部分(命令方块、告示牌事件、实体已拥有的标签

到此为止,地图的扁平化就结束啦(终于)

很多旧版本的命令到了高版本可以进一步优化,比如用give给予药水可以一次写多瓶 不需要写一堆一次给一瓶的give了,祝各位游戏愉快(^・ω・^ )

特别鸣谢 MC_himcd QAQxianyuQAQ

关于minecraft地图扁平化转档(1.12.2>1.15.2)函数修改的记录15-32(完结篇)的评论 (共 条)

分享到微博请遵守国家法律