问题标签 [luac]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
994 浏览

c# - 编译 Lua 代码并将字节码存储在一个新文件中

我知道可以Lua使用LuaC编译代码,如下所述:

luac 是 Lua 编译器。它将用 Lua 编程语言编写的程序翻译成二进制文件,可以使用 C 中的 lua_dofile 或 Lua 中的 dofile 加载和执行。

问题是:我需要在.Net(更具体地说是在C#)中创建一个应用程序,它将接收多个“常规”*.lua 文件的输入,然后将它们全部编译为新文件。

0 投票
1 回答
1380 浏览

lua - 如何从 C 运行 lua 脚本的多个实例

我有以下 lua 脚本:

基本上我想让这个脚本的两个实例在我的 C 程序/进程中运行,而不必为每个脚本创建一个新的 LUA 状态。我想从一个实例调用 val = 10 的函数 update() 并从另一个实例调用 val = 20 的函数 update() 。从第二个实例开始,它注册一个回调函数并等待被调用。

基本上,脚本文件是我想要实现的一种规则。系统上的几个事件可以触发此规则或脚本文件。我想根据触发它的事件来处理这个规则。可能有多个事件触发此脚本同时运行。所以我需要让这个脚本的多个实例运行,并根据触发它的事件类型来区分。

总而言之,我希望每个调用者都有单独的 mydata 实例

我想实现这样的目标。我读到了一些我们应该能够运行 lua 脚本的多个实例的地方,而不必通过在加载脚本之前加载新环境来创建新的 lua 实例

但我无法找到确切的细节。

一些身体可以帮助吗?

0 投票
1 回答
784 浏览

lua - 在需要 luac 32 位时编译 VLC 失败

尝试使用https://wiki.videolan.org/OSXCompile/中概述的构建步骤构建 VLC,但在需要 32 位的 luac 上失败。卸载了 lua 并重新安装了一堆,没有选择使用 lua 指定 32 位安装。难道我做错了什么?

...

0 投票
2 回答
301 浏览

android - 什么是 .darc 文件以及如何反编译?

我用 apktool 反编译了一个免费的 android apk,我找到了一个扩展名为 .darc 的文件。它有很多大小,当我用十六进制编辑器打开它时,它包含 .luac 文件引用和其他文件,但 luac 文件不在反编译的应用程序文件夹中。我能做些什么?有什么想法?

这个问题的主要目的是了解如何更改 apk 中的某些文本。例如,自定义游戏中的村庄名称或某些工具的名称。

0 投票
0 回答
39 浏览

lua - Luac:阅读版本 1280.1;预计最高 80.1

我尝试加载我事先.lc编译的文件:luac

为了得到编译。但是,当我导入该模块时,我得到:

这是我的luac -v

我正在修改的游戏实际上使用的是 Lua 5.0,这就是为什么我真的不明白为什么我会看到这个错误..

0 投票
3 回答
544 浏览

lua - Lua - 为什么允许函数调用后的字符串?

我正在尝试实现一个简单的 C++ 函数,它检查 Lua 脚本的语法。为此,我使用 Lua 的编译器函数luaL_loadbufferx()并在之后检查它的返回值。

最近,我遇到了一个问题,因为我认为应该标记为 invalid的代码没有被检测到,而是脚本稍后在运行时失败(例如 in lua_pcall())。

示例 Lua 代码(可以在官方 Lua 演示中测试):

目标显然是在编译时捕获所有语法错误。所以我的问题是:

  1. 调用字符串值究竟是什么意思?
  2. 为什么首先允许这种语法?是我不知道的一些 Lua 功能,还是luaL_loadbufferx()这个特定示例中的错误?
  3. 是否可以通过任何其他方法检测此类错误而不运行它?不幸的是,我的函数在编译时无法访问全局变量,所以我不能直接通过lua_pcall().

注意:我使用的是 Lua 版本 5.3.4(此处为手册)。

非常感谢您的帮助。

0 投票
1 回答
194 浏览

c++ - 创建 Lua 状态时访问冲突

我有这个简单的程序:

我将 Lua DLL 放在正确的文件夹中,链接库,设置包含文件夹并编译。它编译得很干净,但是当我运行程序时,它会显示 这个. 我在 Visual Studio 2017 中使用最新版本的 LuaBinaries

0 投票
1 回答
490 浏览

c++ - Lua C 5.1 - 遍历所有全局值

最近我一直在探索 luac 5.1 api,我想知道是否可以遍历 5.1 api 中的每个全局值,我知道在lua_pushglobaltable(lua_State*) 存在时可以在 5.2 中执行此操作(在此处引用)。我知道有 LUA_GLOBALSINDEX 但是我不确定如何将它用于此目的。任何帮助将不胜感激!

谢谢 :)

0 投票
1 回答
653 浏览

lua - lua_load() C 函数是否适用于 LuaJIT 预编译的字节码?

我打算将 LuaJIT 嵌入到我的一个程序中,该程序使用 PhysFS 来加载......好吧,东西。资产和 Lua 脚本。

所以我想,为什么不预编译我的 Lua 脚本呢?

我知道,当使用普通的香草 Lua 时,lua_load() C 函数可以很好地处理人类可读的脚本和用 luac 制作的字节码。但是 LuaJIT 呢?这同样适用于 LuaJIT 吗?lua_load() 是否适用于预编译的 LuaJIT 字节码?

0 投票
1 回答
2746 浏览

encryption - 反编译 Luac 文件 - 处理加密

我从本网站上的其他问题中了解到,如果您知道 lua 版本,可以反编译 luac 文件。我还读到 lua 版本存储在 luac 文件(标题)的第 5 个字节中。但是,这是我拥有的 luac 文件的前几个字节:

在我看来,第 5 个字节是 02。这表明我正在处理一个 lua 0.2 文件——我不相信有这样的版本!

上面的问题让我觉得文件可能被加密了——我对 lua 加密一无所知……实际上一无所知。是否可以合理地解密和反编译有问题的 lua 文件?我该如何开始这个过程?