做客户端更新

最近在做客户端打包与更新的工作,StromLib这个库简直就是经验书一般的存在,而且还附赠了打包工具(只是没有源代码)。Geek们真是太厉害啦。

只是库的MPQ V4.0版本的BET Table有BUG,我是用工具进行包内文件的删除发现的。然后花了几个小时追踪到是保存Bet Table内的文件Flags的例程有BUG,虽然我把库的代码修正了,但是因为工具没源码,所以还是只有这样使用,就是得交待清楚以后的补丁制作与发布人员,不能使用了工具的删除功能然后发布,不然会造成没法compact.

作者的网站上留了联系方式,所以发了一封Emal过去,结果第二天久收到回复啦,高兴啊,作者还说会编写新版本哦!期待~~~

回信是:

又过了一天就收到修改回复了,虽然修复得不是很完美,但是外国高手的认真和高效又让我佩服了一番:

............我勒个去,不给力啊,还是有BUG呢嘛,删除了文件之后(listfile)里面却没有正确去除被删除文件的名字。作者说是正常的,如果不是删除FileTable的最后一项就该这样,再问就无回音了...可能是我太菜了,不理我了 T T  没办法,只能绕过这个问题,反正即使删除操作成功了,文件数据也还是占在那里,只是做了个标记而已,等到某次Compact时进行资源包的完全重建。所以我现在的解决方案是:要删除的文件不动,就留在那里,等到逐渐地资源包内的无用文件多得影响客户端大小时,再对该资源包筛除掉无用文件,进行一次重建,这项操作对于一个1个多G的资源包是相当耗时的,不知道暴雪是怎么处理的呢。

到目前为止,已完成的更新工作还缺少的部分大概有:更新的版本管理,Web下载功能(完全不懂),自动更新工具的自身更新问题。。。以及完整的更新日志输出功能(目前是哪里出错就MessageBox)和容错的健壮性(目前是更新过程发生错误,那可能导致一部分更新了,一部分没有,请同志们重新去FTP下载客户端。。。)。

由于手头有其他游戏的源代码,刚刚借鉴着看看我接下来应该怎么做,感觉很复杂啊尼玛,就像是之前觉得完成度90%了,忽然发现其实才50%一样。头痛啊

原文地址:https://www.cnblogs.com/mavaL/p/2129645.html