Minecraft(我的世界)中文论坛
标题: 一些简单的技术性(可能的)常识 (10/1更新)
作者: Jokey_钥匙 时间: 2019-9-13 00:34
标题: 一些简单的技术性(可能的)常识 (10/1更新)
本帖最后由 Jokey_钥匙 于 2020-5-30 21:39 编辑
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.修改生物生命值导致其死亡将不会掉落战利品,但如果之前一定时间内有玩家伤害过实体,却会掉落经验
11.data modify和execute store可以修改玩家物品栏和末影箱中的物品数据该特性在19w37a修复(我Jokey就算死,死外边,也不会玩1.15的!)
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.如果你一次可能交互两个实体(例如两个村民完全重叠),必定交互最先加载的那个实体
作者: SPGoding 时间: 2019-9-13 00:44
6.
execute as @e[dx=0,dy=0,dz=0] positioned ~-1 ~-1 ~-1 if entity @s[dx=0,dy=0,dz=0] run……
这样写只需遍历一次实体列表
作者: wshycaa 时间: 2019-9-13 01:19
如果造到了255格会怎么样呢…?
作者: ruhuasiyu 时间: 2019-9-13 07:41
会被我顶掉
作者: mu_bei 时间: 2019-10-6 11:34
如果在255格上会不会上天
作者: Jokey_钥匙 时间: 2019-10-6 12:22
本帖最后由 Jokey_钥匙 于 2019-10-6 13:00 编辑
不会 但是因为所有要动态修改玩家物品的模组都会用到 rua的潜影盒
(又时也在254用落沙科技)
然后潜影盒通常设置在出生点原点255高的位置
因此 如果建筑在255(254)格时有概率出现一个大洞
↓都一米了还不大?
作者: 924317164 时间: 2019-10-7 19:28
感谢楼主,很有道理,一句话,牛逼。
作者: 541572010q 时间: 2019-10-9 04:29
谢谢分享谢谢楼主
作者: 2781212775 时间: 2020-2-22 13:16
18太有用了咩!我怎么也找不到怎么修改evoker_fangs的Owner,其它的很多也不知道,但是感觉很有用。我想问下1.14版本怎么修改玩家物品栏,我用data modify的时候一直提示错误。
作者: Jokey_钥匙 时间: 2020-2-22 13:47
data不能直接改
https://www.mcbbs.net/thread-860954-1-1.html
作者: Ruainbow_ 时间: 2020-2-27 20:43
execute as @e[dx=0,dy=0,dz=0] positioned ~-1 ~-1 ~-1 if entity @s[dx=0,dy=0,dz=0] run……
这条不能使用。
需要将positioned改成大于-1,但是十分接近-1的数字。比如-0.9999。
作者: 信仰139. 时间: 2020-2-27 20:48
一脸懵逼..
作者: Milky_iLive 时间: 2020-3-14 10:15
非常有用的技巧~
(我就说为什么之前改尖牙的OwnerUUID没效果,应该是需要设定一个初始值才行)
(回头研究骚操作.jpg)