0
local function CreateCvar(cvar, value)
    CreateClientConVar(cvar, value)
end
--cvars
CreateCvar("bunnyhop_test", 0)
CreateCvar("bunnyhop_test_off", 0)

if CLIENT then
    function ReallyHiughJumpoBHOP()
    --concommand.Add("+bhop",function()
    if GetConVarNumber("bunnyhop_test") then
    hook.Add("Think","hook",function()
    RunConsoleCommand(((LocalPlayer():IsOnGround() or LocalPlayer():WaterLevel() > 0) and "+" or "-").."jump")
    end
end)


    function ReallyHiughJumpoBHOPoff()
--concommand.Add("-bhop",function()
    if GetConVarNumber("bunnyhop_test_off") then
    RunConsoleCommand("-jump")
    hook.Remove("Think","hook")
end)

这是为游戏“Garry's mod”制作的lua脚本。这应该重复跳跃。我已经编辑了有效的基本代码,现在我的代码不再有效。

尝试使用 createcvars 使其工作。我确实让它没有显示任何错误,但是在游戏中当我在控制台中输入“bunnyhop_test 1”时它不起作用。

下面是我开始的原始代码:

if CLIENT then
    concommand.Add("+bhop",function()
        hook.Add("Think","hook",function()
            RunConsoleCommand(((LocalPlayer():IsOnGround() or LocalPlayer():WaterLevel() > 0) and "+" or "-").."jump")
        end)
    end)

    concommand.Add("-bhop",function()
        RunConsoleCommand("-jump")
        hook.Remove("Think","hook")
    end)
end
4

1 回答 1

1

您弄乱了end关键字顺序。有些if语句没有正确关闭,有些函数声明没有正确关闭end

从编辑中,我只能猜测这是您想要做的:

local function CreateCvar(cvar, value)
    CreateClientConVar(cvar, value)
end

--cvars
CreateCvar("bunnyhop_test", 0)

if CLIENT then
    concommand.Add("+bhop",function()
            hook.Add("Think","hook",function()
                if GetConVarNumber("bunnyhop_test") == 1 then
                    RunConsoleCommand(((LocalPlayer():IsOnGround() or LocalPlayer():WaterLevel() > 0) and "+" or "-").."jump")
                end
            end)
        end
    end)

    concommand.Add("-bhop",function()
        RunConsoleCommand("-jump")
        hook.Remove("Think","hook")
    end)
end

看,当一个函数被声明为内联时,称为闭包,你必须将它与关键字匹配end,以表示它的结束。另外,请注意,您将这些内联函数作为参数传递给另一个函数,.Add该函数以 开始(并且必须以 结束)if语句,还需要有一个end关键字来表示if. 所有这些都是基本的编程原则,尝试阅读更多代码以熟悉如何编写更多代码,也许从lua 文档开始。

我还修改了代码,以便您可以编写bunnyhop_test 0禁用和bunnyhop_test 1启用脚本。

于 2016-10-09T07:59:19.303 回答