Black Market Edition
Black Market Edition 是一款针对 Titanfall 游戏的客户端多功能社区增强模组,包含大量提升游戏体验的改进与优化。
请注意,该模组仅适用于原版游戏,不包含游戏服务器。
安装
Windows
只需从 Releases 页面获取最新版本的安装程序并运行,即可安装 BME。
安装程序使用 Inno Setup 构建,基于 installer/ 文件夹中的脚本,并会自动检测游戏安装目录以解压文件。
Linux
你也可以在任何 WINE 前缀中直接运行 bme_installer.exe,并手动指定正确的游戏文件夹(因为该安装程序不会修改游戏安装文件以外的任何内容,也不需要更改 WINE 前缀配置)。
或者,你可以在终端中运行以下命令手动安装(需要 curl jq libarchive),并将第一行中的 GAME_DIR 调整为你实际的游戏安装目录:
## Adjust the line below!
GAME_DIR="$HOME/.local/share/Steam/steamapps/common/Titanfall"
[[ -d "$GAME_DIR" && -f "$GAME_DIR"/Titanfall.exe ]] || echo "ERROR: Invalid game dir specified! ($GAME_DIR)"
[ ! -f "$GAME_DIR"/bin/x64_retail/launcher.org.dll ] && mv -v "$GAME_DIR"/bin/x64_retail/launcher.{dll,org.dll}
BME_ZIP=$(curl -sS https://api.github.com/repos/p0358/black_market_edition/releases | jq --raw-output '[.[0].assets[] | select(.name=="bme.zip")][0].browser_download_url')
curl -sSL "$BME_ZIP" | bsdtar -xvf- -C "$GAME_DIR"
功能
- 比赛中途编辑装备配置
- 非常详细的 Discord 富媒体状态 + 基础邀请/加入支持
- Origin 本身的基础富媒体状态
- 图形设置中更大的最大视野(FOV)缩放;将鼠标悬停在视野选项上时会播放一段视频,帮助了解该设置带来的差异(缩放范围为 70 到 90)
- 私人比赛设置的实时同步(即时应用和刷新):不再有人互相争夺并覆盖彼此的设置
- 您可以在任意关卡开始飞行员/泰坦训练
- 用于竞技 CTF(PUG/锦标赛)的私人比赛设置预设,两次点击即可设置所有选项
- 公告提示已缩小,以免遮挡玩家视野,但仍保持醒目(根据众多玩家的反馈)
- 移除了“RETURN TO BATTLEFIELD”文本,计数器稍微移开屏幕中心,以便您正常瞄准(但请记住在计时器耗尽前返回战场!)
- 通常已失效的列表(即:非 attrition、frontier defense 或 campaign)如果恰好有玩家,左侧会显示一个感叹号,以便在查看时轻松注意到这一事实
- 修复了脚本中的各种小 bug(这些 bug 可能导致您因错误而被踢回主菜单)
- 如果曾使用过游戏模式,最后使用的游戏模式装备将正确获得焦点(而不是始终选择通用装备 1);最后使用的装备将始终获得焦点,即使使用键盘也是如此(因此你可以像使用手柄上的 A 键一样,使用 Enter 键确认它)
- 启用可通过
`键访问的游戏内控制台(增强了来自 Squirrel 的 print 和 svc_Print 网络消息的输出) - 使用
script_client和script_ui控制台命令执行 Squirrel 代码 - 当你成为队伍队长时,将默认的离开游戏内选项从“随队离开”更改为“单独离开”,以防止在你想单独离开时意外将队友带出
- 在鼠标/键盘设置中查看原始鼠标灵敏度值
- 移除最低鼠标灵敏度限制
- 独自开始私人比赛
- 在公开匹配中查看谁与谁在同一队伍中
- 卡顿警报,用于指示类似于 Titanfall 2 和 Apex 的各种连接问题(例如:“OUT OF SNAPSHOTS”、“NET CHOKED”)(需要启用
cl_showfps) - 独立的启动器 exe,缓解 Origin 出现异常且拒绝启动游戏的问题
- 在文字聊天中启用 Unicode 输入(因此你可以输入非英语字符;注意:某些游戏区域使用的字体无法显示许多非拉丁字符)
- 修复游戏邀请中的“XSS”问题(恶意的加入密钥可以执行任意客户端命令)
- 修复游戏中的其他各种安全问题
- 解锁
fps_maxcvar,并允许默认检测到的显示器刷新率高于 144 Hzfps_max -1(默认) 默认为显示器的刷新率上限fps_max 0将帧率上限解除为无限制(不推荐,会对网络上传产生不利影响,并导致客户端卡顿和出现各种故障)fps_max <value>将帧率限制为指定值
- 通过覆盖
hudwarp_chopsize从60到120来扭曲 HUD,从而缓解因在 CPU 中浪费过多时间(并导致 GPU 空闲)而使游戏 FPS 下降的性能问题- 通过设置
hudwarp_use_gpu 1使扭曲效果在 GPU 而非 CPU 上运行,可以在对 HUD 视觉质量损失最小的情况下完全避免性能惩罚 - 通过将该 cvar 值设置得更高,可以进一步改善性能
- 通过设置
hudwarp_disable 1可以获得最佳性能,但这会产生不再在视觉上扭曲 HUD 的不利影响
- 通过设置
- 允许在未拥有 DLC 的情况下加入 DLC 播放列表(通过在播放列表对话框中添加忽略按钮)
- 这允许你(大致上)玩游戏,即使你无法获取豪华版或季票密钥
- 一旦轮换中出现 DLC 地图,你将在其启动时被踢出大厅:即便如此,这总比完全无法在该播放列表上玩游戏要好
- 使游戏自动跟随默认声音输出设备(例如连接蓝牙耳机时;但由于某些引擎 bug,可能并不总是有效,届时仍需重启游戏)
- 如果游戏内计数器损坏,则添加来自 titanfall.p0358.net 的自定义播放列表玩家数量(回退的 BME 计数器以绿色显示,而来自 Stryder 的原始游戏计数器以琥珀色显示)
- 对于基于交换阵营的游戏模式,在 HUD 中显示你正在玩上半场还是下半场
- 允许在不制作修补版 VPK 文件的情况下替换 VPK 文件,只需将你的修改文件放入游戏安装目录下的
r1_mod目录- 使用 concommand
fs_replacements_cache_refresh在不重启游戏的情况下刷新文件列表
- 使用 concommand
- 允许在比赛结束后自动将游戏记分板保存为 JSON 文件
- 使用 cvar
bme_cl_save_scoreboards 1启用此功能 - 文件将保存到
<game dir>/bme/saved_scoreboards目录,名称格式如2024-05-28_11_40_04-private_match-ctf-mp_relic-5v5.json(时间为 UTC) - 你可以通过
bme_cl_save_scoreboards_upload_url <URL>启用上述文件的自动远程上传,通过 HTTP POST 将它们上传到你的自定义端点
- 使用 cvar
已知问题
- 按下 M 键激活燃烧卡牌时,不知何故似乎会激活全屏地图
- 将私人比赛设置滑块设置到边缘时,不精确的操作可能会应用错误的设置(该设置将在一秒内显示)
截图
主菜单:

Discord 富媒体状态:

具有扩展范围和背景预览视频的 FOV 缩放设置:

地图加载期间的游戏内控制台(使用 ` 激活):

