尝试使用 'LoadCharacter' 索引空值

在尝试使用 plr:LoadCharacter() 重生玩家时,它只会给我以下提示: 尝试使用 'LoadCharacter' 索引空值,我尝试了多种方式来做,比如Player:LoadCharacter(),或者有更有效的方法杀死/重生玩家吗?

--声明布尔全局变量
_G.TimerStart = false

--本地对象路径
local label = game.StarterGui.TimerGUI.Timer

--获取服务变量
local Teams = game:GetService("Teams")
local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local plr = game:GetService("Players").LocalPlayer

--获取子对象
local Child = game.Players:GetChildren()

--等待子对象变量
local TimeCountdown = ReplicatedStorage:WaitForChild("Timer")
local timerevent = ReplicatedStorage:WaitForChild("Timer")

local function Thieves(Players)
    if _G.TimerStart == false then
        for i,v in pairs(game.Teams.Thieves:GetPlayers()) do
            game.StarterGui.ThiefWinScreen.Frame.TextLabel.Script.Disabled = false
            wait(2)
            plr:LoadCharacter()
            wait(7)
            timerAmount = 120
        end
        for i,v in pairs(game.Teams.Police:GetPlayers()) do
            game.StarterGui.ThiefWinScreen.Frame.TextLabel.Script.Disabled = false
            wait(2)
            plr:LoadCharacter()
            wait(7)
            timerAmount = 120
        end
    end
end
点赞
用户2858170
用户2858170

在这种情况下,plr 的值是 nil。因此,plr:LoadCharacter() 是不允许的,因为这没有任何意义。

local plr = game:GetService("Players").LocalPlayer

就是原因。

因此,请参阅此手册页面:https://developer.roblox.com/en-us/api-reference/property/Players/LocalPlayer

也许这可以帮助:

加载 GUI 当使用 ReplicatedFirst 创建加载 GUI 时,有时 LocalScript 可能会在 LocalPlayer 可用之前运行。 在这种情况下,您应该使用 Instance:GetPropertyChangedSignal 等待它可用,直到它可用。

local Players = game:GetService("Players")
-- 下面:访问 Players.LocalPlayer;如果为 nil,则使用 GetPropertyChangedSignal 等待它。
local player = Players.LocalPlayer or Players:GetPropertyChangedSignal("LocalPlayer"):wait()
2021-05-12 13:57:31