跳到主要内容

什么是 LibsDisguises?

LibsDisguises 是一个允许服务器将任意实体伪装成任意其他类型实体的插件。例如,你可以把玩家伪装成绵羊,或把绵羊伪装成玩家。

LibsDisguises 有免费版付费版。LibsDisguises 由其他开发者创建并维护,因此请不要在 EliteMobs 的支持板块为它寻求支持。

我如何把一个实体伪装成玩家?

要把一个自定义 Boss(或区域性 Boss,甚至 NPC!)伪装成玩家,你只需在 Boss 配置文件中添加以下这一行:

disguise: player:name

例如,如果你想把一个 Boss 伪装成我玩家的皮肤,配置行会是这样的:

disguise: player:magmaguy

注意: 如果你已使用 EliteMobs 的自定义模型系统为你的 Boss 配置了自定义模型,那么自定义模型会优先生效,伪装将不会被应用。你应当在自定义模型或伪装之间二选一,不要同时使用两者。

玩家伪装的名牌可见性

使用玩家伪装时,名牌的可见性由 config.yml 文件中的 EliteMobs 配置项 alwaysShowEliteMobNameTags 控制。如果启用此设置,玩家伪装会在其头顶上方显示该实体的自定义名称。如果关闭,名牌将被隐藏,但村民实体除外——无论此设置如何,村民始终显示名牌。

我如何把一个实体伪装成某个玩家皮肤,但不一定是某个玩家?

这是把实体伪装成玩家最灵活的方式,因为它允许管理员使用网上的皮肤,甚至创建自己的皮肤来伪装 Boss。它做起来也稍微复杂一些。

为了简单起见,这里列出的示例都假设你将使用一个网上可获取的皮肤。LibsDisguises 提供了多种反序列化皮肤的方式,包括一种把你自己的自定义皮肤放进它的文件夹的方式。如果你不想使用网上已有的皮肤,请查阅它们的文档。

1. 设置伪装

对于伪装,你需要这样写:

disguise: custom:your_unique_skin_name

2. 生成伪装数据

这是棘手的部分。你先创建以下配置条目:

customDisguiseData: player your_unique_skin_name setskin 

至关重要的是,你在 disguise 中为 your_unique_skin_name 所设的名称必须与 customDisguiseData 中的名称相匹配!

然后你需要反序列化一个玩家皮肤。对于网上公开可获取的皮肤,最简单的方法是使用 LibsDisguises 命令 /grabskin

假设你想获取这个皮肤

为此,你需要运行命令 /grabskin https://www.minecraftskins.com/uploads/skins/2021/07/28/buff-villager-18512841.png?v437

注意:你需要提供指向皮肤文件本身的直接链接,而非包含该皮肤的页面链接。注意链接所指向的目标。在 skindex 上,你可以通过按下每个皮肤右下角都有的 "Image Link" 按钮来获取直接链接。

成功完成这一步后,LibsDisguises 会给你提供大约 3-6 个标注着 "Click to copy" 的数字。如果你点击它们,会出现一长串数字和字母。你要确保从 1 开始,并按顺序处理所有这些数字。要复制它们,按 ctrl-a 然后 ctrl-c,再用 ctrl-v 把它们粘贴到文件中。完成后,它看起来应该类似这样:

customDisguiseData: player your_unique_skin_name setskin {"id":"d1fbb77f-b184-4718-b0a2-c7ae866798d3","name":"Unknown","properties":[{"name":"textures","value":"ewogICJ0aW1lc3RhbXAiIDogMTYyNzU0ODkwMjQ0OSwKICAicHJvZmlsZUlkIiA6ICIxOTI1MjFiNGVmZGI0MjVjODkzMWYwMmE4NDk2ZTExYiIsCiAgInByb2ZpbGVOYW1lIiA6ICJTZXJpYWxpemFibGUiLAogICJzaWduYXR1cmVSZXF1aXJlZCIgOiB0cnVlLAogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMzlmYTZkMWFlODA2YTY2OGI0OTgzYmZhY2ZkMGUzMzQ5MGE5MGU4YTZmMWE2MmEwZGQ5YzQ1YjdkYjBiNjU1MyIKICAgIH0KICB9Cn0=","signature":"P/XSvxX45MUZGc5uuDKuVgmMUk2V1HADPI84Os5J4NnmURhLeS4jL4FSeShmz0cH7sBWmMg80g9ADP33R9PcOmzbHK4hJBFt2VYLJNgSYHK6VGp6qLGXDfdAa3vRNXN7jKtsrqVEANax7Gzv3xcWARLbq1FuQ6yYdXDY8Coc02Y/POMRG/i6iACtro5DQGhr2JgbL++95UhSBFxmU82Zef3UMHLfgt7lC4vWN4c4xrOAKllzF2mwohuMmEkoKzu/6s/eu5q4J4bBH08M8UN02/yJuEH5sTy/iVJfaoPs90ZfcVdRpUZvVDZh5eXapQN1/Q9/79Pc8YOXF/20iygZ/hpvTPKP8wbMP2b1cJSyAaEIUtG9I7mG3bAXbH7mcswM1CNFF3+GEFnZI5dPxzuOelJR/t2mtVl82a4zEm9KG9Fq7iGfuK9aiWR8Yot1KeuIddPbBL8JnxHy2wW9OySjzAbs8tUI/i5KKmZmQrPH0RmHrFIuVK4C849QtRt57sQaUr1+W6Vto3r7J5jhpZ30wIIfS9hvW/ReB9rbwUQWERWie5Lchfcp7YkKbzuuaddnIjPew2IQDESlXzVW84kXtYKCs8hFgYVn27wU8jqtBCVkr0iHW7YLQTl4SFUzTFCSgAx5KSFHGm/4kqXqpHNdjS687o13MWpxrxLkV1svIp4="}],"legacy":false}

