我试图让玩家的最大变焦距离取决于他们拥有的力量(力量),因为力量越大角色越大。
但我收到上述错误:
<块引用>尝试使用 '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
答案 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