TrainCarts/卡顿

From BergerHealer Wiki
Jump to navigation Jump to search
This page is a translated version of the page TrainCarts/Lag and the translation is 90% complete.
Outdated translations are marked like this.
Other languages:
English • ‎中文(中国大陆)‎

« 返回

使用 TC 插件时可能在某些功能上会造成服务器或客户端的卡顿。该页面会展示卡顿的原因细节,以及如何去缓解卡顿。

复杂的 3D 模型

Minecraft 不太擅长渲染复杂的体素模型。如果你的服务器上装载有复杂模型的自定义资源包,这可能会导致客户端的帧数下降。请在上传自定义资源包到服务器之前尽可能优化和查看模型。JSON 文件的大小是最强有力的指标。

巨大的矿车

组件编辑器中配置矿车的物理属性时,矿车的大小可以设置的非常大。这会改变实体本身的边界框,并导致服务器的 TPS 下降。主要原因是服务器对于碰撞箱的计算量过大。为防止这些卡顿,可禁用列车的方块碰撞。

Turns off block collisions, trains will fall through the ground
Command: /train collision block cancel
Permission: train.property.collision


超长的等待距离

配置列车的等待距离属性,以便列车与前车保持距离。这个属性会使列车始终检测前方的轨道。因此如果等待车距设置太高可能会导致服务器的 TPS 下降。

保持区块加载

列车可以设置为保持区块加载,但加载过多的区块也可能会降低服务器的性能。区块加载过多会消耗 RAM,这可能会导致内存耗尽。一些区块可能会包含实体或红石装置,都会导致服务器的 TPS 下降。当启用这个属性的列车移动时,它们会不断加载和卸载区块,这也可能会导致问题。

通常单辆列车启用区块加载属性并不会发生什么,这和玩家移动时会加载和卸载区块相同。但如果服务器上有数百辆这样的列车就可能会造成问题。

You can improve performance by lowering the radius trains keep loaded, or configuring it to not simulate the chunks they keep loaded. This should be done for when the train is traveling long distances.

限制列车数量

你可以编辑plugins/Train_Carts/config.yml来限制每个世界的 TC 矿车实体数量,这可以防止失控的生成牌或玩家滥用导致服务器崩溃。

# 限制服务器的矿车数量。
cartLimits:
  # TC 矿车在世界上能存在的最大数量。
  # 如果数量达标,则不能再放置/生成矿车。
  # 值设置为 -1 可以禁用限制(默认值)。
  maxCartsPerWorld: -1

  # 是否将已卸载的列车/矿车算在世界限制的列车数量中。
  countUnloaded: false

  # 列车的最大车厢数量。
  # 当列车车厢数量达标时,其他矿车将不会再与这辆列车进行链接,
  # 并且也不能生成超过车厢数量限制的列车。
  # 设置为 -1 可以禁用限制,允许任何长度的列车(默认值)。
  maxCartsPerTrain: -1

保存列车生成限制

除了全局限制外,还可以为每个保存的列车设置生成限制。使用/train save name保存列车后,你可以使用/savedtrain name spawnlimit <limit>设置生成限制。

当列车数量达标时,配置了列车名称的生成牌和列车生成箱将不能再生成列车。对于交通网络中的自动生成牌特别有用,结合将 config.yml 中的destroyAllOnShutdown设置为 true 使用更佳。