【问题标题】:Unfinished long string near <eof><eof> 附近未完成的长字符串
【发布时间】:2016-05-15 15:47:08
【问题描述】:
function writeFloat([=[==[===[====["game.exe"+XXXXXXXX]+XXX====]+XXX===]+XXX==]+XXX=]+XXX, trackbar_getPosition(TRAINERFORM_CETrackBar1))
end

给我错误

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

【问题讨论】:

  • [=[ 开始一个以]=] 结尾的长字符串。后者不在您的代码中。
  • @siffie 我以为是[[?
  • @warspyking:这也是正确的。 ]] 关闭[[]=] 关闭[=[]==] 关闭[==[,等等。
  • @siffie Ohhh。甚至没有意识到

标签: lua cheat-engine


【解决方案1】:

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

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

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

所以这个:

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

导致lit 取值Long String]==

在您的代码中,您永远不会看到]=] 序列。你有====] 和类似的东西,但它们甚至没有以] 字符开头。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-01-05
    • 2021-12-19
    • 2016-01-15
    • 1970-01-01
    • 2015-12-14
    • 2014-08-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多