Lua 无法识别已存在方法?

在我创建的框架项目中,我遇到了以下问题:

我有一个 Player 类,其中包含各种方法之一为 GetIdentifier()

我导出了 ZMan 命名空间以便能够在其他资源中使用它(如游戏调用它们),我可以使用 ZMan 命名空间中的每个方法,没有问题。

但是当我要获取玩家实例并使用玩家方法时,我会得到奇怪的行为。 相关代码:

    -- 另一个资源,包括 ZMan 导出
    Citizen.CreateThread(function()
      Wait(1500) -- 等待表格填充

      for k, v in pairs(ZMan.GetPlayers()) do
        local Player = ZMan.Get(k) -- 获取玩家实例
        print(Player:GetIdentifier()) -- 打印标识符,正常工作。
      end
    end)

    -- 基础资源(框架)

    ZMan.Get = function(src)
      if ZMan.Players[src] ~= nil then
        return ZMan.Players[src] -- 返回此玩家的类实例
      end

      Utils.Logger.Debug(("无法获取 ~green~%s's~white~ 对象!在 ~lblue~Players~white~ 表格中不存在!"):format(src))
    end

玩家类:https://github.com/iWanheda/zm-core/blob/main/framework/server/classes/player.lua

此代码的整个代码可在 https://github.com/iWanheda/zm-core/ 上找到

第一份代码在基础资源(框架)上运行良好,但在其他资源上不起作用,这很奇怪,因为除了 Player 类的方法之外,其他一切都正常工作。

提前感谢。

原文链接 https://stackoverflow.com/questions/69086937

点赞
stackoverflow用户16305939
stackoverflow用户16305939

我的问题是我使用:而不是.调用方法,现已解决。

2021-09-08 21:01:38