00003 不思议迷宫.0010.2:project.manifest自动生成器



00003 不思议迷宫.0010.2project.manifest自动生成器

每次修改完代码,在安装到手机之前,老是手动执行如下操作:

l        VS中以二进制方式打开luac文件,去除BOM

l        找到修改的luac文件,将之拖动到MD5工具

l        md5工具中,复制md5的值

l        md5值拷贝到文本文件中进行比较,然后拷贝第x位到第y位的值

l        打开project.manifest,找到luac文件对应的项目,复制第x位到第y位的值

l        回到md5工具,查看luac文件的size

l        再回到project.manifest,修改size

每次更新,修改的往往不仅一个文件,这就痛苦了。作为一个懒惰的人,我只想点个鼠标就统统搞定一切。这次,让我来一劳永逸地解决这个问题。

project.manifest是个ANSI编码的文本文件,里面有固定的内容和需要动态生成的md5内容。随着游戏版本的不同,固定内容可能会有所不同;所以,固定内容不能在生成器程序中写死,我们用模版文件,比如:

固定内容1;动态md5内容;固定内容2

生成器读取到模版内容,自动生成md5内容后,将“动态md5内容;”替换为真实的内容,然后写回到project.manifest

自动生成md5内容也没什么难的,就是枚举目录和文件,获得相对路径,然后计算md5值,取其中的一个特定子串,并获得大小,一起组合为一个json字符串。

计算文件md5值的代码,网上有现成的。我找的这个是C写的,虽然看得不大懂,但好在能用。

运行,发现非常慢。这也就算了,关键是计算出来的值和其他工具计算出来的不一样,真是蛋疼。又从网上找了一个,这回对了:

//Magicinitialization constants

#defineMD5_INIT_STATE_0 0x67452301

#defineMD5_INIT_STATE_1 0xefcdab89

#defineMD5_INIT_STATE_2 0x98badcfe

#defineMD5_INIT_STATE_3 0x10325476

 

//Constants forTransform routine.

#defineMD5_S11  7

#define MD5_S1212

#define MD5_S1317

#define MD5_S1422

#defineMD5_S21  5

#defineMD5_S22  9

#define MD5_S2314

#define MD5_S2420

#defineMD5_S31  4

#define MD5_S3211

#define MD5_S3316

#define MD5_S3423

#defineMD5_S41  6

#define MD5_S4210

#define MD5_S4315

#define MD5_S4421

 

//TransformationConstants - Round 1

#defineMD5_T01  0xd76aa478 //TransformationConstant 1

#defineMD5_T02  0xe8c7b756 //Transformation Constant 2

#defineMD5_T03  0x242070db //TransformationConstant 3

#defineMD5_T04  0xc1bdceee //TransformationConstant 4

#defineMD5_T05  0xf57c0faf //Transformation Constant 5

#defineMD5_T06  0x4787c62a//Transformation Constant 6

#defineMD5_T07  0xa8304613 //TransformationConstant 7

#defineMD5_T08  0xfd469501 //TransformationConstant 8

#defineMD5_T09  0x698098d8 //TransformationConstant 9

#defineMD5_T10  0x8b44f7af //Transformation Constant 10

#defineMD5_T11  0xffff5bb1 //TransformationConstant 11

#defineMD5_T12  0x895cd7be //TransformationConstant 12

#defineMD5_T13  0x6b901122 //TransformationConstant 13

#defineMD5_T14  0xfd987193 //TransformationConstant 14

#defineMD5_T15  0xa679438e //TransformationConstant 15

#defineMD5_T16  0x49b40821 //TransformationConstant 16

 

//TransformationConstants - Round 2

#defineMD5_T17  0xf61e2562 //TransformationConstant 17

#defineMD5_T18  0xc040b340 //TransformationConstant 18

#defineMD5_T19  0x265e5a51 //Transformation Constant 19

#defineMD5_T20  0xe9b6c7aa //Transformation Constant 20

#defineMD5_T21  0xd62f105d //Transformation Constant 21

#defineMD5_T22  0x02441453 //TransformationConstant 22

#defineMD5_T23  0xd8a1e681 //Transformation Constant 23

#defineMD5_T24  0xe7d3fbc8 //TransformationConstant 24

#defineMD5_T25  0x21e1cde6 //TransformationConstant 25

#defineMD5_T26  0xc33707d6 //TransformationConstant 26

#defineMD5_T27  0xf4d50d87 //TransformationConstant 27

#defineMD5_T28  0x455a14ed //Transformation Constant 28

#defineMD5_T29  0xa9e3e905 //TransformationConstant 29

#defineMD5_T30  0xfcefa3f8 //Transformation Constant 30

#defineMD5_T31  0x676f02d9 //Transformation Constant 31

#defineMD5_T32  0x8d2a4c8a //Transformation Constant 32

 

//TransformationConstants - Round 3

#defineMD5_T33  0xfffa3942 //TransformationConstant 33

#defineMD5_T34  0x8771f681 //Transformation Constant 34

#defineMD5_T35  0x6d9d6122 //TransformationConstant 35

#defineMD5_T36  0xfde5380c //Transformation Constant 36

#defineMD5_T37  0xa4beea44 //TransformationConstant 37

#defineMD5_T38  0x4bdecfa9 //Transformation Constant38

#defineMD5_T39  0xf6bb4b60 //TransformationConstant 39

#defineMD5_T40  0xbebfbc70 //TransformationConstant 40

#defineMD5_T41  0x289b7ec6 //TransformationConstant 41

#defineMD5_T42  0xeaa127fa //TransformationConstant 42

#defineMD5_T43  0xd4ef3085 //TransformationConstant 43

#defineMD5_T44  0x04881d05 //TransformationConstant 44

#defineMD5_T45  0xd9d4d039 //TransformationConstant 45

#defineMD5_T46  0xe6db99e5 //TransformationConstant 46

#defineMD5_T47  0x1fa27cf8 //TransformationConstant 47

#defineMD5_T48  0xc4ac5665 //Transformation Constant 48

 

//TransformationConstants - Round 4

#defineMD5_T49  0xf4292244 //TransformationConstant 49

#defineMD5_T50  0x432aff97 //TransformationConstant 50

#defineMD5_T51  0xab9423a7 //Transformation Constant 51

#defineMD5_T52  0xfc93a039 //Transformation Constant 52

#defineMD5_T53  0x655b59c3 //Transformation Constant 53

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值