1.如果你玩原版模组的话,建筑物不要造太高,尤其是第255格
2.MC的违规检测是和命令执行是错开的(例如同一刻潜影箱中可以放置潜影箱)
3.和玩家不同,生物和盔甲架不存在违规穿戴,穿戴错了顶多不显示
4.由于MC命令由服务端计算,画面由客户端计算,所以实体移动时,坐标是瞬间移动,但是客户端会将移动进行补间(这也是为什么小黑瞬移和短距离tp都有移动动画)
5.如果在召唤盔甲架的同一刻尝试令其转向,尽管数据已改变,但是客户端并不会显示改变后的样子(至少重进存档前不会)。解决方案:在很高的位置召唤然后在tp下来即可
6.dx,dy,dz虽然可以检测实体碰撞箱,但是最小也需要1*1*1,所以如果想检测实体是否碰到某一点的话,函数可以改成这样(感谢@SPGoding的修改):
- execute as @e[dx=0,dy=0,dz=0] positioned ~-1 ~-1 ~-1 if entity @s[dx=0,dy=0,dz=0] run……
7.尽管实体不能自定义储存nbt,但是物品可以
8.如果想检测两个非int32的变量(long,List,String,UUID等)可以利用execute store success+data modify set,具体方法如下(假设比较UUIDLeast,两个实体分别为e1和e2,记分板变量为x):
- summon minecraft:armor_stant ~ 255 ~ {Tags:["test"],ArmorItems:[{id:"minecraft:stone",Count:1b}]}
- data modify entity @e[tag=test,limit=1] ArmorItems[0].tag.Temp set from entity e1 UUIDLeast
- execute store success score # x run data modify entity @e[tag=test,limit=1] ArmorItems[0].tag.Temp set from entity e2 UUIDLeast
- execute if score # x matched 0 run say 相同
- kill @e[tag=test,type=armor_stand]
原理:7.的技巧,datamodify的变量若前后相同则返回0
9.投掷物击退的方向和投掷物的运动方向无关,只和投掷的玩家有关,同时仇恨记在该玩家身上
10.修改生物生命值导致其死亡将不会掉落战利品,但如果之前一定时间内有玩家伤害过实体,却会掉落经验
12.32等级(31倍率)的瞬间治疗和瞬间伤害对玩家以外的生物,只会造成伤害判定,但不会扣血
13.一个生物踏入药水云6刻才会获得第一次效果
14.利用9. 12. 13.可以制作仇恨+击退发生器——利用data modify制作由玩家扔出、含有瞬间治疗伤害31级的药水云,然后tp到目标生物身上6刻(不能将生物tp至药水云)
15.物品模型最大3*3*3,但是选择中心不受此限制——你可以制作无比巨大的模型
16.当scoreboard enable一个实体时的trigger时(假设该实体的trigger从未赋值过),该实体trigger将自动赋值为0
17.如果你想加载多个带资源包的原版模组的话,你需要将这些资源包中的assets/minecraft/models及其子集中的所有json中的overrides的内容全部手动合并
18.如果你想要召唤的尖牙拥有者为玩家,请在召唤时输入以下nbt{OwnerUUIDLeast:0L,OwnerUUIDMost:0L},然后再用data modify
19.恼鬼(似乎?)是唯一一个是不会产生碰撞判定的生物,无论对生物还是方块
20.Passengers只能用于summon,已创造的实体无法更改Passengers
21.如果你一次可能交互两个实体(例如两个村民完全重叠),必定交互最先加载的那个实体