如何调试Lua脚本代码?

时间:2016-10-09 07:39:38

标签: lua garrys-mod

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"制作的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

1 个答案:

答案 0 :(得分: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 documentation开始。

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