[]layadcc打包后需要整包更新的问题
我们需要在游戏启动的时候,检测到哪些文件需要更新,然后用进度条来显示更新进度,现在遇到的问题是
如何根据assets/cache/www.xxx.comxia下面的文件来判断哪些是需要更新??
1、如图1,打包后的文件名是crc值吗?这个值是通过对应文件路径算的还是文件内容呢?
2、如图1,filetable.bin,filetable.txt,filetable1.txt分别存的是什么内容呢?如果是文件对应的crc,为啥有3个呢?猜测.bin是filetable.txt的压缩版,但是为啥有filetable.txt,filetable1.txt两个呢?
3、如图2,打开filetable.txt,里面每行前面那个crc是对应的打包好的文件名么,那后面的呢?还有第一行后面的值为何是个1。。。。
2017.4.4gen更新
感谢cuixueying的解答,还有点疑惑
如图3所示,filetalbe.txt第四行对应allfiles第一行,但是我对应文件内容的md5,sha1,crc32值在filetalble都找不到,请问dccdac算出来的hash是你们自己的算法吗,还是什么qin其他算法呢?
如何根据assets/cache/www.xxx.comxia下面的文件来判断哪些是需要更新??
1、如图1,打包后的文件名是crc值吗?这个值是通过对应文件路径算的还是文件内容呢?
2、如图1,filetable.bin,filetable.txt,filetable1.txt分别存的是什么内容呢?如果是文件对应的crc,为啥有3个呢?猜测.bin是filetable.txt的压缩版,但是为啥有filetable.txt,filetable1.txt两个呢?
3、如图2,打开filetable.txt,里面每行前面那个crc是对应的打包好的文件名么,那后面的呢?还有第一行后面的值为何是个1。。。。
2017.4.4gen更新
感谢cuixueying的解答,还有点疑惑
如图3所示,filetalbe.txt第四行对应allfiles第一行,但是我对应文件内容的md5,sha1,crc32值在filetalble都找不到,请问dccdac算出来的hash是你们自己的算法吗,还是什么qin其他算法呢?
没有找到相关结果
已邀请:
要回复问题请先登录
1 个回复
cuixueying
赞同来自:
filetable.bin是filetable.txt的二进制版本,也是实际使用的文件。
但是你知道了这些并不能立即用来做差异化更新,因为dcc文件是完整的校验值,并不是只包含差异文件,只有跟本地保存的filetable.txt比较之后,才能知道差异的文件。
你的需求可以通过简单的在一开始就下载allfiles.txt中的所有文件来实现。流程如下:
1. 完成引擎原来的dcc更新流程,获得最新的filetable文件。
2. 下在allfiles.txt,解析获得所有文件列表。
3. 循环下载列表中所有的文件,如果相应的文件没有更新,就会直接忽略过去,如果需要更新就会去下载实际文件,并更新本地缓存。
4. 更新进度。如果大部分文件都没变,可能进度会不均匀。