ROBLOX Lua 脚本中的错误:“=”应在“<eof>”附近

Posted

技术标签:

【中文标题】ROBLOX Lua 脚本中的错误:“=”应在“<eof>”附近【英文标题】:ROBLOX Lua Error in script: '=' expected near '<eof>' 【发布时间】:2015-08-19 17:59:58 【问题描述】:

您好,我正在写 ROBLOX 的 scipt,但遇到了问题。

function showVictoryMessage(playerName)
    local message = Instance.new("Message")
    message.Text = playerName .." has won!"
    message.Parent = game.Workspace
    wait (2)
    message.Destroy()
end

在运行此函数,或者更具体地说是“message.Destroy”命令时,我收到错误:脚本错误:'=' 预期在 '' 附近

我以前从未见过这个错误,而且关于 Lua 错误的 ROBLOX wiki 页面也没有提到它。

我非常感谢这方面的帮助,因为我个人不认识任何使用 Lua 编码的人。

【问题讨论】:

没有进一步的提示,比如行号? 我不是 Lua 专业人士,但我认为第三行的 .. 看起来像是语法错误。 不。但这并不重要,因为我只在整个脚本中调用该命令一次,并且运行单个命令“message.Destroy”会得到完全相同的错误。所以它与那个特定的命令有关。 Ed 不是。 .. 被替换为由一些早期代码确定的玩家名称。同样当消息出现在屏幕上时..由玩家的名字填写就好了。只是删除消息不起作用。 .. 是连接运算符。它不会被任何东西“取代”。这就是 playerName 变量。 【参考方案1】:

看起来像语法错误。 message.Destroy() 应该是 message:Destroy() 根据这个 Roblox 维基页面 http://wiki.roblox.com/index.php?title=API:Class/Instance/Destroy

另请参阅 URL http://wiki.roblox.com/index.php?title=Basic_Scripting 上的 Explosions、Messages 等部分,该部分使用冒号 (:) 运算符提供了类似的语法。

另请参阅Difference between . and : in Lua 和“计算/访问的可能副作用仅计算一次”的解释,使用冒号表示。

【讨论】:

【参考方案2】:

应该是message:Destroy(),而不是message.Destroy()

记住'.'按目录使用,":' 用于内置函数。

【讨论】:

【参考方案3】:

呜呜呜!这是一个语法错误。正确的命令是message:Destroy。为什么object.Destroy 可以工作而 message.Destroy 不行?

【讨论】:

我是个白痴。它在任何地方都使用冒号。如果我仔细看的话,我会在整个代码中看到我的问题的答案!哇哦。我现在笑得很厉害。不管怎样,谢谢大家的帮助。我得到建议的速度给我留下了深刻的印象。再次感谢,也许有一天我会帮助你们中的一个人。

以上是关于ROBLOX Lua 脚本中的错误:“=”应在“<eof>”附近的主要内容,如果未能解决你的问题,请参考以下文章

无法在 ROBLOX Lua 中解析 JSON

Lua 刷新脚本 (ROBLOX)

循环中的 Roblox Studio Lua if 语句

roblox lua脚本未激活

roblox studio 中的 Lua 排行榜

如何制作基础系统? -- Roblox Lua