'end' 期望(在第1行关闭'function')附近的'<eof>'。

我得到了这个错误

[ERROR] lua/autorun/donor_guns.lua:4: 'end' expected (to close 'function' at line 1) near '<eof>'
  1. 未知 - lua/autorun/donor_guns.lua:0

当运行这个脚本时

hook.Add( "PreDrawViewModel", "ReplaceCrowbar", function( vm, ply, weapon )
if ( ply:GetNWString( "usergroup" ) == "donor" and weapon = "weapon_ttt_caliburn" then
vm:SetModel( "models/tiggomods/weapons/SATBK/v_Caliburn.mdl" )
end

有任何帮助吗?

点赞
用户1737
用户1737

你缺失了一个 end,正如编译器所明确告诉你的。

一个 lua 的条件语句看起来像这样:

if <condition> then
   <statements...>
end

而一个函数则是这样的:

function foo(params)
   <statements...>
end

另外,你的括号不匹配。

2014-08-06 20:26:10
用户3902250
用户3902250

您的函数声明缺少 'end' 结束符,函数调用缺少 ')' 结束符,第二个等于号 ' = ' 没有赋值,括号 '(' 在 'if' 语句中是无用的且未封闭。应该是:

hook.Add( "PreDrawViewModel", "ReplaceCrowbar",
function( vm, ply, weapon )
   if ply:GetNWString("usergroup") == "donor" and weapon == "weapon_ttt_caliburn" then
      vm:SetModel("models/tiggomods/weapons/SATBK/v_Caliburn.mdl")
   end
end)
2014-08-07 01:08:33
用户6090045
用户6090045

我知道这是一个旧主题。我刚刚遇到了同样的问题,并想添加另一个可能的失败点-检查您的“if-else”语句,即您的“elseif”。我刚刚花了半个小时试图找到“丢失”的结尾,因为“else if”用一个空格写成,这显然在Lua中看起来像完全独立的IF语句-_-

2016-07-10 14:55:56