就是这样!customDisguiseData 适用于任何反序列化后的皮肤代码,所以如果你在 LibsDisguises 中找到了生成相同代码的其他方法,也可以在这里使用它。

customDisguiseData 的优势在于它是自包含的,意味着你不必依赖在线玩家、拥有特定皮肤的玩家或其他任何东西。EliteMobs 正是用它来为地下城包中所有被伪装的 Boss 设置皮肤的!

我如何把一个自定义 Boss 伪装成另一种类型的实体?

要把一个自定义 Boss(或区域性 Boss)伪装成另一种类型的实体,你只需在 Boss 配置文件中添加以下这一行:

disguise: ENTITY_TYPE

例如,如果你想让你的自定义 Boss 被伪装成绵羊,你就这样写:

disguise: SHEEP

我如何把一个自定义 Boss 伪装成幼年实体?

要把一个自定义 Boss(或区域性 Boss)伪装成幼年实体,你只需在 Boss 配置文件中添加以下这一行:

disguise: HOGLIN:baby

正如你在此示例中所见,我们的 Boss 会被伪装成幼年疣猪兽。

我如何用自定义伪装来伪装一个实体?

要把一个自定义 Boss(或区域性 Boss)伪装成一个自定义的 LibsDisguises 实体,你需要先创建该 LibsDisguises 伪装。

完成之后,正确的语法是:

disguise: custom:your_custom_disguise_name

有效的伪装

并没有官方的有效实体类型列表,但这里有一份非官方列表。此列表最后一次更新是针对 Minecraft 1.16(2020 年 8 月)。较新的 Minecraft 版本(1.17+)包含了额外的实体类型,例如 AXOLOTL、GLOW_SQUID、GOAT、ALLAY、FROG、TADPOLE、WARDEN、CAMEL、SNIFFER、BREEZE、BOGGED 和 ARMADILLO。

要获取与你的 Minecraft 版本兼容的完整实体列表,请参阅 Spigot EntityType 文档或 LibsDisguises 插件文档。

展开列表
    ARMOR_STAND
ARROW
BAT
BLAZE
BOAT
CAT
CAVE_SPIDER
CHICKEN
COD
COW
CREEPER
DOLPHIN
DONKEY
DRAGON_FIREBALL
DROWNED
DROPPED_ITEM
EGG
ELDER_GUARDIAN
ENDER_CRYSTAL
ENDER_DRAGON
ENDER_PEARL
ENDER_SIGNAL
ENDERMAN
ENDERMITE
EVOKER
EVOKER_FANGS
EXPERIENCE_ORB
FALLING_BLOCK
FIREBALL
FIREWORK
FISHING_HOOK
FOX
GHAST
GIANT
GUARDIAN
HOGLIN
HORSE
HUSK
ILLUSIONER
IRON_GOLEM
ITEM_FRAME
LLAMA
LLAMA_SPIT
LEASH_HITCH
MAGMA_CUBE
MINECART
MINECART_CHEST
MINECART_COMMAND
MINECART_FURNACE
MINECART_HOPPER
MINECART_MOB_SPAWNER
MINECART_TNT
MODDED_MISC
MODDED_LIVING
MULE
MUSHROOM_COW
OCELOT
PAINTING
PANDA
PARROT
PHANTOM
PIG
PIG_ZOMBIE
PIGLIN
PILLAGER
PLAYER
POLAR_BEAR
PRIMED_TNT
PUFFERFISH
RABBIT
RAVAGER
SALMON
SHEEP
SHULKER
SHULKER_BULLET
SILVERFISH
SKELETON
SKELETON_HORSE
SLIME
SMALL_FIREBALL
SNOWBALL
SNOWMAN
SPECTRAL_ARROW
SPLASH_POTION
SQUID
STRAY
STRIDER
THROWN_EXP_BOTTLE
TIPPED_ARROW
TRIDENT
TRADER_LLAMA
TROPICAL_FISH
TURTLE
VEX
VILLAGER
VINDICATOR
WANDERING_TRADER
WITCH
WITHER
WITHER_SKELETON
WITHER_SKULL
WOLF
ZOGLIN
ZOMBIE
ZOMBIE_HORSE
ZOMBIE_VILLAGER
ZOMBIFIED_PIGLIN
AXOLOTL
GLOW_SQUID
GOAT
ALLAY
FROG
TADPOLE
WARDEN
CAMEL
SNIFFER
BREEZE
BOGGED
ARMADILLO