WzComparerR2 icon indicating copy to clipboard operation
WzComparerR2 copied to clipboard

DeadPatch在拆分后的WZ文件结构上没有按预期发挥作用

Open HikariCalyx opened this issue 2 years ago • 1 comments

以前DeadPatch功能是每一个WZ文件被更新之后就立即替换掉旧版的WZ,但是在拆分后的64位WZ文件上它并没有有效发挥作用。 相关日志由于太长现以附件形式给出。

CMS V188 to V189 (没有启用DeadPatch): wcpatcher_20220510_194443352.log TMS V242 to V243 (启用了DeadPatch): wcpatcher_20220510_214127510.log

64位拆分WZ后,我预期的DeadPatch效果是,Data目录内里面每一个一级子目录(Base, Character, Effect, Etc, Item, Map, Mob, Morph, Npc, Quest, Reactor, Skill, Sound, String, TamingMob, UI)的内容全部更新完了之后就立即替换该子目录。如果是配合对比的话,最好也是在一个一级子目录全部更新完之后就立即开始执行对比然后来替换。

HikariCalyx avatar May 10 '22 13:05 HikariCalyx

deadpatch对于新版客户端不生效算是一个known issue,但又好像没有明确的统计数据表明按照文件夹分组使用deadpatch是完备的做法

在我看来,dead patch的一个最大阻碍是,对于老版本客户端,即使更新失败任何一个文件,继续更新都可以断点续传,因为patcher会先计算老文件的crchash来决定是否执行更新。但是对于新版本客户端,dead patch的风险就太大了。

近期会试图统计一下最近KMST补丁的分布规律,并且设计一个保守的实现试试看。

Kagamia avatar Oct 05 '22 15:10 Kagamia