2016-10-09 2 views
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) 

Это сценарий lua, сделанный для игры «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 
+0

Да, я как-то вырубил его ^.^ – user1244458

+0

Хорошо, я вижу, что вы хотели изменить скрипт с помощью вашей собственной переменной консоли. i обновил код, чтобы вы могли написать 'bunnyhop_test 1' для включения и' bunnyhop_test 0', чтобы отключить скрипт. Вам, конечно, нужно будет начать с '+ bhop'. –

ответ

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, чтобы включить скрипт.

+0

Спасибо. У меня нет ошибок. Код работает так, как предполагалось, но я не понимаю. Я подумал, что я добавляю конвар, чтобы я мог включить его/выключить. Когда я иду в свою консоль и набираю «+ bhop», он отлично работает !!! Но если я попытаюсь включить его через «bunnyhop_test 1», он ничего не делает. И я не понимаю эту часть. – user1244458

+0

'GetConVarNumber' вернет значение для значения, которое вы установили с **, но **, так как он возвращает 0, lua примет его как' true', только 'false' или' nil' являются ложными. Вам нужно будет проверить наличие равенства, например 'GetConVarNumber (" bunnyhop_test_off ") == 1' –

+0

Так что мне нужно что-то вроде этого, может быть? ------------------------------------ если GetConVarNumber ("bunnyhop_test")> 0, то – user1244458

Смежные вопросы