これについては、file.Find関数を参照してください。
sound/customsteps/
すべてのカスタム サウンドを配置できるカスタム フォルダーを作成することをお勧めします。.wav
サウンド ファイルにもこの形式を使用することをお勧めしますが、他の形式でも機能するものが.mp3
あります (.ogg
記憶が正しければ)。
local snds=file.Find( "sound/customsteps/*", "GAME" )
あなたのコードでは、単にあなたにテーブルを与えるを呼び出すだけlocal snd=snds[math.random(1,#snds)]
ですply:EmitSound(snd)
.
GM:PlayerFootstep
一度だけ実行されるように、関数の外でサウンドのテーブルを作成してください。また、すべてのサウンドをプリキャッシュすることをお勧めします。次のように、テーブルをループして呼び出すことでこれを行うことができますutil.PrecacheSound(path)
。
for k,v in pairs(snds) do
util.PrecacheSound(v)
end
したがって、これらすべてを念頭に置いて、最終的なコードは次のようになります。
local snds=file.Find( "sound/customsteps/*", "GAME" )
for k,v in pairs(snds) do
util.PrecacheSound(v)
end
function GM:PlayerFootstep( ply, pos, foot, sound, volume, rf )
ply:EmitSound(snds[math.random(1,#snds)])
return true
end
出典:個人的な経験