roblox lua 脚本未激活

roblox lua script not activating

所以我有这个代码

local player = game.Players.LocalPlayer
local unitFrame = script.Parent
local buttona = unitFrame.buttonA
local sprinting = true

unitFrame.Title.Text = "Perks"
local function onButtonAClick()
    unitFrame.Title.Text = "perks"
end

local function sprintButton() 
    if sprinting == false then
        sprinting = true
        player.Character.Humanoid.WalkSpeed = 20
        unitFrame.buttonA.Text = "strinting"
    end
    if sprinting == true then
        sprinting = false
        player.Character.Humanoid.WalkSpeed = 16
        unitFrame.buttonA.Text = "walking"
    end
end

buttona.MouseButton1Click:connect(sprintButton)

我想做的是制作一个短跑切换程序。唯一的问题是它会工作一次然后根本无法工作。我可以单击它并更改文本,然后当我再次单击它时它什么也不做。我希望它在你每次按下它时都能工作。

在您测试 2 个 if 语句的函数中。如果冲刺是假的,如果是真的。

理解您的问题的关键是您的 if 语句相互抵消。

让我们来看看这个,首先它会检测它是否为假。不,短跑不假。然后 if 检查它是否为真。这是!所以它将它设置为 false。

到目前为止还不错吧?那么这是你的问题。当您再次尝试时,冲刺是错误的。所以第一个 if 语句是 运行,并将其设置为 true。但是,紧随其后的是 运行 的另一个 if 语句。由于它现在是 true,因此 运行s,将其设置为 false。好像什么都没发生。

你的解决方案?取出第一个 if 语句的结尾,并将第二个 if 替换为 elseif。这样一旦一个语句评估为真,它就不会评估下一个。

你的逻辑不正确。正如 warspyking 所说,你的条件有问题。通过添加 elseif 语句来解决此问题。

local function sprintButton() 
    if not sprinting then
        sprinting = true
        player.Character.Humanoid.WalkSpeed = 20
        unitFrame.buttonA.Text = "sprinting"
    elseif sprinting then
        sprinting = false
        player.Character.Humanoid.WalkSpeed = 16
        unitFrame.buttonA.Text = "walking"
    end
end