-4
function writeFloat([=[==[===[====["game.exe"+XXXXXXXX]+XXX====]+XXX===]+XXX==]+XXX=]+XXX, trackbar_getPosition(TRAINERFORM_CETrackBar1))
end

给我错误

[string "--code..."]:4: 附近未完成的长字符串

4

1 回答 1

3

Lua 有“长字符串”,这是由 的语法引起的[=*[,其中“=*”表示“零个或多个=字符”。所以[[开始一个长字符串,就像[==[or[=[一样,就像你的情况一样。

长字符串之所以如此命名,是因为它接受诱导语法和终止语法之间的每个字符。这允许您做一些有用的事情,例如在 Lua 脚本中添加逐字 XML、C++ 甚至 Lua 代码作为文字字符串。

终止语法是]=*],其中“=*”表示与用于诱导长字符串完全相同的字符数。=因此,如果您以 开头[=[,则长字符串只会以结尾]=]]]]====]/或任何其他终点不会结束长字符串;它们将被逐字记录到字符串中。

所以这:

local lit = [=[Long String]==]=]

结果lit取值Long String]==

在您的代码中,您永远不会看到]=]序列。你有====]和类似的东西,但它们甚至不是从一个]角色开始的。

在 Lua 脚本中开始一个永远不会结束的长字符串是非法的。因此编译错误。

于 2016-02-05T18:30:25.257 回答