@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. 移动端<head>头部 常用<meta>标签

    <!DOCTYPE html><html lang = ""><head> <title></title> <me ...

  2. 通过zabbix自带模板监控windowsPC机器

       通过zabbix自带模板监控windowsPC机器   作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任.       欢迎加入:高级运维工程师之路 598432640 相信有很多 ...

  3. JAVA多线程与多进程

    并发与并行是两个既相似而又不相同的概念,但往往容易混为一谈,这两者究竟有什么区别呢?本文通过一个例子让你更好地理解(本文由并发编程网翻译). 现代社会是并行的:多核.网络.云计算.用户负载,并发技术对 ...

  4. PHP中的赋值运算符

    PHP的赋值运算符有两种,分别是: (1)“=”:把右边表达式的值赋给左边的运算数.它将右边表达式值复制一份,交给左边的运算数.换而言之,首先给左边的运算数申请了一块内存,然后把复制的值放到这个内存中 ...

  5. ajax测试异步提交

    今天测试了$.ajax()方法: $("a").click(function(){        $.ajax({           url:"MyJsp.jsp&qu ...

  6. LED流水灯(二)

    记住看汇编的时候是红在上面 黑色在下面 startup.s 程序 ; MDK跑马灯实验; PRESERVE8               // 字节对齐关键词 ,汇编有8位对齐的要求,要添加 AREA ...

  7. Android中使用SurfaceView+MediaPlayer+自定义的MediaController实现自定义的视屏播放器

    效果图如下: (PS本来是要给大家穿gif动态图的,无奈太大了,没法上传) 功能实现:暂停,播放,快进,快退,全屏,退出全屏,等基本功能 实现的思路: 在主布局中放置一个SurfaceView,在Su ...

  8. Microsoft.Jet.OLEDB.4.0和Microsoft.ACE.OLEDB.12.0的区别

    Microsoft.Jet.OLEDB.4.0和Microsoft.ACE.OLEDB.12.0的区别 时间 2012-12-19 20:30:12  CSDN博客原文  http://blog.cs ...

  9. jvm排查工具

    jps jps -mvl --查看java的ps进程. jstack 打印一个线程堆栈信息 top -H -p pid1 -> 得到占用资源大的pid2 jstack pid1 | grep & ...

  10. oracle热备份

    1:热备份: SHUTDOWN IMMEDIATE; STARTUP MOUNT; alter database archivelog; --ALTER SYSTEM SET LOG_ARCHIVE_ ...