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>”附近的主要内容,如果未能解决你的问题,请参考以下文章