田野BOSS击败标记

田野BOSS击败标记

野外BOSS击败标记是一个针对《幻兽帕鲁》的客户端UE4SS Lua模组,用于在世界地图上方便地识别等待每日刷新的野外BOSS。

字段 BOSS 击败标记

字段 BOSS 击败标记 是一款《幻兽帕鲁》的客户端 UE4SS Lua 模组,能让等待每日刷新的世界 BOSS 在世界地图上更容易被识别。

当一个世界 BOSS 被击败或捕获后,其头像会变暗,且《幻兽帕鲁》原有的“已清除”标记会放大,使已完成的目标一目了然。当游戏在下一个游戏日重置世界 BOSS 时,临时标记会自动移除。

重要提示: 本模组不使用《幻兽帕鲁》原有的 Is Defeated 值作为日状态。该值仅表示玩家之前曾击败过该 BOSS。本模组会分别追踪当前世界 BOSS 的刷新禁用状态,并保留游戏原有的历史清除显示。


安装位置

  • 仅限客户端:是。 请在每个需要显示标记的玩家电脑上安装。
  • 仅限服务器:否。 专用服务器没有世界地图界面,因此仅在服务器上安装无法向玩家显示标记。
  • 客户端和服务器都必需:否。 未安装模组的玩家仍可照常加入游戏。
  • Linux:需要兼容的 Windows 客户端环境。 UE4SS 通常依赖 Windows DLL 注入;Proton 用户需要一套兼容的《幻兽帕鲁》UE4SS 配置。

主要功能

  • 标记当前游戏日内已被击败或捕获的世界 BOSS
  • 使已击败的 BOSS 头像变暗,方便识别可用的 BOSS
  • 放大《幻兽帕鲁》原有的“已清除”标记,使已完成状态更醒目
  • 当《幻兽帕鲁》重置世界 BOSS 刷新标志时,自动清除临时标记
  • 保持《幻兽帕鲁》原有的历史 Is Defeated 显示不变
  • 在重新连接或同一游戏日内重启游戏时,保持当前清单持续有效
  • 按世界和游戏日分别存储状态
  • 采用事件驱动实现,无周期性对 UObject 或世界地图的全面扫描
  • 不改变 BOSS 刷新规则、游戏时间、生成率或战斗
  • 不编辑《幻兽帕鲁》存档文件

视觉行为

  • 可用的 BOSS: 正常的《幻兽帕鲁》地图图标
  • 等待每日刷新: 头像大幅变暗,并显示一个放大的“已清除”标记
  • 先前击败但目前已可用: 《幻兽帕鲁》正常的“历史清除”外观

“已清除”标记的缩放比例和头像透明度均可配置。ClearMarkColor 用于请求图像色调,但具体颜色可能被《幻兽帕鲁》当前的画刷/材質忽略;无论如何,放大的标记和变暗的头像仍然可见。


安装

Vortex

  1. 安装或更新 Palworld Vortex Extension,然后让 Vortex 管理《幻兽帕鲁》。
  2. 使用 管理器下载,然后点击 安装启用部署模组
  3. 安装或更新后,完全重启《幻兽帕鲁》。

手动安装

  1. 安装 Palworld 实验性构建版 UE4SS
  2. 下载并解压压缩包。
  3. FieldBossDefeatMarker 文件夹复制到:
Palworld/Pal/Binaries/Win64/ue4ss/Mods/

安装后的文件结构应如下所示:

Palworld/Pal/Binaries/Win64/ue4ss/Mods/FieldBossDefeatMarker/enabled.txt
Palworld/Pal/Binaries/Win64/ue4ss/Mods/FieldBossDefeatMarker/Scripts/main.lua
Palworld/Pal/Binaries/Win64/ue4ss/Mods/FieldBossDefeatMarker/Scripts/config.lua
Palworld/Pal/Binaries/Win64/ue4ss/Mods/FieldBossDefeatMarker/Scripts/common.lua

包含的 common.lua 是必需的,无需单独下载。如果你的 UE4SS 安装使用了 mods.txt,请添加:

FieldBossDefeatMarker : 1

安装或更新模组后,请完全重启《幻兽帕鲁》。


配置

打开 FieldBossDefeatMarker/Scripts/config.lua

