2016-05-23 3 views
1

LUAでスクリプト武器用のコードを作成していますが、3つの爆発音がランダムに発生していません。動作するようには思えない、と私は、これはmath.randomseed(os.time())の構文エラー

syntax error near unexpected token 'os.time' 

これは、エラーはまた、私は実行していますfrom-

math.randomseed(os.time()) 
    local expthink = math.random(3,5) 
    if expthink == 3 then local explosionsound = "explode3.wav" 
    elseif expthink == 4 then local explosionsound = "explode4.wav" 
    elseif expthink == 5 then local explosionsound = "explode5.wav" 
    end 

を来ている場所であるように思わスクリプトの抜粋であるエラー - 取得しますGit Bashの私のtest.luaファイルで出力を見ることができます。その効果は何ですか?

Click to see Image

(画像を投稿するには十分ではない評判)この回答のため@KeithThompsonへ

+0

あなたが示した最初の行の前に問題がある可能性があります。スニペットを 'tmp.lua'ファイルにコピー&ペーストすると、' lua tmp.lua'は構文エラーを報告しません。 –

+0

Keith Thompson、そのコードを別のLUAファイルに入れて実行したところ、同じエラーが表示されていたので、そのコードは完全な誤りではないと思います。私は公式サイトからもluaをダウンロードしました。 lua.exeで実行していますが、luac.exeで実行する必要がありますか? – DerpyCoal

+0

私は分かりません。私は同じエラーが出ないとあなたに伝えることができます。 (私はLuauxで、Windowsではなく、Lua 5.2.3と5.3.2を使用しています。) 'lua'と' luac'のどちらもエラーです。 –

答えて

0

ありがとう:

これは、私は、コマンドプロンプトで取得出力されます。

explosionsound変数をローカルとして定義しないでください。この編集 - EDITため@EgorSkriptunoffへ

math.randomseed(os.time()) 
    local expthink = math.random(3,5) 
    if expthink == 3 then explosionsound = "explode3.wav" 
    elseif expthink == 4 then explosionsound = "explode4.wav" 
    elseif expthink == 5 then explosionsound = "explode5.wav" 
    end 
    print(explosionsound) 

ありがとう:また、バッシュでそれを実行すると良いアイデアではありません。 Bashはバッチファイルのようなluaファイルと互換性がありません。これはbashスクリプトとして実行され、正しい構文として math.randomseed(os.time()) が表示されません。

+0

私は最初に尋ねた構文エラーをどのように解決するのか分かりません。 –

+0

私はKeithに同意し、if-blockのブランチに対してローカルの 'explosionsound'を構文エラーとほとんど関係ないようにします。あなたのコードが今動作していれば、おそらく他のものが変更されたでしょう。また、 'explosionsound'がローカルのどこか他の場所で宣言されていない場合、地球環境' _G'に居住しているので、後で不思議なバグを見つけるかもしれません。 –

+0

うーん...私は同意しています。最初のポストでは、最後にreturn explosionsoundを追加した後にコマンドプロンプトでluaファイルを実行すると、無作為ではなく、構文エラーの原因であると主張していたrandomseedではなく、ローカル部分になります。 (私は現時点でiOS上にいるので、コードブロックを置くのは面倒です。) – DerpyCoal