半条命 2 Mod —— 用郊狼⚡模拟一下自己和敌人的受伤痛觉~
目前仅适用于 “半条命 2” 章节,其余章节/DLC暂时不支持,后续可能会有支持更新
本 Mod 需要与一个中转程序(PyDGLab-WS 连接器)配合使用,以实现与郊狼 DG-Lab App 的连接。
- 前往 GitHub Release 页面,下载以下文件:
- Mod 压缩包
- PyDGLab-WS 连接器(
PyDGLab-WS Connector.exe
)
- 将 Mod 压缩包解压至
<Steam 库路径>\steamapps\sourcemods
,确保解压后的 Mod 目录名为dglabiemod
- 可通过 Steam “设置” - “储存空间” 查看所有下载库和路径
- 如果不存在
sourcemods
目录,请手动创建 - 参考图位于下方
- 安装 Mod 后,运行 PyDGLab-WS 连接器程序
- 如果遇到防火墙权限请求,请同意,否则手机端 DG-Lab App 的传入请求将被阻断
- 确保手机与电脑处于同一局域网,并在 PyDGLab-WS 连接器中切换至对应网络的二维码
- DG-Lab App 打开“SOCKET 控制”界面,扫描 PyDGLab-WS 连接器程序中显示的二维码
- 重启 Steam,您的库列表应该会多出“DGLab Injury Experience Mod”这一项,启动游戏
- 进入游戏后,在 主菜单/暂停菜单 中打开 Mod 设置界面进行设置
- 【可选】根据实际情况,在 Mod 设置界面中修改 PyDGLab-WS 连接器的 IP 地址和端口号
- 在 Mod 设置界面中,点击“连接”按钮以连接至 PyDGLab-WS 连接器
- 开始游戏!
在 Mod 安装后,您不会看到来自游戏本体的存档,您需要手动复制存档目录。
<Steam 库路径>\steamapps\common\Half-Life 2\hl2\save
<Steam 库路径>\steamapps\sourcemods\dglabiemod\save
如果您遇到进入存档后显示“AI Disabled”字样,游戏敌人等实体静止无反应,那么可按下面步骤修复:
- 进入暂停界面,退出至主菜单,在 “选项” - “键盘” - “高级” 界面,勾选 “启用开发者控制台”
- 按 ` 键(默认)开启开发者控制台
- 在开发者控制台输入
ai_norebuildgraph 1
并回车确定 - 重新进入原来的存档,修复完成
-
在游戏中 Mod 设置界面修改设置后,需要点击保存按钮以使其生效
-
如果 PyDGLab-WS 连接器程序启动后,无法显示二维码,可能是由于端口被占用,请在程序目录下创建
.env
文本文件以进行配置,内容如下:# 用于与 DG-Lab App 建立连接的监听接口(一般保持如下默认值即可) WS_HOST=0.0.0.0 # 用于与 DG-Lab App 建立连接的监听端口号(如下为默认值,如果端口被占用,可以尝试换一个) WS_PORT=5678 # 用于与游戏 Mod 建立连接的监听接口(一般保持如下默认值即可) CONNECTOR_WS_HOST=0.0.0.0 # 用于与游戏 Mod 建立连接的监听端口号(如下为默认值,如果端口被占用,可以尝试换一个) CONNECTOR_WS_PORT=5679
更多配置项请参考:
pydglab_ws_connector/config.py
随后再重启 PyDGLab-WS 连接器程序
当 玩家自身 / 人类敌人(城市警察、联合军) 受到伤害时,会根据伤害量,触发不同强度的电击效果。
具体规则如下:
- 已提前设定郊狼强度范围(最大值和*最小值)
- 根据人类敌人受到的伤害量占其总生命值的百分比,设定范围内的电击强度
- 当人类敌人受到的伤害量大于其总生命值时,电击强度为最大值
- 当玩家受到伤害时,设定固定电击强度
- 当玩家死亡时,向郊狼发送 5 秒的强度最大的持续波形
- 玩家重生时停止电击
- 出现下列情况时电击强度增大:
- 伤害类型为 燃烧 时:强度 * 5
- 实体为 联合军 时:强度 * 2
上述规则中的为玩家自身开启、为人类敌人开启、强度范围、玩家固定强度均可自定义。
src/dglab_ws_client/*
: 与 PyDGLab-WS 连接器建立 WebSocket 连接src/server/dglab_damage_handler.[cpp|h]
: 处理玩家和人类敌人受到伤害的事件,计算电击强度并发送波形src/server/dglab_ws_server_commands.cpp
: 响应 client 端(Source SDK 定义的客户端)Mod 设置界面的修改请求src/client/CDGLabIEModPanel.cpp
: 定义 Mod 设置界面game/mod_hl2/resource/*
: 里面包含主菜单及语言本地化文件
包括城市警察、联合军、玩家和 VGUI 等相关代码文件,您可以直接在 Git 提交日志或上述代码的引用中查找。
供希望自定义或改进该 Mod 的开发者参考,可避免踩坑(
- 安装 Visual Studio 2013(主要是需要其生成工具及 v120_xp 工具集)
- 安装您喜欢的 VS 项目开发 IDE(如 Visual Studio 或 JetBrains Rider)
- 克隆本仓库,并确保子模块仓库同样被克隆下来
- 在您喜欢的 IDE 中打开 Mod 解决方案(
src/games.sln
) - 用 IDE 或编辑器全局替换文本:
将原项目路径:替换为您的实际项目路径,如:C:\Users\mcdha\Documents\HL2-DGLabInjuryExperienceMod
C:\Users\yourname\HL2-DGLabInjuryExperienceMod
暂时未找到更好的解决方案
- 开始构建,构建生成的服务端和客户端 DLL(
server.dll
,client.dll
)将自动复制到最终 Mod 目录game/mod_hl2
的bin
目录下。提示:按某个配置(如 Debug)构建完后,如果要切换到其他配置(如 Release)进行构建,需要先清理解决方案
其余可参考 Source SDK 官方文档:https://developer.valvesoftware.com/wiki/SDK_Docs
目前遇到了困难,主要是 Visual Studio 2013 难以安装,即使使用 chocolatey。如果您有解决方法,欢迎提交 PR!
相关 Workflow 文件:.github/workflows/msbuild.yml
- Mod 许可证:LICENSE
- 该 Mod 基于 Source SDK 开发,源 SDK 遵循以下许可证:
- 如果您需要再分发该 Mod 或 Source SDK,需要附带上述许可证文件
- Source SDK 仓库链接:https://github.com/ValveSoftware/source-sdk-2013
- 本 Mod 也在 Nexus Mods 发布:https://www.nexusmods.com/halflife2/mods/99