为什么我得到"无法将值转换为对象"在远程事件中运行此功能?

时间:2018-06-11 04:39:42

标签: lua roblox

当我运行此代码时,会发生错误,说"无法将值转换为对象"在第49行(giveOre:FireClient(oreType.Value)),即使oreType被归类为StringValue。

web.config

这是在需要时在客户端触发的事件

    function mineOre(plr, target, objTool)
if not target.ClassName == "Model" then --// try to find if target is valid, else set target as target's parent (confusing prob for someone)
    target = target.Parent
end

local oreFolder = target:FindFirstChild("OreStats")
if oreFolder then
    --// Identify ore key vals
    local oreHP = oreFolder:FindFirstChild("OreHP")
    local oreLVL = oreFolder:FindFirstChild("OreLVL")

    local toolLVL = objTool.stats:FindFirstChild("LVL")
    if toolLVL and oreLVL then
        local _math = toolLVL.Value - oreLVL.Value
        if _math >= 0 then
            local toolDMG = objTool.stats:FindFirstChild("DMG")
            oreHP.Value = oreHP.Value - toolDMG.Value

            --// Check if oreHP is 0 or less
            if oreHP.Value <= 0 then
                local oreType = oreFolder:FindFirstChild("OreType")
                local giveOre = plr.Backpack:FindFirstChild("GiveORE")
                giveOre:FireClient(oreType.Value) --// Give the player the ore.

                pcall(function()
                    delay(0.1, function() target:Destroy() end)
                end)
            end
        end
    end
end
    end

感谢。

1 个答案:

答案 0 :(得分:0)

请记住,RemoteEvent:FireClient()要求第一个参数是您要发送给它的客户端。您收到错误是因为您尝试发送程序期望Player-instance的String。 正确的代码是

giveOre:FireClient(plr, oreType.Value)