在 RemoteEvent 函数中查找 Roblox 中的 Humanoid?

我正在尝试制作一个属性/技能点系统,例如我在 ServerScriptService 中有一个包含所有 Skill 内容的脚本。问题是它找不到 Humanoid,从而无法更新 WalkSpeed/Health。

这里是代码:

game.Players.PlayerAdded:Connect(function(player)
    local attr = Instance.new("Folder")
    attr.Name = "属性"
    attr.Parent = player

    local health = Instance.new("IntValue")
    health.Name = "生命值"
    health.Parent = attr

    local attack = Instance.new("IntValue")
    attack.Name = "攻击力"
    attack.Parent = attr

    local speed = Instance.new("IntValue")
    speed.Name = "速度"
    speed.Parent = attr

    local points = Instance.new("IntValue")
    points.Name = "技能点"
    points.Parent = attr

end)

local repStorage = game:GetService("ReplicatedStorage")

local hpRemote = repStorage.AddHealth
local spdRemote = repStorage.AddSpeed
local atkRemote = repStorage.AddAttack
local reset = repStorage.ResetSkill

local function PointsAvailable(player)
    local pointsUsed = player.Attributes.Health.Value + player.Attributes.Attack.Value +  player.Attributes.speed.Value

end

hpRemote.OnServerEvent:Connect(function(player)
    if not PointsAvailable(player) then return end


    local hpPerPoint = 10

    player.Character.Humanoid.MaxHealth = 100 + player.Attributes.Health.Value * hpPerPoint
    player.Character.Humanoid.Health = 100 + player.Attributes.Health.Value * hpPerPoint
end)

spdRemote.OnServerEvent:Connect(function(player)

    print("已启用")

    local starterSpeed = 16

    player.Character.Humanoid.WalkSpeed = starterSpeed + player.Attributes.speed.Value
end)

这里还有一个 LocalScript,它定义了 StatUp 按钮何时被按下。它有每个技能的自己脚本,但这里是速度的脚本:

local button = script.Parent

local player = game.Players.LocalPlayer

local skillCost = 1

button.MouseButton1Click:Connect(function()
    if player.Attributes.points.Value >= skillCost then
        player.Attributes.speed.Value += skillCost
        player.Attributes.points.Value -= skillCost

        game.ReplicatedStorage.AddSpeed:FireServer()
    end
end)

希望得到帮助!

原文链接 https://stackoverflow.com/questions/70570832

点赞