【问题标题】:Create a Multiplayer Minecraft server and allow my Mod to be used in Minecraft Forge创建多人 Minecraft 服务器并允许我的 Mod 在 Minecraft Forge 中使用
【发布时间】:2016-02-29 09:14:23
【问题描述】:

我制作了一个模组,在其中创建了我的自定义块和命令,现在我已经准备好了。通过安装我的 Mod,我可以在 Minecraft 的单人游戏中使用它。但我想做的是创建一个多人 Minecraft 服务器,允许许多玩家使用我的 Mod。有谁知道如何做到这一点?我认为我遇到了这个麻烦,因为我不了解 Forge 中服务器端和客户端之间的区别,而且我不知道我的 Mod 是客户端还是服务器端。我希望有人可以帮助解决这个问题:) 最好的, 萨拉。

【问题讨论】:

    标签: server minecraft minecraft-forge


    【解决方案1】:

    一个模组在两个地方运行:

    服务器上进行实际的地图修改、库存更新等... 所有这些都在服务器上保存、处理和更新。

    客户端上进行所有渲染。这是生物移动、方块获取图像/纹理、播放声音等的地方。

    现在服务器和客户端之间有一些重叠,因为客户端试图“预测”服务器上会发生什么(删除块,替换块)等......但是客户端预测将发生的chanes将被覆盖服务器向客户端推送块更新的时刻。

    服务器始终领先。客户总是跟随。永远不要反过来。 如果它没有发生在服务器上,那么它根本就没有发生在其他玩家身上。

    这就是为什么你要像if(!world.isRemote()) 这样检查你是否真的在服务器上。

    尝试在服务器上保留修改世界的代码。它会自动将更新推送到客户端。做你的块替换,块挖掘,块设置为空气所有在一个

    if(!world.isRemote()) {
        world.setBlockToAir(new BlocPos(1,1,1));
        // whatever world modifying code there is.
    }
    

    如果您需要进行客户端渲染,请在客户端完成所有操作。 为此使用客户端代理,并在正常代理中为该方法设置空方法,这些方法也会在服务器上执行。

    阅读www.minecraftforge.net/wiki/Proxies

    myMod.proxy.spawnSparklyThingies(new BlockPos(3,3,3));
    

    做你只想在客户端渲染的事情。

    当您在单人游戏世界中时,服务器和客户端是合并的。但是你应该对你的模组进行编码,就好像它们没有被合并一样,这样它们也可以在服务器上使用。

    在eclipse下的run选项旁边是一个箭头,点击它可以选择运行一个服务器实例。 运行它,设置它(接受 eula.txt),然后启动一个客户端实例并连接到服务器以测试 yoru mod。 事情可能比这复杂得多,但这应该为您区分服务器和客户端提供了一个小的基础。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-28
      相关资源
      最近更新 更多