【问题标题】:SprintingAnimation:19: Expected ')' (to close '(' at column 29), got ','SprintingAnimation:19: 预期 ')' (在第 29 列关闭 '('),得到 ','
【发布时间】:2020-06-14 03:53:47
【问题描述】:

在我的游戏中,我制作了一个可以冲刺的功能。 我已经将脚本的动画部分与主要的冲刺部分分开。 我收到错误消息"Workspace.Vlo_tz.SprintingAnimation:19: Expected ')' (to close '(' at column 29), got ','". 此代码用于角色和冲刺栏的动画

local UIS = game:GetService('UserInputService')
local Player = game.Players.LocalPlayer
local Character = Player.Character
local players = game:GetService("Players")
local stamina = players.LocalPlayer.PlayerGui.StaminaHealth.MainFrame.Stamina

UIS.InputBegan:connect(function(input)
    local humanoid = Player.Character.Humanoid
    if input.KeyCode == Enum.KeyCode.LeftShift and humanoid:GetState() == Enum.HumanoidStateType.RunningNoPhysics and humanoid.MoveDirection.Magnitude > 0 then
        local Anim = Instance.new('Animation')
        Anim.AnimationId = 'rbxassetid://05168161960'
        PlayAnim = Character.Humanoid:LoadAnimation(Anim)
        PlayAnim:Play()

        while true do
            wait(0.05)

            if stamina.Position <= (-0.343, 0, 0.274, 0) then
                stamina.Position = UDim2.new(-0.343, 0, 0, 0)
            else
                stamina.Position = stamina.Position - UDim2.new(0.01, 0, 0, 0)
            end
        end
    end
end)

UIS.InputEnded:connect(function(input)
    if input.KeyCode == Enum.KeyCode.LeftShift then
        PlayAnim:Stop()

        while true do
            wait(0.005)

            if stamina.Position >= (0.487, 0, 0.274, 0) then
                stamina.Position = UDim2.new(0.487, 0, 0, 0)
            else
                stamina.Position = stamina.Position + UDim2.new(0.01, 0, 0, 0)
            end
        end
    end
end)

local humanoid = Player.Character.Humanoid
if humanoid.MoveDirection.Magnitude == 0 then
    PlayAnim:Stop()

    while true do
        wait(0.005)

        if stamina.Position >= (0.487, 0, 0.274, 0) then
            stamina.Position = UDim2.new(0.487, 0, 0, 0)
        else
            stamina.Position = stamina.Position + UDim2.new(0.01, 0, 0, 0)
        end
    end
end

【问题讨论】:

    标签: lua roblox


    【解决方案1】:

    第 19 行是这样的:if stamina.Position &lt;= (-0.343, 0, 0.274, 0) then

    你在几个不同的地方都有这个检查,但这不是有效的 lua,你不能像这样比较 UDim2 值。您必须单独检查这些值。

    local isLessThanX = stamina.Position.X.Scale <= -0.343
    local isLessThanY = stamina.Position.Y.Scale <= 0.274
    if isLessThanX and isLessThanY then
    

    【讨论】:

    • 但这也不是处理这些检查的好方法。您的耐力值应该基于可以比较的某个数字,并且您的 UI 应该基于该值。
    • 我确实遵循了这个答案,但是当添加“local isLessThanX = stamina.Position.X.Scale
    • @Vlo_tz, U+2028 是行分隔符。我不确定它是如何进入我的答案的,也许在代码块中如何添加换行符存在问题。我建议您删除代码块并在脚本中重新输入。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-25
    • 2018-09-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多