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
答案 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
来启用脚本。