在我正在创建的框架项目中,我遇到了以下问题:
我有一个Player
有各种方法的类,其中之一是GetIdentifier()
.
我导出了ZMan
命名空间以便能够在其他资源中使用它(正如游戏所称的那样),我能够使用ZMan
命名空间中的每个方法,而不会出现问题。
但是当我去获取播放器实例,然后使用播放器方法时,我会得到奇怪的行为。相关代码:
-- Another resource, including the ZMan export
Citizen.CreateThread(function()
Wait(1500) -- Wait for the table to be filled
for k, v in pairs(ZMan.GetPlayers()) do
local Player = ZMan.Get(k) -- Get the player instance
print(Player:GetIdentifier()) -- Prints the identifier, works fine.
end
end)
-- Base resource (framework)
ZMan.Get = function(src)
if ZMan.Players[src] ~= nil then
return ZMan.Players[src] -- Returns the class instance of this player
end
Utils.Logger.Debug(("Cannot get ~green~%s's~white~ object! Doesn't exist on ~lblue~Players~white~ table!"):format(src))
end
播放器类:https ://github.com/iWanheda/zm-core/blob/main/framework/server/classes/player.lua
整个代码可以在@https ://github.com/iWanheda/zm-core/找到
第一个代码在基础资源(框架)上运行良好,但在其他资源上不起作用,这很奇怪,因为除了 Player 类的方法之外,其他一切都正常。
提前致谢。