在引擎目录下/quick/bin/下面 compile_scripts.sh 这个东西就是我们需要的。他接受好几种加密方式,我一般只用到xxtea_zip 和 xxtea_chunk 这两种。前一种是把lua脚本压缩成一个zip,为这个zip加密。后一种是为每个脚本加密,然后再压缩一次。都差不多。
终端进入 /quick/bin/这个目录 执行./compile_scripts.sh -i 你的脚本的目录(比如我的/Users/bkbl/Documents/game/src) -o 加密后文件的输出目录(比如我的/Users/bkbl/Documents/game/res/game.zip) -e (加密方式 xxtea_chunk 或者 xxtea_zip ) -es 签名(比如 XXTEA) -ek 密钥(也就是KEY 比如 adadada)
执行引擎底下的compiled_scripts.bat命令,把脚本都跑一遍
具体命令:compile_scripts.bat -i E:\banhao\Code\trunk\client\scripts_org -o E:\banhao\Code\trunk\client\scripts_xxtea -m files -e xxtea_chunk -ek -__-!!xgaXnI -es lxh!zip
出现这样表示编译加密成功
然后就可以把打乱的脚本放回去原本工程中就可以正常运行了
只要代码没错误.这儿也不会报错。我的输出路径是我项目res下。如果不是 拷贝进去。)
最后在AppDelegate.ccp 添加
stack->setXXTEAKeyAndSign("你的key", strlen("你的key"), "你的签名", strlen("你的签名"));
比如
stack->setXXTEAKeyAndSign("adadada", strlen("adadada"), "XXTEA", strlen("XXTEA"));
读取这个zip
stack->loadChunksFromZIP("res/game.zip");
修改下面
engine->executeScriptFile(ConfigParser::getInstance()->getEntryFile().c_str());
的函数为
stack->executeString("require 'main'");