@echo off

set DIR=%~dp0
set TEMPLATE_ROOT=%DIR%..
echo %TEMPLATE_ROOT%\quick\bin\win32\php.exe echo - cleanup
if exist "%DIR%script" rmdir /s /q "%DIR%script"
mkdir "%DIR%script"
if exist "%DIR%scriptDonkey" rmdir /s /q "%DIR%scriptDonkey"
mkdir "%DIR%scriptDonkey" if exist "%DIR%framework_precompiled/" rmdir /s /q "%DIR%framework_precompiled/"
mkdir "%DIR%framework_precompiled/" echo - copy scriptDonkey
xcopy /s /q %TEMPLATE_ROOT%\project\cardgame\src\app\*.* %DIR%script\app\ echo - copy framework_compiled
xcopy /s /q %TEMPLATE_ROOT%\project\cardgame\src\framework\*.* %DIR%framework_precompiled\framework\
xcopy /s /q %TEMPLATE_ROOT%\project\cardgame\src\cocos\*.* %DIR%framework_precompiled\cocos\ echo - copy scriptDonkey
xcopy /s /q %TEMPLATE_ROOT%\project\cardgame\src\bqsframework\*.* %DIR%scriptDonkey\bqsframework\
xcopy /s /q %TEMPLATE_ROOT%\project\cardgame\src\config.lua %DIR%scriptDonkey\
xcopy /s /q %TEMPLATE_ROOT%\project\cardgame\src\main.lua %DIR%scriptDonkey\ %TEMPLATE_ROOT%\quick\bin\win32\php.exe %TEMPLATE_ROOT%\quick\bin\lib\compile_scripts.php -i script/ -o script.zip
%TEMPLATE_ROOT%\quick\bin\win32\php.exe %TEMPLATE_ROOT%\quick\bin\lib\compile_scripts.php -i scriptDonkey/ -o scriptDonkey.zip
%TEMPLATE_ROOT%\quick\bin\win32\php.exe %TEMPLATE_ROOT%\quick\bin\lib\compile_scripts.php -i framework_precompiled/ -o framework_precompiled.zip echo -copy zip to res/
xcopy /s /q %DIR%scriptDonkey.zip %TEMPLATE_ROOT%\project\cardgame\res\
xcopy /s /q %DIR%framework_precompiled.zip %TEMPLATE_ROOT%\project\cardgame\res\ pause

将上面的bat自己按照需求改一下,然后执行,会生成zip包

可以参考quick\bin\compile_scripts.bat。

@echo off
set DIR=%~dp0
%DIR%win32\php.exe "%DIR%lib\compile_scripts.php" %*

compile_scripts.php 参数如下:

$options = array(
array('h', 'help', , false, 'show help'),
array('i', 'src', , null, 'source files directory'),
array('o', 'output', , null, 'output filename | output directory'),
array('p', 'prefix', , '', 'package prefix name'),
array('x', 'excludes', , null, 'excluded packages'),
array('m', 'compile', , 'zip', 'compile mode'),
array('e', 'encrypt', , null, 'encrypt mode'),
array('ek', 'key', , null, 'encrypt key'),
array('es', 'sign', , null, 'encrypt sign'),
array('ex', 'extname', , 'lua', 'encrypted file extension name (default is "lua"), only valid for xxtea_chunk'),
array('c', 'config', , null, 'load options from config file'),
array('q', 'quiet', , false, 'quiet'),
array('jit', 'jit', , false, 'using luajit compile framework'),
);

你可以根据你的需求传递参数,比如

、 -h 帮助。显示参数的解释及使用,英文的。
、-i 源码目录。
、-o 输出文件或目录。
、-p 包前缀。
、-x 不包含在内的包。如果你有些源文件不想被编译进去的话,将会用到这个参数,只能设置包(对应文件夹),不能指定到文件,多个包的话用,(逗号)隔开。示例:-x app.test,server,指的是app/test/.*,server/.* 这两个目录下的所有文件都不会被编译。
、-m 编译模式。有两个值 :
-m zip 默认,生成的是zip格式文件;
-m files 生成的是一个个文件,不打包,这个时候-o参数指的就是输出的目录。
、-e 加密模式。可以对编译后的文件再进行 XXTEA 加密,有两个值:
-e xxtea_zip 对应-m zip,对打包后的zip格式文件进行加密,之后再打包成zip格式。
-e xxtea_chunk 对编译后的文件加密,最后打不打包取决于-m。
、-ek 加密密钥。对-e有效,且设置了-e之后一定要设置-ek。
、-es 加密签名。对-e有效,默认值为"XXTEA",这个只是为了让引擎知道文件是否被加密过,意义不大,所以可不设置。 、-ex 编译后的文件的后缀名。对-m files有效,默认值为"lua"。
、-c 从一个文件加载参数列表。
、-q 生成过程不输出信息。

要调用里面的脚本需要在mail.lua文件中CCLuaLoadChunksFromZip("res/framework_precompiled.zip")语句下添加一句代码:

CCLuaLoadChunksFromZip("res/test.zip")

lua里面加载的话:

cc.LuaLoadChunksFromZIP(XXXX.zip);

删除掉原来的脚本,注意要保留main.lua,测试一下,证明程序可以运行。

必须得用compile_scripts 生成的ZIP

