Files
metin2-client/docs/AVA2-BOSS.md
T
shenleiandClaude Opus 5.5 ffe097ec57 Add world boss window (AVA2 uitrack world-boss tab, read-only)
mt_boss lists the server's timed boss regens from the MTF1 "bosses"
query: alive/max, countdown, map-local position and period, paged by 8,
with per-boss spawn reminders that only fire on a fresh alive snapshot.
Teleport is left out.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 22:36:04 +09:00

3.5 KiB
Raw Blame History

AVA2 世界 Boss 追踪进度(v1)

2026-10-15。参考 AVA2 uitrack 的世界 Boss 页,只读。服务端见 metin2-server docs/FEATURE-BOSS-TRACK.md。没有移植 AVA2 的传送按钮(它会改变游戏进程);副本页已经由 mt_dungeons 实现。

与 AVA2 的差异

项目 AVA2 本实现
数据来源 专用封包 原有 /mt_features 查询,种类 bosses(能力位 256)
跨核心 不明(AVA2 服务端源码不在本机) 每个核心用原 HEADER_GG_RELAY 广播自己的 Boss 刷新点,旧核心会忽略
传送 有 无
提醒 有 有:刷新后在聊天框提示,以服务器快照为准

窗口

  • 入口:小地图左侧按钮列中的“Boss”(换线按钮下方)。
  • 标题“世界Boss”,有“刷新”“上一页/下一页”按钮,每页 8 行。
  • 每行显示:
    • [CHn] 或 [共享](频道 99)、Boss 名、地图名;
    • 状态(存活 a/m、刷新倒计时、即将刷新、不再刷新)、坐标(地图内坐标 /100,ANYWHERE 显示“随机位置”)、刷新周期;
    • “提醒:开/关”按钮,只能对未存活、有计时的 Boss 打开。
  • 窗口打开时每 30 秒刷新一次。倒计时按服务器时间和本地经过时间计算。
  • 名称:
    • Boss 名取自 nonplayer.GetMonsterName;
    • 地图名用服务端地图编号 → 地图目录(MAPS,取自服务端 map/index)在 localeInfo.MINIMAP_ZONE_NAME_DICT 中查找;
    • 找不到时显示“地图N”。

提醒

  • 提醒的键是 (vnum, 地图, 频道, x, y)。
  • 窗口关闭时,提醒过的 Boss 计时到期 2 秒后,客户端会主动查询一次。
  • 只有新快照显示它存活时,聊天框才提示“X 已在 Y 刷新”,然后清除这条提醒;只到计时不提示。
  • 服务器不再列出的 Boss 会被移出提醒。
  • 离开游戏(换线、换角色)时,清空快照和提醒。

客户端

  • 模块 mt_boss(src/platform/ScriptLib/BossScript.inc),在 PythonBoot.cpp 中安装,挂接 game.GameWindow.Open/Close。
  • FeatureServiceScript.inc:
    • 新增 bosses 种类和 boss 行解析(13 项,X/Y 有符号);
    • 校验 vnum/地图/周期非 0、频道 ≤ 255、alive ≤ max ≤ 255;
    • 一次最多 128 行。

证据

  • tests/wiki/test_boss.py(CTest:port.boss)共 5 项通过,覆盖:
    • 入口位置、各状态文字、坐标、分页;
    • 只在确认刷新后提示;
    • 未启用和空列表的提示;
    • 关闭时复位;
    • 地图表。
  • tests/wiki/test_service.py 新增 boss 行和旧服务端(cap 255)返回 unsupported 的测试。
  • 2026-10-15 联机测试(203,macOS 原生客户端,账号 admin):
    • 临时开了两个 channel5 核心:13040 放地图 1/21/41/68,13041 放地图 72/5。
    • 从任一核心进入游戏,窗口都列出两个核心的 5 个 Boss(海盗 5001 ×2、2307、1192、5161),倒计时一致。
    • 截图确认布局正常。测试后 channel5 已恢复原配置。

限制和未完成

  • 只列出有定时刷新的 Boss 刷新点(regen 文件里 time > 0);由任务或事件刷出的 Boss 不在列表中。
  • 共享频道(game99)的 Boss 要等 game99 换上新服务端才会出现。
  • 副本内地图(如 5、72)在 MINIMAP_ZONE_NAME_DICT 中没有名称,显示“地图N”。
  • macOS 桌面客户端没有中文字体,窗口文字显示为 ?。
  • Android 真机测试未做。