0

我想创建一个命令,在键入“!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”位上,但我不知道代码实际上有什么问题,因为我以前没有看到过这个错误。

4

1 回答 1

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 )
于 2019-09-09T12:02:30.417 回答