• 做客户端更新


    最近在做客户端打包与更新的工作,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%一样。头痛啊

  • 相关阅读:
    Android pm命令用法
    SSH没有password安全日志
    使用reserve要再次避免不必要的分配
    找到最大的迭代次数串
    个人存储不同类型的对象有一些想法的碰撞检测
    [Android 4.4.3] 泛泰A870 Mokee4.4.3 20140610 RC2.0 通过刷第三版 by syhost
    zoj 3823 Excavator Contest(结构体)
    【Linux】CentOS系统
    Swift学习——Swift解释特定的基础(七)
    Android JNI开发提高篇
  • 原文地址:https://www.cnblogs.com/mavaL/p/2129645.html
Copyright © 2020-2023  润新知