2017-11-14 8 views
0

私は関数os.clock()とos.time()を使ってゲームにLuaスクリプトをプログラミングしました。正常に動作しましたが、このゲームをアップグレードした後、失敗メッセージが表示されました:attempt to call global 'os' (a nil value)... ? os.clock()とos.time()はLuaのネイティブ関数だと思いました。 LuaのリファレンスマニュアルからLua os.timeは動作しません

答えて

1

:基本パッケージのライブラリを除き

、各ライブラリは、グローバルテーブルのフィールドとしてまたはその オブジェクトのメソッドとして そのすべての機能を提供します。

これらのライブラリにアクセスするには、Cホストプログラムが luaL_openlibs関数を呼び出す必要があります。これにより、すべての標準ライブラリが開きます。あなたはホストプログラムで標準ライブラリの追加を参照してくださいあるいは、ホストプログラムが...(オペレーティングシステムライブラリ用)... luaopen_osを使用して個別に

を開くことができ はオプションです。多くのアプリケーションが標準ライブラリへのアクセスを制限しています。特にosとio。

os librarieがゲームのスクリプト環境に追加されていないため、グローバル表osnilです。

明らかに、あなたのゲームの開発者は、ユーザーがOSの機能なしで生き残るべきだと決めました。ときどき彼らはあなたに物事をしたくない場合があります。時にはそれはちょうど意味がありません。これは、ゲーム内から操作システムとやりとりすることを防ぐ最も簡単な方法です。 通常、必要な機能を削除して外部コードを読み込むこともできません。

関連する問題