return {
    -- 等待每日刷新的世界 BOSS 头像的透明度。
    DefeatedIconOpacity = 0.20,

    -- 为临时每日标记显示《幻兽帕鲁》的“已清除/勾选”图像。
    ShowClearMark = true,

    -- 临时“已清除”标记的大小和请求色调。
    ClearMarkScale = 1.8,
    ClearMarkColor = { R = 255, G = 45, B = 45, A = 255 },

    -- 轻量级事件队列间隔。这不是世界扫描。
    RefreshIntervalMs = 2000,

    -- UE4SS.log 中的附加消息。
    Debug = false,
}

DefeatedIconOpacity 接受 0.051.0 之间的值。值越低,已击败的 BOSS 越暗。

ClearMarkScale 控制临时“已清除”标记的显示大小。默认值 1.8 使其比原版标记大得多。

ClearMarkColor 接受 0-255 的 RGB 值或 0-1 的颜色值。在某些游戏版本中,《幻兽帕鲁》的图像材质可能会忽略色调。


工作原理

该模组监听标准世界 BOSS 生成器的确切 OnDeadOnCaptured 事件,并记录它们的 SpawnerName。在权威的独立/合作主机世界中,它还会导入《幻兽帕鲁》的 PalNPCManager.RespawnDisableFlag

地图图标通过其当前和原始的生成器 ID 进行匹配。模组仅在该 ID 存在于当日击败集合中时才修改图标。《幻兽帕鲁》的 AllResetBossRespawnFlag 事件和复制的总游戏日会清除临时状态。

本地 defeated.tsv 文件存储在模组文件旁边。它仅包含选定的世界标识符、游戏日编号和已击败的生成器 ID。它不是《幻兽帕鲁》的存档文件,且仅当状态改变时才会写入。


多人游戏

在单人游戏和合作主机中,模组可以直接读取权威的世界刷新禁用地图。

在专用服务器客户端上,该服务器拥有的存档地图不会复制到客户端。在这种情况下,模组会侦听客户端 BOSS 死亡 UI、《幻兽帕鲁》的中央捕获成功路径以及复制的捕获结果,然后将角色和事件位置与《幻兽帕鲁》内置的世界 BOSS 位置表进行匹配。观察到的事件会在当前复制的游戏日内保持。如果玩家离线期间其他玩家击败了 BOSS,仅客户端 UI 模组无法重建该信息。

每个希望在地图上看到显示的玩家都应本地安装此模组。服务器不需要它。


性能

该模组是事件驱动的。它不会重复调用 FindAllOf 或执行周期性的全面世界/地图扫描。仅追踪世界 BOSS 图标,重复的图标更新会合并为每个图标的单个排队操作。地图范围的图标刷新会设置一个布尔脏标志,而不是排队每个重复的小部件回调。世界/日范围检查以较低的频率运行。


需求


故障排除

已击败的 BOSS 未被标记

Debug = true,完全重启游戏,击败/捕获一个世界 BOSS,并检查 UE4SS.log。成功检测和图标匹配会产生类似以下的消息:

[FieldBossDefeatMarker] Field boss defeated: 81_1_grass_FBOSS_4
[FieldBossDefeatMarker] Map marker applied: 81_1_grass_FBOSS_4

更新后旧版本仍然有效

Lua 钩子会保持注册状态直到进程退出。完全关闭《幻兽帕鲁》,替换文件,然后重新启动游戏。不要在游戏运行时更新 Lua 文件。

打开地图时崩溃或出现“无效对象”错误

重新安装《幻兽帕鲁》实验性 UE4SS 构建版,并确认 MemberVariableLayout.ini 存在。不兼容的通用 UE4SS 布局可能会错误地读取《幻兽帕鲁》对象字段。


兼容性

专为当前 Steam 版本的《幻兽帕鲁》和发布时可用的《幻兽帕鲁》实验性 UE4SS 构建版设计。未来的游戏更新可能会更改世界 BOSS 生成器或地图小部件,需要模组更新。


卸载

ue4ss/Mods/ 中删除 FieldBossDefeatMarker 文件夹,并移除你在 mods.txt 中添加的条目(如果你添加过)。可选的 defeated.tsv 缓存位于同一文件夹内,会一并移除。