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

게임용 "Garry 's mod"용으로 제작 된 루아 스크립트입니다. 이것은 무엇을 반복적으로 뛰어 넘기로되어 있습니다. 작동했던 기본 코드를 편집했는데 이제는 내 코드가 더 이상 작동하지 않습니다.루아 스크립트 코드를 디버깅하는 방법은 무엇입니까?

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

좋아, 나는 당신이 자신의 콘솔 변수로 스크립트를 변경하고 싶다는 것을 알 수있다. 나는 당신이'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 문도 if의 끝을 나타내는 end 키워드가 있어야합니다. 이 모든 것은 기본적인 프로그래밍 원칙이며 더 많은 코드를 작성하여 더 많은 코드를 작성하는 방법에 익숙해 지려면 lua documentation으로 시작하십시오.

또한 코드를 수정하여 bunnyhop_test 0을 사용하지 않도록 설정하고 bunnyhop_test 1을 사용하여 스크립트를 사용하도록 설정할 수 있습니다.

+0

감사합니다. 오류가 없습니다. 코드는 의도 한대로 작동하지만 이해가 안되는 것은 이것입니다. 나는 convar 's를 내가 그것을 on/off 할 수있는 것을 추가하면서 나로 생각했다. 내 콘솔에 들어가서 "+ bhop"을 입력하면 제대로 작동합니다! 하지만 "bunnyhop_test 1"을 통해 설정하려고하면 아무 것도하지 않습니다. 그리고 그 부분을 이해하지 못합니다. – user1244458

+0

'GetConVarNumber'는 설정 한 값을 **로 반환하지만 **는 0을 반환하므로 루아는'true'로,'false' 또는'nil' 만 false로 설정합니다. 거기에'GetConVarNumber ("bunnyhop_test_off") == 1'와 같은 평등이 있는지 확인해야합니다. –

+0

그래서이게 뭔가 있을까요? ------------------------------------ GetConVarNumber ("bunnyhop_test")> 0이면 – user1244458