达成计数

达成计数

一个小巧整洁的HUD面板,一眼就能回答两个问题:我获得了多少进度,以及我最后获得的是哪一个。无需命令,无需编辑配置文件,也无需服务器端安装。

Achieve Count

一个小巧整洁的 HUD 面板,一眼就能回答两个问题:我获得了多少进度,以及最近获得的是哪一个。

无需命令,无需编辑配置文件,也无需在服务端安装任何东西。

功能

  • 实时计数器 — 已获得的进度显示为绿色,总数显示为灰色。
  • 最新进度 — 显示你刚刚解锁的进度名称,即使在提示消失后仍会留在屏幕上。
  • 拖拽放置 — 按下 F6,用鼠标抓住面板,将其拖放到任意角落。文本对齐方式会自动切换:右角落右对齐,左角落左对齐。
  • 完全游戏内设置 — 四个开关、一个重置按钮和一个完成按钮。无需手动编辑任何内容。
  • 支持英文和俄文 — 进度名称跟随你的游戏语言,可实时切换,无需重启。

如何使用

按下 F6 打开设置界面。这就是全部教程。

按键可在 选项 → 控制 → 按键绑定 → 杂项 中更改。还有一个默认未绑定的按键,可以切换面板而无需打开菜单。

仅客户端

这是一个客户端模组。无需在服务器上安装——你不需要这样做。原版服务器本来就会将你的完整进度发送到客户端;原版进度界面正是基于此工作的。Achieve Count 只是读取了已有的数据。

这也意味着它可以在任何兼容原版的服务器上运行,无需向服主提出任何请求。

关于计数器

总数不是固定数字,这是协议限制而非 Bug:Minecraft 服务器只会发送它已向你揭示的进度树部分,因此客户端确实无法得知其余部分。

Achieve Count 通过使用 max(revealed, minTotal) 来处理这个问题,其中 minTotal 默认为 126——这是原版中有显示图标的进度数量。在原版服务器上,计数器从第一秒开始就会显示 N / 126。如果模组服务器或数据包揭示了更多进度,则会显示更大的数字。如果你使用大型进度数据包,可以调整该阈值。

配置

设置界面中的所有内容都存储在 config/geekfreak_achive_count.json 中。你只需打开此文件来修改界面未提供的选项——颜色、淡出计时器和 minTotal。

键 默认值 含义
anchor BOTTOM_RIGHT TOP_LEFT、TOP_RIGHT、BOTTOM_LEFT、BOTTOM_RIGHT
marginX / marginY 4 距屏幕边缘的距离
fadeAfterSeconds 0 在最后一次变化后 N 秒隐藏面板;0 表示始终可见
minTotal 126 分母的下限
colorDone 0x55FF55 已获进度数量颜色
colorTotal 0xAAAAAA 总数和分隔符颜色
backgroundColor 0x60000000 面板背景色,ARGB 格式

已知限制

  • 会剥离进度数据包的服务器(某些反作弊系统)会导致计数器始终为零。客户端这边对此无能为力。
  • 如果服务器不发送判定时间戳,“最新”行会显示 —,直到你在当前会话中获得第一个进度。在会话内它始终有效,因为它是基于变化的数据得出的。

要求

Fabric Loader 0.19.3+ 和 Fabric API。1.21.11 版本需要 Java 21,26.x 版本需要 Java 25。


Achieve Count(俄文版)

一个整洁的 HUD 面板,一眼就能回答两个问题:获得了多少进度以及最近获得的是哪一个。

无需命令,无需编辑配置,无需在服务器上安装。

功能

  • 计数器 — 已获得的显示为绿色,总数显示为灰色。
  • 最新进度 — 在提示消失后,名称仍会留在屏幕上。
  • 鼠标拖拽 — 按下 F6,抓住面板,拖放到任意角落。对齐方式会自动切换:右角落右对齐,左角落左对齐。
  • 完全在游戏内设置 — 四个开关、重置按钮和“完成”按钮。
  • 支持俄文和英文 — 进度名称跟随游戏语言,可实时切换,无需重启。

如何使用

按下 F6。这就是全部说明。

按键可在 设置 → 控制 → 按键绑定 → 杂项 中更改。这里还有一个第二绑定——快速切换面板而不打开菜单,默认未分配。

仅客户端

这是一个客户端模组,无需也最好不要在服务器上安装:原版服务器本来就会将进度发送给客户端——否则按 L 键的进度界面就无法工作。因此该模组可以在任何原版服务器上运行,无需询问管理员任何问题。

关于分母

总数不是常量,这是协议限制,而非 Bug。服务器只会发送已揭示的进度树部分,其余部分客户端无从得知。

因此分母按 max(已揭示, minTotal) 计算,其中 minTotal 默认为 126——这是原版中带图标的进度数量。在原版服务器上,计数器会立即显示 N / 126。如果模组服务器或数据包揭示了更多,则显示其数量。阈值可配置。

限制

  • 会剥离进度数据包的服务器(某些反作弊系统)——计数器会保持为零,客户端这边无法修复。
  • 如果服务器不提供判定获取时间,“最新”行会在当前会话中的第一个进度之前显示 —。在会话内始终有效。