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 行目から始まるため、2 行目に問題があります。ありがとうございました。

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 に答える