Lua是一个小巧的脚本语言。是巴西里约热内卢天主教大学(Pontifical Catholic University of Rio de Janeiro)里的一个研究小组,由Roberto Ierusalimschy、Waldemar Celes 和 Luiz Henrique de Figueiredo所组成并于1993年开发。 其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。Lua由标准C编写而成,几乎在所有操作系统和平台上都可以编译,运行。Lua并没有提供强大的库,这是由它的
Lua在C#项目中的应用: Lua 是一个小巧的脚本语言。作者是巴西人。该语言的设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。它的主页是 www.lua.org。 Lua脚本可以很容易的被C/C++代码调用,也可以反过来调用C/C++的函数,这使得Lua在应用程序中可以被广泛应用。不仅仅作为扩展脚本,也可以 作为普通的配置文件,代替XML,Ini等文件格式,并且更容易理解和
    并发是现实世界的本质特征,而聪明的计算机科学家用来模拟并发的技术手段便是多任务机制。大致上有这么两种多任务技术,一种是抢占式多任务(preemptive multitasking),它让操作系统来决定何时执行哪个任务。另外一种就是协作式多任务(cooperative multitasking),它把决定权交给任务,让它们在自己认为合适的时候自愿放弃执行。这两种多任务方式各有优缺点,前者固有
            近阶段,接手Lua插件开发。今天,被主管叫去聊天,无需做作,畅所欲言。交谈之 中,回顾工作,真的发现自己没有做出什么成就,原来自己坚持的:工作就是工作,提高自己 才是主要的思想,在主管,别人面前是那么苍白。提高自己的目的是什么?还不是为了做好 工作,做出一番成就。       主管并没有想象中的那么冷漠,不易接近。反而让我感到了希望,像初中,高中老师一 样那种feeling
Lua 是一个小巧的脚本语言。作者是巴西人。该语言的设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。它的主页是 www.lua.org。 Lua最著名的应用是在暴雪公司的网络游戏WOW中。 Lua脚本可以很容易的被C/C++代码调用,也可以反过来调用C/C++的函数,这使得Lua在应用程序中可以被广泛应用。不仅仅作为扩展脚本,也可以作为普通的配置文件,代替XML,Ini等文件
第2章             探讨Lua基础知识 Lua语言与您所了解的其他编程语言比较接近,它相对较小。在Lua的设计与发展过程中,Lua从许多不同的语言中得到了灵感,包括Lisp、Scheme、Pascal和C等。 本章内容是对Lua编程语言的一个概述,如果您在这之前已经有Lua或者其他编程语言的使用经验,您可能会希望浏览本章然后选做一些相关的练习。 您可以从www.lua.org中阅读到更
摘自:http://bbs.ngacn.cc/read.php?tid=722290   [转贴]写宏所用到的LUA语言参考。 Lua 的语法比较简单,学习起来也比较省力,但功能却并不弱。   在Lua中,一切都是变量,除了关键字。请记住这句话。 I. 首先是注释   写一个程序,总是少不了注释的。   在Lua中,你可以使用单行注释和多行注释。   单行注释中,连续两个减号"--"表示注释的开始
现在,越来越多的C++服务器和客户端融入了脚本的支持,尤其在网游领域,脚本语言已经渗透到了方方面面,比如你可以在你的客户端增加一个脚本,这个脚本将会帮你在界面上显示新的数据,亦或帮你完成某些任务,亦或帮你查看别的玩家或者NPC的状态。。。如此等等。 但是我觉得,其实脚本语言与C++的结合,远远比你在游戏中看到的特效要来的迅猛。它可以运用到方方面面的领域,比如你最常见的应用领域。比如,你可以用文本编
  第3章             基本的函数和控制结构 本章首先介绍解释函数的概念,并且引导你创建几个你自己的函数,而剩下的内容将会介绍基本的循环和条件语句。 3.1        使用函数 函数是程序的一部分,它可以用来执行复杂的计算或简单地重复某个任务。当调用一个函数的时候,它可能会接收到几个参数,即在执行过程中函数可以使用的数据。当一个函数完成时(我们称为结束调用),它可以将任意多个值返回
  4.4        表的面向对象编程 表也可以用于另外一种“面向对象编程”的编程方式,这种方式是基于对象的概念进行的一种编程方式。对象既包括了数据,也包括了对这些数据的操作(专业术语把操作叫做“方法”)。对应于Lua,数据就是指各种变量,而方法就是指特定的函数。而通过前面的讲述,大家已经看到,表既可以赋值为变量,也可以赋值为函数。 4.4.1 创建非面向对象计数器 为了显示面向对象的威力,我
  4.4        表的面向对象编程 表也可以用于另外一种“面向对象编程”的编程方式,这种方式是基于对象的概念进行的一种编程方式。对象既包括了数据,也包括了对这些数据的操作(专业术语把操作叫做“方法”)。对应于Lua,数据就是指各种变量,而方法就是指特定的函数。而通过前面的讲述,大家已经看到,表既可以赋值为变量,也可以赋值为函数。 4.4.1 创建非面向对象计数器 为了显示面向对象的威力,我
