自动隐藏HUD

自动隐藏HUD

自动隐藏HUD部分内容的Mod(可设置隐藏状态、背包、增益效果、指南针),非战斗或受伤时生效。

用户界面

此模组将自动隐藏 HUD 的部分元素(包括状态、口袋、增益、指南针、提示的选项),仅在战斗中或受伤时显示。

已脱离测试版!

很高兴宣布,从 1.0.5 版本开始,最初期望的所有功能均已实现!

口袋

  • 口袋现在在 1.0.2-beta 中可于使用时自动显示!感谢 EddieShoe 提供的绑定功能协助!模组现在包含 Unlimited Save II。

加载存档时自动启动模组

  • 加载存档时自动启动模组在 1.0.4-beta 中已完善!感谢 VadimCool 找到了正确的监听方法。

增益更新时自动显示及提示支持

  • 在 1.0.5 版本中添加了增益自动显示和提示支持!请查看底部的设置新选项。
  • 此外,增益更新仅在“不同区间”内显示,以使其不会频繁出现。基本上,只有当更新值经过以下阈值时才会显示一次:0-10%、10-25%、25-50%、50-75%、75-100%(如果在不同阈值间来回变动,它会在该区间内再次出现一次

⚠️ 增益支持需要额外的下载文件!请阅读安装步骤。

如果你想提供帮助,请加入 模组 Discord,进入 Dynamic / Auto HUD 频道。我也可以将你选入模组并分享点数,这没问题,我只关心能为我的游戏流程和其他人提供一个好用的模组 :P

感谢所有在 Discord 上提供帮助的人!

⚠️ 1. 此模组 不兼容 任何使用以下脚本功能的模组:

function Player:OnAction(action, activation, value) 

⚠️ 2. 增益在添加/更新时自动显示的功能 不兼容 任何修改 hud.gfx 的模组。我在我的 半透明 HUD 中添加了一个可选支持文件。

对于希望使其兼容的模组作者,请阅读本页底部的内容。

请按照以下步骤安装模组:

1/ 基础模组文件

  1. 下载 主文件 AutoHideHUD
  2. 下载 主文件 AutoHideHUD - Original HUD - Buffs support其不带黑边的可选替代文件如果你使用了其他依赖 hud.gfx 的模组,则不要下载,否则除非模组作者使其兼容,否则你将无法看到增益动态显示
  3. 解压压缩包
  4. 将内容放入你的 KCD2\Mods 文件夹(如果不存在则创建)

2/ Mod.cfg 文件

  • 更新 1.0.7:抱歉,不再需要 user.cfg,请使用位于模组文件夹中的 mod.cfg 进行设置。
  • 如果需要加载 user.cfg,请参阅此教程:安装指南

自定义绑定

如果你想手动显示 HUD,可以将以下命令绑定到某些按键上:

  1. 临时显示所有 HUD(时间可配置):
bind KEY autohidehud_show_hud
  1. 可切换临时显示提示(与 show_hud 相同的计时):
bind KEY autohidehud_toggle_hide_hints

⚠️ KEY = 根据评论,仅支持 F2-F12注意 F5/F6/F9 可能被用于快速保存/加载),根据某些评论,需要使用小写,例如 f2 而不是 F2。

自动隐藏设置

1.0.6(以及现在的 1.0.7)版本完全改变了你设置此模组选项的方式,只需使用 mod.cfg 文件即可!请查看上面的安装步骤,并根据需要配置参数。

请注意,我无法使其与 mod 文件夹中的 mod.cfg 文件一起正常工作,因为该文件在模组加载之前就被加载了,所以 user.cfg 是唯一的方法。

mod.cfg 文件的内容大致如下(抱歉有点模糊,只是让你了解一下):

兼容性(供模组作者参考)

  • 在 JPEX 中,编辑 hud.gfx,转到 Scripts\frame 1\DoAction
  • 替换下方显示的 "fc_addBuff" 和 "fc_updateBuff" 函数,新添加的行是调用 "flash.external.ExternalInterface.call(" 的行:
function fc_addBuff(buffId, iconId, type, order, progress, secondProgress, perkUIName, perkIconId)
{
   flash.external.ExternalInterface.call("onAddBuff",buffId);
   var _loc9_ = false;
   if(order < 0)
   {
      _loc9_ = g_BuffLeftNotifMngr.Insert(buffId,Math.abs(order),-1,[iconId,type,progress,secondProgress,perkIconId]);
   }
   else
   {
      _loc9_ = g_BuffRightNotifMngr.Insert(buffId,order,-1,[iconId,type,progress,secondProgress,perkIconId]);
   }
   if(_loc9_ && type == Enum.BUFF_TYPE_PERK && perkUIName != undefined && perkUIName != "")
   {
      g_CommonNotifMngr.Insert(perkIconId,Enum.GetPriorityByEventType(Enum.PERK_EVENT),Enum.LONG_NOTIFICATION_DURATION,[Enum.PERK_EVENT,Enum.PERK_ACTIVATED,perkIconId,perkUIName]);
   }
}

function fc_updateBuff(buffId, progress, secondProgress)
{
   if(g_BuffLeftNotifMngr.Contain(buffId))
   {
      g_BuffLeftNotifMngr.Change(buffId,[progress,secondProgress]);
      flash.external.ExternalInterface.call("onUpdateBuff",buffId,progress);
   }
   else if(g_BuffRightNotifMngr.Contain(buffId))
   {
      g_BuffRightNotifMngr.Change(buffId,[progress,secondProgress]);
      flash.external.ExternalInterface.call("onUpdateBuff",buffId,progress);
   }
}