智能门户预加载

智能门户预加载

在瓦尔海姆中穿越传送门时减少加载时间。如果在有多个传送器的房间里,它不会严重消耗你的系统资源,因为它会优先考虑当前聚焦的传送门。应该能将5-6秒的加载时间减少到大约1-2秒。请随时提供反馈!

核心行为


以较低的频率扫描附近已连接的传送门。
根据距离 + 朝向 + 学习到的使用频率对它们进行评分。
切换目标前需要短暂停留。
使用迟滞机制,因此穿过一片传送门墙时不会在目的地之间不断跳来跳去。
同一时间只有一个传送门会获得高开销的预加载路径。
频繁使用的传送门会更早被注意到,并且需要更短的停留时间。
如果没有正在直接接近的传送门,前方半球中一个频繁使用的传送门可以仅获得半径 1 的推测性预热。
地形区域会逐步请求,一次一个。
在兼容的专用服务器上,服务器还会以每次同步对象上限向该客户端流式传输目的地 ZDO。
只有当发起请求的玩家实际位于源传送门附近时,远程请求才会被接受。
使用历史记录按世界持久化保存在 BepInEx/config/SmartPortalPreload.usage.txt

快速传送


当目的地已经预加载并确认就绪时,该插件会将原版传送门的最短时间从 8 秒降低到配置的安全最小值(默认 2.2 秒)。它不会跳过 Valheim 实际的玩家移动或地板/就绪检查。
如果在未来的 Valheim 更新后找不到快速计时的 Harmony 模式,该插件会记录警告,并继续仅执行预加载行为。

多人游戏


最佳效果需要服务器和客户端都安装该 DLL。仅客户端仍可预热地形,并且有助于重复前往该会话中已可用的数据,但专用服务器通常只发送玩家当前位置周围的建筑对象。安装服务器插件后,SmartPortalPreload 会安全地将单个选定目的地添加到该玩家的同步列表中。

传送门枢纽性能设计 这有意不预加载所有附近的传送门。一面 20 个传送门的墙仍然对每个玩家只有一个活动目的地请求。学习到的缓存会影响哪个传送门更早被选中;它不会让二十个远程基地永远保持实例化。

兼容性


不要同时运行另一个也会预加载远程传送门目的地或重写 Player.UpdateTeleport 的模组,除非你仔细测试过这种组合。诸如 PortalPreload、OttoBifrost 或 QuickTeleport 之类的模组与本插件的职责存在重叠。