我在我的 Garry's Mod 服务器上遇到以下错误

我在我的服务器上有一个插件,基本上允许你创建领地。此外,我还有一个允许你制作永久属性的插件,即使玩家不在线,他们也拥有这些属性。此外,您可以保存这些永久建筑内的道具,以便下次登录时所有道具都还在。

它之前一切都运作良好,但当我保存房子内商品并重启服务器时,现在似乎遇到以下错误。此外,很多房子似乎无法工作。但是,当我取消保存房子内的商品并重新启动时,一切都恢复正常。

错误信息

[ERROR] addons/darkrpmodification-master/lua/darkrp_modules/territory/sh_init.lua:514: bad argument #1 to 'pairs' (table expected, got nil)
1. pairs - [C]:-1
2. LoadProps - addons/darkrpmodification-master/lua/darkrp_modules/territory/sh_init.lua:514
3. tsetUpDoors - addons/darkrpmodification-master/lua/darkrp_modules/territory/sv_init.lua:273
4. unknown - addons/darkrpmodification-master/lua/darkrp_modules/territory/sv_init.lua:290

代码

function BuyableTerritory:LoadProps(steamid, t)
for k, v in pairs(t) do
    local e = ents.Create("prop_physics")
    e:SetPos(v.pos)
    e:SetAngles(v.ang)
    e:SetModel(v.model)
    if v.color then
        e:SetColor(v.color)
    end
    if v.material then
        e:SetMaterial(v.material)
    end
    e:Spawn()
    e.permaOwner = steamid
    e:GetPhysicsObject():EnableMotion(false)
end
local ply = DarkRP.findPlayer(steamid)
if IsValid(ply) then
    self:SetPropsOwner(ply, ply:SteamID())
end

代码从第513行开始,所以第二行有问题。谢谢。

点赞
用户2858170
用户2858170

只需仔细阅读错误消息。它告诉您 pairs() 的输入为空,而不是预期的表格。 pairs 是一种所谓的迭代器。它仅适用于 Lua 表格作为输入的情况。

您输入到 BuyableTerritory:LoadProps(steamid,t)t 不是有效的。

您需要更改它或在调用 pairs(t) 之前检查 t 是否为表格,以防止发生错误。

请转到 sv_init.lua 的第 273 行以查明发生了什么。

2016-03-25 09:05:15