在网络通信应用中,我们往往需要自定义应用层通信协议,例如基于UDP的Real-Time Transport Protocol以及基于TCP的RTP over HTTP。鉴于RTP协议的广泛性,wireshark(ethereal)内置了对RTP协议的支持,调试解析非常方便。RTP over HTTP作为一种扩展的RTP协议,尚未得到wireshark的支持。在《RTP Payload Format
问题概要: 用lua写了个函数,返回的是一个表.需要在C里对返回的表里元素做二次处理. 在C里我们可以通过lua_gettable()或者lua_rawget()来获取表里元素值,但使用这两个接口的前提是你得知道key,它才能给你value. 当然对于顺序下标倒无所谓,但恰巧这次我用到的是关联数组,下标是无规则字符串.这时候如何遍历出表里元素就是个问题. lua_next()就成了比较合适的选择.
  第5章             高级函数和控制结构 5.1        多值返回 在Lua中,return语句能返回多个值,这些值能让我们更轻松地完成一些工作。例如在WoW中,我们有时必须把十六进制的字符串转化为红绿蓝三色十进制值。 5.2        将十六进制转换成RGB 十六进制字符串的典型例子是“FFCC99”它们两个字符一组,分别代表红色(FF),绿色(CC),蓝色(99)。所以
  第5章             高级函数和控制结构 5.1        多值返回 在Lua中,return语句能返回多个值,这些值能让我们更轻松地完成一些工作。例如在WoW中,我们有时必须把十六进制的字符串转化为红绿蓝三色十进制值。 5.2        将十六进制转换成RGB 十六进制字符串的典型例子是“FFCC99”它们两个字符一组,分别代表红色(FF),绿色(CC),蓝色(99)。所以
