HUD 伤害与击杀统计 - Lin515/L4D2_LinGe_VScripts GitHub Wiki

HUD 会在所有人的屏幕上显示排行榜、时间、玩家人数等。对于时间,如果要显示世界时间需要安装辅助插件。

指令

  • !save hud 或者 !saveconfig hud
    保存 HUD MOD 的功能设定到配置文件。
  • !hud 或者 !hud all 打开/关闭所有 HUD
    !hud time 打开/关闭时间显示
    !hud players 打开/关闭人数统计显示
    !hud hostname 打开/关闭服务器名显示
  • !rank n 设置 HUD 排行榜显示 n 人,为 0 则关闭排行榜
  • !hd 立即输出聊天窗排行榜
  • !hd auto n 每隔 n 秒自动输出一次聊天窗排行榜
    若 n=0,则只在回合结束时自动输出;若 n<0,则彻底关闭自动输出。
  • !hd player n 聊天窗排行榜最多显示 n 人
    该设置同时影响 Tank 的伤害统计。 若 n<=0,则会彻底关闭聊天窗排行榜、Tank 伤害统计的显示。
  • !thi n 设置友伤即时提示
    0:关闭 1:公开式 2:仅双方可见

配置

在配置文件找到 HUD = {

  • HUDShow
    • all 总开关
    • time 是否显示时间
    • players 是否显示人数统计
    • hostname 是否显示服务器名
    • versusNoHUDRank 对抗模式下是否永远不显示排行榜
    • CompatVSLibHud 是否兼容 VSLib HUD
      默认为 true,本 HUD 关闭后总是会将 HUD 控制权交给 VSLib,若为 false,则不对控制权进行操作。(如果你需要使用其它 MOD 的 HUD,而其 HUD 是基于 VSLib 实现的,则设置为 true;如果你需要使用插件的 HUD,则设置为 false。不论如何,如果要使用其它 HUD,本 HUD 都必须关闭,即将 all 设置为 false)
  • textHeight2 HUD 中一行文字的高度
    它影响了 HUD 的整个排版布局,默认值为 0.026。如自己修改建议不要低于此值。
  • position 各 HUD 元素位置
    • players_x,y 玩家数量
    • hostname_x,y 服务器名
    • time_x,y 时间
    • rank_x,y 排行榜
  • hurt
    • HUDRank HUD排行榜最多显示多少人
    • HUDRankMode HUD排行榜的模式
    • rankCompact 紧凑式模式样式设置
    • rankColumnAlign 分列模式样式设置
    • HUDRankShowBot HUD 排行榜上是否显示 BOT 的数据
    • chatRank 聊天窗排行榜最多显示多少人,无上限
    • chatStyle2 聊天窗排行榜的显示样式
    • discardLostRound 累积数据是否丢弃败局回合的数据
    • autoPrint 每间隔多少秒输出一次聊天窗排行榜
    • teamHurtInfo 友伤即时提示
    • chatAtkMaxStyle/chatVctMaxStyle 造成/受到友伤最高样式
    • chatTeamHurtPraise 没有发生友伤事件,则会发出该提示。设置为 null 则什么都不会发送。
    • tankHurt Tank 伤害总结样式
  • playersStyle 玩家数显示样式

排行榜自定义

排行榜包括 HUD 排行榜与聊天窗排行榜。

配置

聊天窗排行榜的配置项为 HUD.hurt.chatStyle2,默认值 特:{ksi}({si}伤害) 尸:{kci} 黑:{atk} 被黑:{vct} <- {name}

HUD 排行榜有三种显示模式可以选择,通过 HUD.hurt.HUDRankMode 进行设置:0.紧凑模式 1.分列兼容多分辨率模式 2.分列不兼容多分辨率模式

  • 紧凑模式
    配置项为 HUD.hurt.rankCompacttitle 设置标题,style 设置数据样式,默认为 [{rank}] {ksi}/{kci} <- {name}({state})
    数据可以显示得比较紧凑,最大显示容量为 22~28 名玩家。它是一个动态值,根据其它 HUD 项目的开关动态调整,如其它 HUD 项目全部关闭则最多可以显示 28 人数据。
  • 分列模式
    数据按列对齐方式排列。兼容与不兼容多分辨率配置项均共用 HUD.hurt.rankColumnAlign:它是一个数组,用于对每列数据进行单独的设置:width 列宽度,title 标题,style 数据样式。

关键词

参考默认设置,通过将以下关键词以 { } 包裹,它在显示时就会被替换为相应的数据:

  • 非统计类数据:
    • rank 排名
    • name 玩家名字
    • state 玩家状态
  • 单回合数据:
    • si 对特感伤害
    • ksi 击杀的特感
    • kci 击杀的小丧尸
    • hsi 以爆头击杀的特感
    • hci 以爆头击杀的小丧尸
    • atk 造成的友伤
    • vct 受到的友伤
  • 累积数据
    单回合数据在过关或者回合重启时会被清空。它们都有对应的不会被清空的累积数据,只需在关键词前加上 t_ 或 o_ 即可。t_ 与 o_ 唯一的区别是,t_ 数据会实时更新,而 o_ 不会。
    例:整局游戏所累积的特感击杀数为 {t_ksi},它与单回合特感击杀 {ksi} 一样会实时更新;在本回合之前所累积的丧尸击杀数为 {o_kci},它只会在每回合开始时更新,不会实时更新。

分辨率适配与排版布局

本 MOD 默认设置适配于 1080p 分辨率。不管是哪种显示模式,HUD 的排版在其它分辨率都会出现程度不一的排版问题,若是更高分辨率,一般排版问题不明显或是可接受程度,而低分辨率则可能影响游戏体验。因为 HUD 无法针对单个玩家开启或关闭显示,也无法针对单个玩家根据其分辨率进行排版布局上的调整。
如果你不想了解太多,而想让 HUD 在所有分辨率上都能有较好的显示效果,那么我推荐你使用下列两种方案中的一种:

  1. 紧凑模式,设置排行榜人数不超过当前 最大显示容量的1/2。(即 11~14,不超过 1/2 容量时,每个 HUD 槽只显示一个玩家的数据,不容易出现排版问题。)
  2. 分列兼容多分辨率模式,设置排行榜人数不超过 4。

在配置文件中除了 HUD.position 设置项可以用来调整每种 HUD 元素的所在位置,还提供了一个特别关键的参数 HUD.textHeight2,名为文本高度,它指定 MOD 在计算布局时,一行文字将会被视为多高。它会影响 HUD 的整个布局,默认为 0.026,对应着 1080p 分辨率下的文本高度。
在 1920x1080 分辨率,画面高度为 1080,字体高度为 1080*0.026。假如在 768p 分辨率下仍使用 0.026,MOD 就会认为每行文字的高度为 768*0.026,计算的高度比实际的高度小,排版布局出来的文字就会显得“挤”在一起。

HUD 无法同时满足任意分辨率下的完美排版显示。将文本高度值调为 0.031 或 0.036,低分辨率 768p 玩家看起来会比较舒服一点,而 1080p 看起来则会不如 0.026 那样紧凑。

玩家数信息栏自定义

可以显示当前玩家的数量与所有玩家伤害、击杀统计数据的总和。

配置

配置项为 HUD.playersStyle

  • coop 战役模式,默认为 活跃:{sur,human} 摸鱼:{ob} 空位:{vac} 存活特感:{spe,alive} 本局特感击杀:{ksi}
  • versus 对抗模式,默认为 生还:{sur,human} VS 特感:{spe,human}

关键词

  • 特殊关键词 当包含特殊关键词时,其它类型关键字将被忽略
    ob:旁观者玩家(闲置也属于旁观者) idle:闲置玩家 vac:房间空位 max:房间允许的最大人数
  • 队伍 sur:生还者 spe:特感
  • 玩家类型 human:真人 bot:机器人
  • 生存状态 alive:存活 dead:死亡
  • 运算符 +,-
  • 伤害、击杀数据
    可以设置所有排行榜数据关键词,在此处它会被计算为所有玩家的总和

例如想要显示所有的生还者玩家数量,而不限定玩家类型、生存状态,则为 {sur};想要显示所有存活的真人生还者玩家,则为 {sur,human,alive}
运算符可进行运算,例如想要将闲置玩家算作活跃玩家,可以设置 活跃:{sur,human,+,idle} 摸鱼:{ob,-,idle}

造成友伤最高与受到友伤最高自定义

在输出聊天窗排行榜的同时,会在最后显示本局造成友伤最多与受到友伤最多的统计数据。

只有 name:玩家名 与 hurt:伤害值 两个关键词可用:
造成友伤最高配置项:HUD.hurt.chatAtkMaxStyle,默认:队友鲨手:{name}({hurt})
受到友伤最高配置项:HUD.hurt.chatVctMaxStyle,默认:都欺负我:{name}({hurt})
这两项都可以设置为 null,这样就不会输出对应的数据。

Tank 伤害总结自定义

每击杀完场上所有的 Tank 后,都会自动输出本次的 Tank 伤害总结。

配置项 HUD.hurt.tankHurt

  • title
    标题内容,提示本次击杀的 Tank数量。
    更改内容可以调整 count:Tank数量 关键词的位置。
  • style
    每位玩家对 Tank 造成的伤害统计。
    可以使用 rank:排名 hurt:伤害值 name:玩家名 三个关键词。
⚠️ **GitHub.com Fallback** ⚠️