免驯化宠物蛋

By Msure    2019/02/12

代码展示版本:1.14

我的世界免驯化宠物蛋

如图:放置之后,生成的狼不用驯化,直接认最近的玩家为主人。



原理

可以看到有一个僵尸猪人闪了一下,这就和原理有关了。我们知道,狼的主人是由狼的一个名为OwnerUuid控制的,为相应玩家的十六进制uuid字符串。而我们只能从玩家身上获取到玩家的uuidmost和uuidleast(都是十进制,用来生成玩家uuid),所以需要将玩家的uuidmost和uuidleast想办法转换成uuid字符串。

首先召唤一个雪球,雪球有个owner是决定是被哪个玩家扔出的,用的也是uuidleast和uuidmost。将玩家的uuidmost和uuidleast 应用到雪球的owner上,然后让雪球击中僵尸猪人,这样绕了一大圈子之后就相当于玩家打了一下僵尸猪人,猪人的身上会有一个HurtBy的nbt记录攻击玩家的uuid,而这个uuid是十六进制的字符串,再把这个字符串应用到狼的owneruuid上就好了。



代码

初始化:

  1. /scoreboard objectives add kill dummy
  2. /give @p minecraft:wolf_spawn_egg{Damage:0s,EntityTag:{CanPickUpLoot:false,Tags:["pet","pet2"]}} 1

高频循环加连锁:

  1. /execute as @e[type=wolf,tag=pet2] at @s run summon minecraft:snowball ~ ~2.8 ~ {Tags:["owner"]}
  2. /execute as @e[tag=owner,type=snowball] at @s run data modify entity @s owner.L set from entity @p UUIDLeast
  3. /execute as @e[tag=owner,type=snowball] at @s run data modify entity @s owner.M set from entity @p UUIDMost
  4. /execute as @e[type=wolf,tag=pet2] at @s run summon minecraft:zombie_pigman ~ ~0.5 ~ {Tags:["uuid"],NoAI:1}
  5. /execute as @e[type=wolf,tag=pet] at @s run data modify entity @s OwnerUUID set from entity @e[limit=1,sort=nearest,type=zombie_pigman,tag=uuid] HurtBy
  6. /tag @e remove pet2
  7. /execute as @e[type=zombie_pigman,tag=uuid] store result score @s kill run data get entity @s HurtBy
  8. /tp @e[tag=uuid,type=zombie_pigman,scores={kill=1..}] ~ ~-999 ~
  9. /kill @e[tag=uuid,type=zombie_pigman,scores={kill=1..}]




LOADING | 此框架正在加载中
QQ群:771363745