2016-10-09 6 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」用に作成されたルアスクリプトです。これは何度も繰り返しジャンプするはずです。私は動作したベースコードを編集しましたが、今は自分のコードが機能しなくなりました。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

あなたが独自のコンソール変数でスクリプトを変更したかったことがわかりました。私は '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

ありがとう私は今、エラーがありません。コードは意図したとおりに動作しますが、私が理解できないのはこれです。私はコンバールを追加して私にそれをオン/オフすることができると思った。私が私のコンソールに入り、 "+ bhop"と入力すると、うまく動作します!しかし、私は "bunnyhop_test 1"を介してそれをオンにしようとすると、何もしません。私はその部分を理解していません。 – user1244458

+0

'GetConVarNumber'はあなたが設定した値の値を返します。**しかし**は0を返します。luaは' true'、 'false'または' nil'はfalseです。あなたは 'GetConVarNumber(" bunnyhop_test_off ")== 1のように平等をチェックする必要があります –

+0

だから私はこれのようなものが必要でしょうか? ------------------------------------ GetConVarNumber( "bunnyhop_test")> 0の場合は – user1244458

関連する問題