0

我的服务器上有一个插件,基本上可以让你创建区域。最重要的是,我有一个可以让你制作永久属性,玩家即使不在线也拥有这些属性。此外,您可以将道具保存在这些永久性建筑物内,以便下次上车时,道具都还在。

它工作正常,但现在每当我将道具保存在我家中并重新启动服务器时,我似乎都会遇到以下错误。此外,很多房子似乎没有工作。但是,当我取消保存房屋内的道具并重新启动时,一切都恢复正常。

错误

[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 行开始,所以第二行是有问题的。谢谢你。

4

1 回答 1

2

只需阅读错误消息。它告诉您pairs() 的输入是nil 而不是预期的表。对是所谓的迭代器。它仅适用于 Lua 表作为输入。

t您的输入BuyableTerritory:LoadProps(steamid, t)无效。

您要么必须更改它,要么在t调用之前检查是否是一个表,pairs(t)以防止错误发生。

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

于 2016-03-25T09:05:15.767 回答