使用compile_scripts.php脚本,生成lua打包的zip,解决加密问题
@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,解决加密问题的更多相关文章
- 使用cocos2d脚本生成lua绑定
这几天要老大要求把DragonBones移到cocos2dx 3.0 里边,并且绑定lua使用接口.因为刚学lua,使用的引擎也刚从2.2改为3.0,各种不熟悉,折腾了好几天才弄完,有空了总结一下 这 ...
- assetBundle打包脚本与LUA
AssetBundles与脚本 所有Unity的AssetBundle,无论是从本地获取 还是www,或者打包整个场景.物体上的脚本都不会被编译.所以AssetBundle打包的时候即使物体上有脚本. ...
- 生成lua的静态库.动态库.lua.exe和luac.exe
前些日子准备学习下关于lua coroutine更为强大的功能,然而发现根据lua 5.1.4版本来运行一段代码的话也会导致 "lua: attempt to yield across me ...
- 用VC编译lua源码,生成lua语言的解释器和编译器
用VC编译lua源码,生成lua语言的解释器和编译器 1.去网址下载源码 http://www.lua.org/download.html 2.装一个VC++,我用的是VC6.0 3.接下来我们开始编 ...
- Cocos2d-x 脚本语言Lua中的面向对象
Cocos2d-x 脚本语言Lua中的面向对象 面向对象不是针对某一门语言,而是一种思想.在面向过程的语言也能够使用面向对象的思想来进行编程. 在Lua中,并没有面向对象的概念存在,没有类的定义和子类 ...
- Cocos2d-x 脚本语言Lua介绍
Cocos2d-x 脚本语言Lua介绍 本篇博客记录Lua学习.学习来自eoe论坛,Lua语言开发Cocos2d-x游戏入门视频教程,猛戳下面地址: http://www.eoeandroid.com ...
- 【原创】使用批处理脚本生成包并自动上传到nuget
Hello 大家好,我是TANZAME,我们又见面了. NuGet 是什么这里就不再重复啰嗦,园子里一搜一大把.今天要跟大家分享的是,在日常开发过程中如何统一管理我们的包,如何通过批处理脚本生成包并自 ...
- Python脚本生成可执行文件&(恋爱小脚本)
Python脚本生成可执行文件&(恋爱小脚本) 参考文献: http://c.biancheng.net/view/2690.html; https://blog.csdn.net/qq_39 ...
- Cocos2d-x 脚本语言Lua使用
Cocos2d-x 脚本语言Lua使用 前面几篇博客已经把Lua的相关基础知识介绍了.本篇博客就来介绍一下,怎样在Cocos2d-x项目中使用Lua这门脚本语言进行开发.因为笔者使用的时Mac系统.所 ...
随机推荐
- DG - physical standby switchover切换过程
一.切换前检查1.检查备库已经全部接收到主库的redo如果是最大可用性.最大保护性模式,可以在primary端查看v$archive_dest_status,确认是否所有的redo已经传送到备库#在主 ...
- 在Ubuntu 64位OS上运行hadoop2.2.0[重新编译hadoop]
最近在学习搭建Hadoop, 我们从Apache官方网站直接下载最新版本Hadoop2.2.官方目前是提供了linux32位系统可执行文件,结果运行时发现提示 “libhadoop.so.1.0.0 ...
- 示sudo: cd: command not found
执行sudo cd 时出现 sudo: cd: command not found 原因shell shell是一个命令解析器 所谓shell是一个交互式的应用程序. shell执行外部命令的 时候, ...
- Some settings of PostgreSQL
Here are some setting recommendations about checkpoints, some values to set in postgresql.conf. A ch ...
- php实用类
<?php class DBDA { public $host="localhost";//服务器地址 public $uid="root";//用户名 ...
- Codeforce Round #222 Div2
这场断网,本来有个别人的比较卡的无线 但后面睡着了- -! C:额,逆向想下! B:... A:...
- 传递闭包(Floyd+bellman-Fold POJ1932)
传递闭包 在一个有向(无向)连通图中,如果节点i与k联通,k与j联通,则i和j联通,传递闭包就是把所有传递性的节点求出来,之后就知道了任意两个节点的连通性,只需枚举节点的联通情况即可,无需考虑最短路径 ...
- Codeforces Round #284 (Div. 1)
A. Crazy Town 这一题只需要考虑是否经过所给的线,如果起点和终点都在其中一条线的一侧,那么很明显从起点走点终点是不需要穿过这条线的,否则则一定要经过这条线,并且步数+1.用叉积判断即可. ...
- Struts2的Action名称搜索顺序:2014.12.30
struts.xml配置: <struts> <package name="hw" namespace="/test" extends=&qu ...
- 夺命雷公狗---DEDECMS----22dedecms让A标签进入对应的内容页
我们的模版里的超链接都是写死的,这都是不符合实际网站的需求的,我们要将他让他边活的,而并非死的.. 我们首先要将前端给我们的内容页面的模版放到目标目录里面,但是我们的内容页的模版名叫啥呢?我们可以来查 ...