我想创建一个命令,当键入“!swap”时会更改您的模型,并使其重新显示时再次返回到以前的模型。
我尝试结束该功能并继续进行操作,但这没有用。我需要有人解释该错误,因为我之前从未见过,而google / gmod Wiki也未显示该错误。
hook.Add( 'PlayerSay', 'PlayerSayExample', function (ply, text, team)
end )
if ( string.sub( string.lower( text ), 1, 5 ) == "!swap" ) then
local model = ply:GetModel()
function GM:PlayerSetModel( ply ) end
else
end
if model == ("models/Kleiner.mdl") then
ply:SetModel("models/Eli.mdl")
else
ply:SetModel("models/Kleiner.mdl")
end
==================================
[ERROR] lua/swap2.lua:3: bad argument #1 to 'lower' (string expected, got nil)
1. lower - [C]:-1
2. unknown - lua/swap2.lua:3
=================================
以上(在休息之间)是我得到的错误。它发生在第3行的“ string.lower”位,但是我不知道代码实际上出了什么问题,因为我之前没有看过错误。
答案 0 :(得分:0)
hook.Add( 'PlayerSay', 'PlayerSayExample', function (ply, text, team)
end )
意味着您的钩子是空的。
如果在挂钩之前或之后未定义文本,则文本为nil,并且将始终抛出此错误。这是您的解决方法:
hook.Add( 'PlayerSay', 'PlayerSayExample', function (ply, text, team)
if ( string.sub( string.lower( text ), 1, 5 ) == "!swap" ) then
local model = ply:GetModel()
function GM:PlayerSetModel( ply ) end
else
end
if model == ("models/Kleiner.mdl") then
ply:SetModel("models/Eli.mdl")
else
ply:SetModel("models/Kleiner.mdl")
end
end )