这里转别人的一篇噢。改天更新Gamebryo到RTT纹理的方法     最近重拾LUA,觉得这个语言太美了。怎一个“简单”了得。不过我现在还太探索它和CEGUI的配合使用问题。虽然LUA的语法半年前就基本掌握了(那是因为LUA最简单的就是语法了~~XD),可现在还得琢磨如何让它和CEGUI及我的程序进行数据共享。好让我的LUA脚本里的回调函数可以直接操作APP里的数据(不知道这样做安全性如何?不过
最近感觉没啥可看,就看一下lua源码,打发打发时间吧。 首先需要下载编译lua源码了,笔者是在Windows+VS2005下编译通过   1.首先需要去官方网站上下载lua源码,到www.lua.org上下载lua源码,目前最新版本是5.1 RC4版本lua-5.1.4.tar.gz,解压之后,目录下有install文件,在该文件中详细说明了在linux下编译的过程,visual studio下的
魔兽世界编程宝典读书笔记(2)   第2章             探讨Lua 基础知识 Lua语言与您所了解的其他编程语言比较接近,它相对较小。在Lua的设计与发展过程中,Lua从许多不同的语言中得到了灵感,包括Lisp、Scheme、Pascal和C等。 本章内容是对Lua编程语言的一个概述,如果您在这之前已经有Lua或者其他编程语言的使用经验,您可能会希望浏览本章然后选做一些相关的练习。 您
LUA脚本语言入门 - LUA脚本语言入门Lua 程序设计初步 作者: 沐枫 (第二人生成员) 版权所有转载请注明原出处   在这篇文章中,我想向大家介绍如何进行Lua程序设计。我假设大家都学过至少一门编程语言,比如Basic或C,特别是C。因为Lua的最大用途是在宿主程序中作为脚本使用的。   Lua 的语法比较简单,学习起来也比较省力,但功能却并不弱。   在Lua中,一切都是变量,除了关键字
lua_newtable void lua_newtable (lua_State *L); 创建一个空 table ,并将之压入堆栈。 它等价于 lua_createtable(L, 0, 0) 。   lua_gettop int lua_gettop (lua_State *L); 返回栈顶元素的索引。 因为索引是从 1 开始编号的, 所以这个结果等于堆栈上的元素个数(因此返回 0 表示堆栈
这里, 简单的记录一下lua中闭包的知识和C闭包调用 前提知识: 在lua api小记2中已经分析了lua中值的结构, 是一个 TValue{value, tt}组合, 如果有疑问, 可以去看一下   一些重要的数据结构       lua中有两种闭包, c闭包和lua闭包     两种闭包的公共部分:        #define ClosureHeader CommonHeader;    
 http://www.unknownworlds.com/decoda 今天项目组的同事提起来要整个调式lua的工具,由于近期项目中用到lua的脚本日趋增长,导致脚本出问题的几率也日益增加~~ 。调试起来也不是特别方便,所以有必要整一个。于是就先找到了一个调式器,暂时可以满足项目的需求。下面先转帖一下网上一位朋友写的软件使用帮助,感谢!    Decoda Tutorial 1:从Decoda启
版权声明 :转载时请以超链接形式标明文章原始出处和作者信息及本声明 http://knowmore.blogbus.com/logs/7989362.html 最近学习游戏编程,要学到lua脚本,所以就整理了一下关于lua的资料。   简介: Lua 是一个小巧的脚本语言 。作者是巴西人。该语言的设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。它的主页是 www.lua.or
  众所周知,lua里的变量都没有类型的定义,是啥东西直接拿出来用就行,用错了运行时会报错不执行,类型强转这种操作似乎没啥用武之地。的确在单独使用脚本语言的环境里语言本身并不关心类型,但如果要与宿主语言交互,并且还利用了userdata或lightuserdata对象与C里面的操作和变量关联,那类型强转就很有意义了。 LUA5.1版本后注册对象就逐步取代注册接口成为与宿主交互的首选方式,拿luat
2008年12月9日 今天下午调试程序的时候,遇到了一件非常奇怪的事。弄清楚了之后,才发现原来是Lua中Module中自有环境的问题。 大体情况是这样的,我在主程序中设定的全局变量,在模块文件中可以访问到,并修改了这个全局变量的值,但是在模块调用返回后,再次使用这个全局变量的值,发现它没有被赋值,没有被改变。究其原因,发现是因为Lua的模块里面,采用了自己的全局环境(这个全局环境会将主程序中的全局
Lua 5.1.4 Copyright (C) 1994-2008 Lua.org, PUC-Rio> function f(tb,x,y) return x+y+tb.n end> b={}> b.__call = f> a = {}> a.n=100> setmetatable(a,b)> print(a(1,2))103>
版权所有, 转载请注明出处, 勿用于商业用途, 谢谢! 作者:    大宝天天见 Blog:    http://www.cppblog.com/singohgod 本人水平有限, 有错请指出, 欢迎交流, 共同进步!   国内关于 Lua 的资料实在是太少 , 为了寻找一个合适的 Lua 的 C++ 封装 , 真是如同大海捞针 . 在看了众多资料后锁定以下几种 :LuaBind ToLua++
1。等号右边的表达式自动成右值!! 一个典型的例子: x , y = y , x            --这里在做交换操作。有没有明白和c语言的交换操作相比,那个额外的变量在哪里吗?(提示:这里其实有2个额外的变量) 2。 while do, if then, repeat until! 3。for循环和pascal里的for循环的后置条件完全一样。
  LuaTinker的作者是Kwon-il Lee韩国人写的,最新的版本是0.2.C,这个C++ wrapper For Lua能够方便和 快捷与C/C++通信,LuaTinker参考了luabind和luaplus的特征写的,虽然没有bindlua和luaplus这本强大 和提供很多功能,LuaTinker的实现只有两个文件,但是LuaTinker提供的基本能够满足大部的要求,用户 还可以对它
关于Lua的闭包的用法。 动态语言闭包是一大特色,但是知道如何产生一个闭包,不知道闭包如何来使用就会变成一个非常尴尬的问题。前几天突然想明白了。跟大家说说。有其他好的理解也欢迎来和俺讨论切磋。   for i in iter() do    print(i) end   这是Lua的泛型for的一个伪代码。Lua提供了一些迭代器比如 pairs()这个东西。问题这个迭代器是如何写的呢?我们把for
本文内容算不上原创,网上已有很多Decoda调试Lua的教程。在此只是把自己弄了几个小时的内容做一个整理。 调试Lua脚本的方法很多,也有很多这方面的程序员利用Lua的Debug库写了自己的调试器。我使用的是国外的Decoda软件。 官方网站http://www.unknownworlds.com/decoda 最新的版本是1.13,网上也有破解版。   Decoda调试Lua主要分两种方法: 1