SaveSystem - stingray.SaveSystem ネームスペース リファレンス - Stingray Lua API リファレンス

説明

保存とロードの機能にアクセスするためのインタフェース。

このオブジェクトはシングルトンである(単一の SaveSystem しかない)ため、SaveSystem オブジェクトを関数に渡す必要はありません。SaveSystem シングルトンで、すべての関数が動作します。

次のデータ型を保存することができます。

非同期操作は、操作の処理中に進行状況をフェッチするために使用される SaveToken オブジェクトを返します。このオブジェクトは、保存時に使用されるメモリを解放するために閉じる必要があります。そうしないと、ゲームは最終的にメモリ不足になります。

Windows と iOS では、保存システムがファイルを読み書きするルート ディレクトリを設定する必要があります。これは、プラットフォーム固有の save_dir 設定内のプロジェクトの settings.ini ファイルで行います。たとえば、次のようになります。

win32 = {
    // ... other windows settings go here
    save_dir = "%APPDATA%\\MyCompany\\MyProjectName\\Saves"
}
iOS = {
    // ... other iOS settings go here
    save_dir = "%SAVEDATA%/MyProjectName"
}

詳細については、「Stingray エンジンの settings.ini ファイルのリファレンス」を参照してください。

エラー コード

save_error_result() および load_error_result() 関数によって返される場合があるエラー コードです。

BROKEN : integer

接続が破棄されたため、ロードに失敗しました。

NOT_FOUND : integer

データが見つからなかったため、ロードに失敗しました。

OTHER : integer

別の未定義の理由で保存またはロードが失敗しました。

ステータス コード

status() 関数によって返される可能性のあるステータス コードです。

COMPLETED : integer

操作が正常に完了しました。

STARTED : integer

操作は開始されていますが、まだ完了していません。

UNKNOWN : integer

指定した ID は作成されたことがないか、または既に解放されています。

PlayStation 4

ここで説明されているインタフェースは、PlayStation 4 に固有のものです。

パラメータ

id :

integer

解放する操作の ID です。

戻り値
この関数は値を返しません。

stingray.SaveSystem.save() および stingray.SaveSystem.load() から取得し直すすべての ID について、free() を呼び出す必要があります。これは、操作が正常に完了したかどうかに関わりません。そうしないと、保存システムは最終的にメモリ不足になります。

パラメータ

info :

save_system_ps4_info

ロードするゲームおよびデータに関する詳細情報を表示するテーブル。フィールドは、stingray.SaveSystem.save() のテーブルと同様(titles btitle、および details が使用されない点、ファイルのデータが不要な点を除く)です。

戻り値

integer

操作の ID です。これは、status() に渡されます。

stingray.SaveSystem.status() を使用すると、操作の進行状況を追跡できます。操作が完了したら、stingray.SaveSystem.free() を呼び出して、操作によって使用されていたメモリを解放する必要があります。

サンプルの使用方法:

id = SaveSystem.load
{
    user_id = user,
    name = "save2",
    files = {
                {path = "a"},
                {path = "b"},
                {path = "c/d"},
    },
}
パラメータ

id :

integer

クエリーする操作の ID。

戻り値

integer

ロード中に発生した直前のエラーを示す error constant です。

パラメータ

id :

integer

クエリーする操作の ID。

戻り値

save_system_ps4_info_files[]

ロードされたファイルのリスト、およびこれらのファイルからロードされたデータです。

[]表記は、この型が配列(メンバーのキーは連番、各要素の値は示されている型のインスタンス)であることを示します。

stingray.SaveSystem.save() に入力されたものと同じ形式の結果であり、パスと値を持つテーブルです。たとえば、次のようになります。

{
    {path = "a", data = 3},
    {path = "b", data = "Niklas"},
    {path = "c/d", data = {1,2,3, {ha = "ho"}}},
}
パラメータ

info :

save_system_ps4_info

保存するゲームおよびデータに関する詳細情報を表示するテーブル。

戻り値

integer

操作の ID です。これは、status() に渡されます。

stingray.SaveSystem.status() を使用すると、操作の進行状況を追跡できます。操作が完了したら、stingray.SaveSystem.free() を呼び出して、操作によって使用されていたメモリを解放する必要があります。

サンプルの使用方法:

id = SaveSystem.save
{
    user_id = user
    name = "save2",
    title = "A saved game",
    subtitle = "This is the game saved",
    icon = "images/icon0"
    details = "It was a wonderful game",
    files = {
        {path = "a", data = 3},
        {path = "b", data = "Niklas"},
        {path = "c/d", data = {1,2,3, {ha = "ho"}}},
    },
}
パラメータ

id :

integer

クエリーする操作の ID。

戻り値

integer

保存中に発生した直前のエラーを示す error constant です。

integer?

エラー タイプが SaveSystem.OUT_OF_SPACE の場合、これはユーザが解放する必要のあるデータの量です。(これは、stingray.SaveSystemDialog.open() を呼び出す場合に使用します)。それ以外の場合、この値は nil です。

? 表記は、このタイプが省略可能であることを示しています。ゼロ個または 1 個のインスタンスが存在します。
パラメータ

id :

integer

クエリーする操作の ID。

戻り値

integer

操作のステータスを示す status constant です。

これが SaveSystem.ERROR を返す場合、save_error_result() または load_error_result() を呼び出してエラーの詳細を確認できます。

Windows、iOS、Android

ここで説明されているインタフェースは、Windows、Mac OS X、iOS、および Android プラットフォームに固有のものです。

パラメータ

filename :

string

ロードするデータが含まれているファイルの名前です。ディレクトリを指定する必要はありません。ファイル名では、a-z0-9、および _ の文字のみを使用できます。

戻り値

stingray.SaveToken

progress() を呼び出すことによってクエリーできるトークンです。

ファイルは自動的に読み取られます。

この操作によって割り当てられたメモリを解放するため、返されるトークンにについて、stingray.SaveSystem.close() を呼び出す必要があります。

パラメータ

filename :

string

保存されたデータが含まれるファイルの名前です。ディレクトリを指定する必要はありません。ファイル名では、a-z0-9、および _ の文字のみを使用できます。ファイルが存在する場合は、自動的に上書きされます。

data :

table

一般に、これは保存する必要のあるデータを含むテーブルです。

戻り値

stingray.SaveToken

progress() を呼び出すことによってクエリーできるトークンです。

この操作によって割り当てられたメモリを解放するため、返されるトークンにについて、stingray.SaveSystem.close() を呼び出す必要があります。

パラメータ

token :

stingray.SaveToken

閉じる SaveToken です。

戻り値
この関数は値を返しません。

これは、この操作によって使用されているメモリを解放します。

パラメータ
この関数はパラメータを受け入れません。
戻り値

boolean

SaveSystem インタフェースが使用可能な場合は、true を返し、それ以外の場合は、false を返します。

パラメータ

token :

stingray.SaveToken

クエリーする操作を識別するトークンです。

戻り値

save_system_progress

ロード済みのデータ(存在する場合)に加え、保存またはロード操作の進行状況に関する情報を含んだテーブルです。