加密的话,解密的时候可以加上  ,我这里是AppDelegate.cpp

LuaStack* stack = engine->getLuaStack();
stack->setXXTEAKeyAndSign("2dxLua", strlen("2dxLua"), "XXTEA", strlen("XXTEA"));

http://my.oschina.net/lonewolf/blog/178515

http://www.cocoachina.com/bbs/read.php?tid=205802

http://blog.csdn.net/chengyingzhilian/article/details/25658091

使用compile_scripts.php脚本,生成lua打包的zip,解决加密问题的更多相关文章

  1. 使用cocos2d脚本生成lua绑定

    这几天要老大要求把DragonBones移到cocos2dx 3.0 里边,并且绑定lua使用接口.因为刚学lua,使用的引擎也刚从2.2改为3.0,各种不熟悉,折腾了好几天才弄完,有空了总结一下 这 ...

  2. assetBundle打包脚本与LUA

    AssetBundles与脚本 所有Unity的AssetBundle,无论是从本地获取 还是www,或者打包整个场景.物体上的脚本都不会被编译.所以AssetBundle打包的时候即使物体上有脚本. ...

  3. 生成lua的静态库.动态库.lua.exe和luac.exe

    前些日子准备学习下关于lua coroutine更为强大的功能,然而发现根据lua 5.1.4版本来运行一段代码的话也会导致 "lua: attempt to yield across me ...

  4. 用VC编译lua源码,生成lua语言的解释器和编译器

    用VC编译lua源码,生成lua语言的解释器和编译器 1.去网址下载源码 http://www.lua.org/download.html 2.装一个VC++,我用的是VC6.0 3.接下来我们开始编 ...

  5. Cocos2d-x 脚本语言Lua中的面向对象

    Cocos2d-x 脚本语言Lua中的面向对象 面向对象不是针对某一门语言,而是一种思想.在面向过程的语言也能够使用面向对象的思想来进行编程. 在Lua中,并没有面向对象的概念存在,没有类的定义和子类 ...

  6. Cocos2d-x 脚本语言Lua介绍

    Cocos2d-x 脚本语言Lua介绍 本篇博客记录Lua学习.学习来自eoe论坛,Lua语言开发Cocos2d-x游戏入门视频教程,猛戳下面地址: http://www.eoeandroid.com ...

  7. 【原创】使用批处理脚本生成包并自动上传到nuget

    Hello 大家好,我是TANZAME,我们又见面了. NuGet 是什么这里就不再重复啰嗦,园子里一搜一大把.今天要跟大家分享的是,在日常开发过程中如何统一管理我们的包,如何通过批处理脚本生成包并自 ...

  8. Python脚本生成可执行文件&(恋爱小脚本)

    Python脚本生成可执行文件&(恋爱小脚本) 参考文献: http://c.biancheng.net/view/2690.html; https://blog.csdn.net/qq_39 ...

  9. Cocos2d-x 脚本语言Lua使用

    Cocos2d-x 脚本语言Lua使用 前面几篇博客已经把Lua的相关基础知识介绍了.本篇博客就来介绍一下,怎样在Cocos2d-x项目中使用Lua这门脚本语言进行开发.因为笔者使用的时Mac系统.所 ...

随机推荐

  1. Create your first isolated Python environment

    # Install virtualenv for Python 2.7 and create a sandbox called my27project: pip2. install virtualen ...

  2. Python:操作文件

    python操作文件库不需要安装其他module,文件操作类库是python语言自身支持的操作. 判定文件是否存在:os.path.isfile(filePath) import os import ...

  3. Swift游戏实战-跑酷熊猫 00 游戏预览

    这个系列我们将要一起来做一个这样的游戏

  4. html 鼠标移入标签 显示小手指

    <div style="width: 200px; height: 200px; background: red; cursor: pointer;"></div ...

  5. 转:python webdriver API 之 验证码问题

    对于 web 应用来说,大部分的系统在用户登录时都要求用户输入验证码,验证码的类型的很多,有字母数字的,有汉字的,甚至还要用户输入一条算术题的答案的,对于系统来说使用验证码可以有效果的防止采用机器猜测 ...

  6. 树形DP(统计直径的条数 HDU3534)

    分析:首先树形dp(dfs计算出每个点为根节点的子树的最长距离和次长距离),然后找出L=dis[u][0]+dis[u][1]最长的那个点u,然后在以u为根节点dfs,统计长度为L的条数:具体做法:把 ...

  7. codevs 1204 寻找子串位置

    http://codevs.cn/problem/1204/ 1204 寻找子串位置  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 青铜 Bronze 题解  查看运行结果 ...

  8. ZOJ 3545 Rescue the Rabbit(AC自动机+状压DP)(The 2011 ACM-ICPC Asia Dalian Regional Contest)

    Dr. X is a biologist, who likes rabbits very much and can do everything for them. 2012 is coming, an ...

  9. UVA 10498 Happiness(线性规划-单纯形)

    Description Prof. Kaykobad has given Nasa the duty of buying some food for the ACM contestents. Nasa ...

  10. Struts2部署在Websphere上的问题

    配置Mapped Filter:可以解决Struts2的项目部署在WebSphere6.1下面,发生Action找不到的情况. 应用程序服务器>[选择所使用的服务器]>Web 容器设置&g ...