【问题标题】:Override models with a Minecraft bukkit/spigot plugin?使用 Minecraft bukkit/spigot 插件覆盖模型?
【发布时间】:2021-07-30 22:28:01
【问题描述】:

我想制作一个插件,允许玩家自定义他们的盔甲模型和纹理。我希望服务器上的其他玩家能够看到这些自定义设置。

由于我从未在插件中进行纹理覆盖,因此我不知道这是否可行,并且我无法在网上找到任何相关内容。我知道你可以让方块看起来像其他方块,但盔甲就不行了。

我必须向在线玩家发送一个数据包,还是有其他方法可以做到这一点?如果可能,是否有地方记录如何执行此操作?

【问题讨论】:

  • 你可以制作一个服务器端的材质包发送给客户端。
  • @Xiddoc 这将使只有客户可以看到他们自己的定制,并且定制模型目前也无法使用资源包。好主意,但不是我真正想要的。
  • 首先——“定制模型”是什么意思?其次,服务器上的每个人都会看到客户端的自定义,因为每个人都会拥有相同的自定义纹理包(从服务器发送给他们之后)。
  • @Xiddoc 当我指的是自定义模型时,我的意思是在不移除普通版本的情况下制作 3D 盔甲,就像你可以对物品做的那样。它不是纹理,而是 3D 模型。尽管可能无法以任何方式自定义实体模型,但我听说这些模型是硬编码到客户端中的。现在,资源包没有能力为同一个盔甲提供多个纹理。所以玩家会看到他们对所有这类盔甲的定制。使其成为重新构造,而不是自定义。我希望有一种方法可以在使用插件的条件下重新构造盔甲。
  • 如果硬编码到客户端是不可能做到的。如果您想编写高效的代码,我建议您尝试 Forge,因为我记得这是大多数 mod 的编写方式。如果你不能/不想使用 Forge,那么你可以尝试使用无形的盔甲架,它会一直传送到玩家身边,以复制“新盔甲模型”。我自己没有做过,也不知道它运行起来有多顺畅(考虑到你将同时传送大量实体),但这是我能想到的最好的原版实现。

标签: java minecraft bukkit


【解决方案1】:

如 cmets 中所述,有几种方法可以做到这一点。

第一个是使用Forge。 Forge 有很多很好的 API 来帮助制作新的模组和物品、纹理和模型。这使它非常适合您的任务,并且非常简单,因为您不需要搞乱诸如数据包之类的小技术问题。

但是,您还声明您不能使用 Forge(仅限原版 Minecraft/Spigot API)。如果你想在原版 Minecraft 中改造盔甲,另一种解决方案可能是使用隐形盔甲架持有/佩戴块来复制改造,并不断地将这些盔甲架传送给玩家。 Here 是一个线程,解释了如何使用隐形盔甲架制作“自定义生物”,您可以将其用作制作新盔甲模型的基础,然后设置一个事件,如果玩家将盔甲架传送给玩家移动(使用PlayerMoveEvent 事件)。

关于重新纹理,您可以通过某些过滤器(例如盔甲物品的名称)使用a resource pack which changes the textures of specific armor。这样做的缺点是它需要 Optifine,尽管我认为由于几乎每个 Minecraft 客户端都使用 Optifine,因此值得使用此选项。您还指出您希望它与原版 Minecraft 客户端一起使用,尽管我会指出 Optifine 已经有 released updates for the latest versions(例如 1.17,这就是您说要玩的版本)。

所有这些信息让我总结:
如果你想在原版 Minecraft 中制作自定义盔甲纹理或模型(同时保持默认盔甲纹理),那么除了传送之外别无他法隐形盔甲架。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-22
    • 2021-03-03
    • 1970-01-01
    • 1970-01-01
    • 2017-07-19
    • 1970-01-01
    相关资源
    最近更新 更多