尝试使用“CameraMaxZoomDistance”索引 nil 我尝试寻找解决方案,但没有找到

时间:2021-06-13 06:35:30

标签: lua roblox

我试图让玩家的最大变焦距离取决于他们拥有的力量(力量),因为力量越大角色越大。

但我收到上述错误:

<块引用>

尝试使用 'CameraMaxZoomDistance' 索引 nil

这是我的代码:

            hum:WaitForChild("BodyDepthScale").Value = .5 + (powr.Value / 250)
            hum:WaitForChild("BodyHeightScale").Value = .5 + (powr.Value / 250)
            hum:WaitForChild("BodyWidthScale").Value = .5 + (powr.Value / 250)
            hum:WaitForChild("HeadScale").Value = .5 + (powr.Value / 250)
            if powr.Value > 1000 then
                game:GetService("Players").LocalPlayer.CameraMaxZoomDistance = powr.Value / 50
            end
            if powr.Value > 200 then
                print('higher')
                hum.MaxHealth = powr.Value / 2
            end

1 个答案:

答案 0 :(得分:0)

您的错误是说 game:GetService("Players").LocalPlayer 为零。根据 LocalPlayer 的文档:

<块引用>

此属性仅针对 LocalScript(以及它们所需的 ModuleScript)定义,因为它们在客户端上运行。对于服务器(在其上运行 Script 对象的代码),此属性为零。

您正在尝试访问特定角色模型的 Player 对象,并且有几种不同的方法可以获取它。您已经可以访问角色模型本身中的人形对象,因此我建议使用 Players:GetPlayerFromCharacter 函数来定位 Player 对象。

if powr.Value > 1000 then
    -- get the character model
    local character = hum.Parent

    -- lookup the player based on the character
    local PlayerService = game:GetService("Players")
    local player = PlayerService:GetPlayerFromCharacter(character)
    if not player then
        warn("Could not locate player from character : ", character.Name)
        return
    end

    -- adjust the player's camera zoom distance
    player.CameraMaxZoomDistance = powr.Value / 50
end