HsMod
Hearthstone Modify Based on BepInEx 基于BepInEx的炉石修改,插件源代码位于github.com/Pik-4/HsMod,插件不会收集您的任何信息;项目遵循AGPL-3.0
,仅用作学习研究。
已实现的功能
- 支持齿轮快慢8倍速
- 允许使用VerifyWebCredentials登录(亦支持命令行启动,不需要启动战网)。
- 屏蔽错误报告,当发生异常时,不会向暴雪报告错误信息。
- 禁用掉线,允许长时间无操作
- 允许报错自动退出
- 允许移除窗口焦点
- 解除窗口大小化限制
- 拦截弹窗(如无法匹配等)提示。
- 移除**特色提示
- 支持移除削弱补丁提示,移除广告推销,移除天梯结算奖励等弹窗
- 允许屏蔽对局结束的升级提示、结算提示
- 允许屏蔽战令、成就等奖励领取提示
- 允许快速开包,空格一次开5张
- 允许在开包时自动分解全额分解的卡牌
- 允许显示游戏帧率信息
- 允许修改游戏帧率
- 支持在收藏、英雄、卡背、打击特效、酒馆面板等场景,右键选中卡牌时显示Dbid
- 支持收藏显示9+卡牌实际数量
- 允许在0-0(可以不组卡牌)时放弃对决
- 允许自动领取竞技场、对决等奖励(结束时点包裹)
- 允许进入炉石开发者模式
- 好友观战自动旋转卡牌、自动观战双方
- 支持炉边聚会模拟定位
- 允许自动屏蔽对手表情或设置对方表情上限;支持屏蔽思考表情;支持屏蔽鲍勃语音;支持对战跳过英雄介绍
- 支持表情无冷却(表情发送最小间隔1.5秒)
- 支持表情快捷键
- 支持酒馆快速战斗(跳过部分动画,比齿轮更丝滑,开启时屏蔽终结特效)
- 支持炉石自动金卡、钻石卡
- 允许单独屏蔽对手卡牌特效
- 允许显示对手完整战网昵称
- 允许点击头像获取酒馆玩家昵称
- 允许对战中添加对手
- 允许在传说前显对手示天梯等级
- 支持标记对手已知卡牌
- 允许使用快捷键静音炉石
- 允许自动举报对手;当自动举报对手启用时,可以自动生成对局记录
- 支持模拟拔线(需要开启快捷键)
- 支持一键自动分解全额分解的卡牌(需要开启快捷键)
- 支持一键移除
新!
(需要开启快捷键,可能需要重新进入收藏,佣兵可能重启后失效) - 支持修改对战英雄皮肤、酒馆英雄皮肤、终结特效、对战面板、酒馆面板、幸运币等皮肤信息。(需要配置
HsSkins.cfg
,或在设置中修改,对局中更新需要在按下F4
保存后,模拟拔线) - 支持修改卡背(对局中自动生效)
- 支持佣兵随机皮肤,强制钻石皮肤等
- 支持屏蔽佣兵宝箱、天梯奖励等弹窗
- 支持屏蔽佣兵对战界面缩放
- 支持模拟开包(支持结果随机,支持自定义卡包类型、数量、稀有度、品质等信息;支持模拟固定结果)
- 支持设备模拟(允许领取iOS、Android等设备的卡包卡背,可能需要一局对战)
- 支持金币购买纳克萨玛斯、黑石山、探险者协会等冒险(也支持卡拉赞,但无法打序章)
- 允许强开卡拉赞(不能打序章,未通关前不能跳关)
- 支持信息展示(showinfo,需要启用插件,默认HTTP,端口58744);支持显示佣兵养成进度、开包历史信息等。
安装说明
Windows
-
编译
HsMod
或从Releases
下载HsMod.dll
。 -
配置
BepInEx
。2.1. 下载BepInEx_x86,并将其解压到炉石根目录
Hearthstone\
下。2.2. 创建一个目录
Hearthstone\BepInEx\unstripped_corlib\
;下载Mono和Unity,并将其解压在该目录。2.3. 修改
Hearthstone\doorstop_config.ini
,将dllSearchPathOverride=
替换成dllSearchPathOverride=BepInEx\unstripped_corlib
-
将
HsMod.dll
存放在Hearthstone\BepInEx\plugins
。 -
安装BepInEx配置管理BepInExConfigManager.Mono,解压到
Hearthstone\BepInEx\
即可;进入游戏后F5
进行相关控制。
Mac (尚未测试)
-
Download the latest version of BepInEx_unix and extract it to
Hearthstone\
-
Download original Mono and Unity libraries and unpack to
Hearthstone\BepInEx\unstripped_corlib\
. ( PS. Mono and Unity version must same as Hearthstone ) -
Edit the
run_bepinex.sh
file replacing the lineexport DOORSTOP_CORLIB_OVERRIDE_PATH=""
withDOORSTOP_CORLIB_OVERRIDE_PATH="$BASEDIR/BepInEx/unstripped_corlib"
-
Edit the file
run_bepinex.sh
replacing the lineexecutable_name=""
withexecutable_name="Hearthstone.app"
-
Run command in console
chmod u+x run_bepinex.sh
-
Get the token here and copy after
http://localhost:0/?ST=
and before&accountId=
# Some verify url https://www.battlenet.com.cn/login/zh-cn/?app=wtcg https://us.battle.net/login/en/?app=wtcg https://tw.battle.net/login/zh/?app=wtcg https://kr.battle.net/login/zh/?app=wtcg ...
-
Create a
client.config
file with the following content, instead oftoken
- insert the token obtained in the previous step. Env valuexx.actual.battle.net
;xx
same as the token first two characters. E.g[Config] Version = 3 [Aurora] VerifyWebCredentials = "token" ClientCheck = 0 Env.Override = 1 Env = cn.actual.battle.net
-
Download the HsMod Releases and unzip to
Hearthstone\BepInEx\plugins
-
Download the BepInExConfigManager.Mono and unzip to
Hearthstone\BepInEx
, After entering the game, pressF5
to control HsMod.
Now the game needs to be launched only through ./run_bepinex.sh
If the token becomes obsolete and the game stops opening, then you just need to update it in the client.config
.
补充说明
- 插件不可放置在含有中文的目录下,即炉石安装路径不能含有中文。
- 本插件可能与基于
Assembly-CSharp.dll
的修改冲突,修改Assembly-CSharp.dll
可能导致IL指令定位异常,进而造成相关Patch无法生效;还可能与其他BepInEx插件(例如佣兵、MixMod)冲突,原因是同一个方法可能在两个插件中都存在Patch,当有多个Patch时,运行结果可能会异常,本插件没有检测原方法是否被修改。 - 皮肤的配置文件在
Hearthstone\BepInEx\config\HsSkins.cfg
。若无,则在运行游戏后自动创建。 F4
为固定快捷键,用于获取游戏内部分信息(相关信息存放在Hearthstone\BepInEx\
目录下)、更新皮肤配置、重启Web服务等。其余快捷键均可自定义配置。- 本插件在默认状态下,几乎全部的功能均需要手动开启;插件大部分功能能在配置中找到说明,少部分功能只在Patch中提及(如最小化限制)。
- 本插件Web Server(即Showinfo)的默认端口为58744,一般情况下,监听本地所有IP,使用云服务器时,请注意防火墙配置。
- 对局统计所使用的log文件是
BepInEx\HsMatch.log
,可在设置中修改。此外对局统计页面适配的佣兵插件为MercenariesHelper(当MercenariesHelper配合HsMod编译时,其Build4Public值应为false,以忽略与HsMod的相同Patch)。其他佣兵插件暂未做适配。 - 出现问题时先尝试删除相关
.cfg
配置文件(一般位于BepInEx\config\
),进行重新配置;如果依然存在问题,请带上HsMod.cfg
提交Issues,但不保证及时解答。 GetHsLib.py
用于更新炉石自有运行库,install.bat
用于将编译好的HsMod.dll
复制到默认炉石目录(前提是BepInEx已经配置好)。此外,push或提交PR到Github后,Actions会自动生成相关pre-release。
client.config
client.config
用于绕过战网启动炉石,该文件位于Hearthstone.exe所在文件夹,内容如下
[Config]
Version = 3
[Aurora]
VerifyWebCredentials = "VerifyWebCredentials"
ClientCheck = 0
Env.Override = 1
Env = cn.actual.battle.net
一些token获取链接
https://www.battlenet.com.cn/login/zh-cn/?app=wtcg
https://tw.battle.net/login/zh/?app=wtcg
https://kr.battle.net/login/zh/?app=wtcg
https://us.battle.net/login/en/?app=wtcg
https://eu.battle.net/login/en/?app=wtcg
在启用插件后,支持./Hearthstone.exe VerifyWebCredentials
命令启动炉石(但需要有client.config
文件)。
TODO
- 整理ReadMe,更新Wiki等;整理配置与Patch之间关系;多语言支持
- 游戏内一键更换英雄皮肤,目前只能通过模拟掉线更新