一个通过WebSocket将SPT(SinglePlayerTarkov/逃离塔科夫离线版)与郊狼设备进行连接的项目
通过郊狼3.0新增的WebSocket功能,允许游戏通过Mod实现控制郊狼设备,做到根据游戏状况实时调整强度。
本Mod基于SPT项目制作,通过BepInEx插件实现游戏客户端和服务端交互,根据受伤情况和撤离情况自动计算基础强度和累加强度并发送给郊狼设备。
本项目目前依然处于开发状态,存在不完善的地方,由于只是个拍脑袋花了三天做出来的简易项目,作者可能不会进行维护,欢迎有能力者推送代码修改。
由于使用了WebSocket技术,本项目只支持郊狼3.0设备。
- ✅ 在SPT战局中,根据你的健康状态(剩余生命值百分比和肢体损毁数)实时计算累加强度,并反馈给郊狼设备
- ✅ 在撤离成功/失败后,减少/增加基础强度
- ✅ Mod提供可调节的配置参数,可以自行修改
-
从右侧Release部分下载最新发布版本
-
解压下载的发布版本
-
将解压得到的BepInEx文件夹和user文件夹拖拽至游戏根目录覆盖
-
打开服务端和启动器,等待服务端加载完成
-
启动你的郊狼设备和app,切换至Socket控制模式
-
使用浏览器访问
http://<局域网IP>:<二维码广播端口>/qrcode,扫描生成的二维码连接控制服务器(地址可以在服务端Mod处自行配置) -
正常启动游戏即可
控制总体强度分为基础强度和累加强度,实际强度由基础强度和累加强度相加计算得到,基础强度由服务端配置,修改需要重新启动服务端,累加强度由客户端自动计算。
基础强度:
打开游戏客户端时,会将设备AB通道的强度设置为基础强度的值。
完成一场战局后,撤离状态会影响基础强度,死亡或迷失将导致基础强度+5,成功撤离/匆匆逃离/转移则会让基础强度-5(默认配置,可以在客户端实时调整)。
累加强度:
通过数个客户端Patch注入原版方法监听事件,以实现自动计算,AB通道同步。
受到伤害时,会根据当前剩余生命值与最大生命值上限(不受因手术减少的上限影响)计算当前剩余生命值所占百分比,并乘以生命值累加强度上限得到强度值,强度值在服务端根据最大强度比例被转换为实际强度值。
如,当前生命值为220,PMC生命值上限为440,A通道最大强度上限为50,生命值累加强度上限为50,则计算结果为(50*(220/440))/100*50,最后得到实际强度值12(向下取整)。
每当一处肢体损毁时,会额外为累加强度添加最大强度值的5%(配置文件可调)。
每当一处肢体得到治疗时,会将累加强度减少最大强度值的5%(配置文件可调)。
每次完成战局结算后,累加强度都会完全清空。
进入战局时,会根据进入战局的血量进行一次累加强度计算(即生命值不满时进入战局也会增加强度,而不是在生命值发生变化时才更新强度)。
服务端配置文件位于user/mods/DGLabs/config.json
{
"localIP": "192.168.31.70", // 绑定本地服务的IP地址,填写你启动游戏的设备的局域网地址
"wsPort": 9999, // WebSocket 服务端口
"qrCodePort": 3001, // 二维码广播端口
"channelABaseStrength": 20, // A通道基础强度
"channelBBaseStrength": 20 // B通道基础强度
}
