【问题标题】:Player Function a nill value玩家函数一个零值
【发布时间】:2022-01-14 18:36:36
【问题描述】:

我正在制作一个小脚本,看看我是否可以通过检查他们的 SteamID 来阻止人们使用 NoClip。安装了 DarkRP 和 ULX。只是使用基本 GMOD 来看看我是否可以将 GMOD 脚本作为一种爱好来学习 - 很新:)

TABLE = TABLE or {}
TABLE.PLAYERS = {
["STEAM_0:1:89436878"] = true,
}
local plyMeta = getmetatable("player")
function plyMeta:CanNoClip()
    for id, bool in pairs(TABLE.PLAYERS) do
        if id == self:SteamID() then
            print(self:Nick() .. " can noclip")
            return true
        else
            print(self:Nick() .. " cannot noclip")
            return false
        end
    end
end
hook.Add("PlayerNoClip", "CheckPlayerCanNoClip", function(ply, state)
    ply:CanNoClip()
end)

我在控制台中得到的错误是......

attmpt to call method 'CanNoClip' (a nill value)

任何帮助将不胜感激。

【问题讨论】:

    标签: lua garrys-mod


    【解决方案1】:

    错误是由这一行引起的:

     ply:CanNoClip()
    

    ply 是一个 Player 对象。 Player 类中没有 CanNoClip 方法。所以你试图调用一个不允许的 nil 值。

    您将该函数添加到所有字符串共享的元表中。

    local plyMeta = getmetatable("player")
    function plyMeta:CanNoClip()
    -- your code
    end
    

    "player" 是一个字符串,所以getmetatable("player") 为您提供该字符串的元表。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-04-09
      • 1970-01-01
      • 1970-01-01
      • 2021-08-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多