在游戏中途编辑装备配置的可能性(在控制器上按 Y 键,或用鼠标右键点击装备配置):

在对局中编辑飞行员载具配置:

移除了“RETURN TO BATTLEFIELD”文本,并将计数器移至侧面,以免遮挡瞄准视野:

公告文本已缩小,以减少其干扰性和突兀感:

“邀请好友”按钮会打开一个对话框,允许您选择邀请好友的平台:

允许在私人匹配中快速将设置更改为预设的一组(在此情况下用于竞技性 CTF 游戏)的预设:

私人比赛设置中缺少“应用”按钮,因为设置现在实时同步,这防止了人们在同时编辑时相互覆盖对方的设置:

训练可以完整进行,也可以从任意阶段开始:

任意训练阶段选择:

设置中可见的鼠标灵敏度值:

回退播放列表播放器计数器:

在换边制游戏模式(如 CTF)中,显示你正在上半场还是下半场:

编译
- 使用
git clone --recursive --depth 1 https://github.com/p0358/black_market_edition.git克隆仓库 - 运行
generate.bat以生成 Visual Studio 项目文件 - 运行
copy_scripts_to_r1_modsrc.bat将所需文件从bme_scripts复制到r1_modsrc。 - 运行
build_assets.bat将r1_modsrc目录内容打包到installer/source/bme/bme.bsp并生成文件列表头文件 - 在 VS 2022 中构建解决方案(
./build/bme.sln)(或者运行msbuild build\bme.sln -m)。 - 查看
installer/installer_simple2.iss以确定哪些文件应放置在哪里(最重要的是复制bme.dll和Titanfall_alt.exe)。 - 可选地构建安装程序(说明见下文)。
注意:如果你在 r1_modsrc 中添加/删除文件,你也需要重新编译 DLL(因为它包含可用文件的列表)。
构建安装程序
要为完整模组构建安装程序,在完成上述步骤后,你需要查看文件 installer/installer_simple2.iss 并手动将所需文件复制到 installer/source 目录。
- 在
installer/source/bme/下,复制编译好的bme.dll(来自build/x64-<CHANNEL>/bin/bme.dll)。 - 还创建
bme_channel.txt,其值为staging(或release)。 bme.bsp在上面的编译步骤 #4 之后应该已经存在(此文件包含文件系统替换内容,即脚本和一些 UI 元素,作为 bsp 格式中的 lump 40 放入 PakFile,可以很容易地在引擎中挂载)。- 将构建好的
launcher.dll复制到installer/source/bin/x64_retail/,将Titanfall_alt.exe复制到installer/source/。 - 使用 Inno Setup 编译出
installer/installer_simple2.iss(如果你的路径中有iscc,则使用build_installer.bat脚本)。生成的安装程序将在installer/bme_installer.exe中。
致谢
部分代码来自 TTF2SDK by James Wilkinson and Will Donohoe 被使用。
Black Market Edition 使用了以下第三方库:
TITANFALL™ 是 Respawn Entertainment, LLC 的商标。