【对决】【拆包】整了个能拆包能整合火石对决数据的软件
2023年11月23日
点火65 回复25
炉石传说
对决模式
本文为作者原创内容,未经作者本人和营地同意不得转载

一、前言

国服还没停的时候就想弄这个东西出来,不过陆陆续续还是花了这么久的时间。

本程序只能在window上运行,且环境必须是简体中文(如果非要换个非简中环境的话,需要找到utf8与对应ansi转换用的lua库)

考虑到没怎么检查就发出来了,大概一定会遇到bug。不过我不太想接着管这个玩意,反正代码没加密有能力修的自己修吧(

下载链接:https://pan.baidu.com/s/1Vke5n4osaebKUgTHQ8PrPQ?pwd=1234 

二、对决相关

既然是为了这碟醋包的饺子,还是先从对决说起。

2.1 英雄胜率&出场率

左图是直接整合了火石的全局数据,火石本体展示的数据也是用的这个,其实没啥差别,就只是加了个均胜和平均金币(平均金币的加权值参考了阿里的视频,不知道是否可靠但是能手动调)

右图则是读取了高胜套牌,汇总了每一轮的遇敌情况。除了直接展示次数,也可以把每一轮的遇敌情况转换成概率

2.2 高胜套牌

接下来是高胜套牌,可以说这程序的目标就是搓出来这玩意,不过实际搓出来以后体验并没有想象中好用。

火石的构筑具有滞后性,看着火爆的单卡可能其实已经该淘汰了。

2.3 禁牌表(构筑不可使用)

禁牌表的位置在%AppData%\..\Local\Blizzard\Hearthstone\Cache\Subset中的以12616开头的文件中,当然是以二进制的方式存储的。

印象里是一年前就知道的事情,不过现在能这样直观的展示出来了。

值得说道说道的是,禁牌表总共有150张牌,但是其中大约一半都是如今本来也不能用的牌(扩展包标记为核心(历史))

2.4 选牌框相关

首先是一些关于选牌框的统计数据。

先说道说道中间的图,个人觉得职业比率*选牌框中卡牌提供率/对应职业提供率才是选到一张牌的真实概率,于是就做了统计。

右图则是统计了选牌框能怎么歪。如果统计没有出错,那么就算诱导了10个选牌框,还是有可能歪。

不过火石的高胜套牌数据其实有点微妙,比如统计中发现第一轮战斗的套牌,卡牌数量竟有人达到了28张之多,所以右图数据到底是火石的计算错误还是本程序统计错误还是炉石就这样就见仁见智了。

接着是卡牌选取概率,值得一提的是可以筛选职业提供率0%的卡牌把选牌框禁用牌全部筛出来(砰砰计划这种选不到的选牌框会标记为0/0,不会混淆)。这个页面比较推荐直接导出excel操作。

最后是无诱导,概括来说就是怀旧包的牌和具有tag676标签的牌

怀旧无诱导是因为没有对应选牌框,这些牌依旧会影响被动

tag676无诱导推测应该是炉石检测诱导的函数会直接跳过这个标签的东西,所以不会影响被动

2.5 火石排行榜

最没有技术含量的活,直接把火石的排行榜搬到了程序里

不过想拿出来说点关于这个程序的缺陷。程序内部使用的是utf-8,但是显示界面的iup使用的是ansi,在简中环境下即是gbk,所以程序会经常把字符串从utf-8转换到gbk或者转换回来,但是有些字符gbk是缺失的,结果就会像如图这样变成问号甚至乱码。

2.6 关于火石高胜套牌

相信大家有注意到前面火石高胜套牌拿到了诸多火石本体没有展示的数据,这其实是需要访问每个单独的套牌信息的,由于lua没办法搞并发,如果需要访问的套牌信息累计到一两千组(最多也只会到2k,因为火石会删除过时的高胜数据),那么更新则需要半小时到一小时。

所以这个的更新我单独拎了出来,需要用依赖高胜套牌的数据时记得先更新。

三、其他数据展示

3.1 卡牌列表

预设了一些东西,特别是把以前战棋的一些研究搬进来了,大概属于能看的级别。

3.2 单卡展示

点击一张牌会出现的界面,第一页是预设的一些信息,第二页则是这张卡的所有tag

虽然上面有个访问fbi数据库的功能,但是没权限人是进不去的

3.3 tag列表

会打开所有含有这个tag的牌

3.4 关于卡牌列表和单卡的自定义

用起来差不多这种感觉?(单卡界面右键打开进行编辑),format输入多少个%s,则names中会出现多少个对应选项,如果要输入百分号,要写成%%的形式。(lua的string.format遵循spintf的规则,所以不要写会让spintf报错的东西)

需要注意右键大部分时候都是代表删除,没把握的话建议先保存一份(单卡查看的数据存在setting/showCard.lua里,卡组列表的存在setting/cardListMatrix.lua里)

卡组查询左键点取值那一行进入编辑界面,值得说的是有个设置条件,那里会控制显示的卡牌。

比如可收藏的筛选条件就是具有可收藏的tag,且扩展包不是某些奇怪的东西(比如英雄皮肤也被标记了可收藏,但通常筛选时并不希望看到这些东西)

四、拆包

首先,你需要标记你的炉石位置,如果没标记,那么程序会弹窗让你找。最后找到如图位置,选中HearthStone.exe就算是标记完成了。

然后,点击拆包

这样程序就会启动AssetStudio,对着左边说明操作就行了,相关文件路径可以从右边复制。

需要注意导出位置是在点击导出位置后创建的,所以这个必须点,完成拆包必须等AssetStudio全部导出完毕才能点,不然可能误判没有拆包然后把相关内容删掉。

之后程序就会自动完成相关更新了。

更细节的部分就涉及到拆包文件结构的话题了,比如tag的标记等等,过于复杂所以懒得继续写了。

不过还是可以说说拆包的一个好处,就是能对比任意版本之间的差异了

 

总得来说就是这样。虽然感觉有蛮多想说的,但大概是这玩意时间跨度太久,又觉得说无可说,祝大家使用愉快~

最后再放一次链接:https://pan.baidu.com/s/1Vke5n4osaebKUgTHQ8PrPQ?pwd=1234 

打赏文章
全部评论 25条
按时间排序

还没有评论