Lua オブジェクトにデータを格納する

Stingray Lua API 内の複数の種類のオブジェクトは、データ値を格納および取得するための汎用インタフェースを提供します。

このシステムを使用する方法には、独自の Lua 変数内にデータを格納する方法よりも便利な点がいくつかあります。

このデータ ストレージ メカニズムを提供するすべてのタイプのオブジェクトに、次の 3 つの関数があります。

set_data()
get_data()
has_data()

保存されたデータの有効な形式は次のとおりです。

データの各部には、それぞれに文字列または整数を指定可能な、1 つまたは複数の一連のキーがインデックスとして付きます。set_data() 関数を呼び出してデータの一部を保存する場合は、保存するデータ値と一緒にキーを引数として渡します。次に、同じ一連のキーを get_data() または has_data() 関数に渡して、データの取得や、データが存在するかどうかの確認を行います。

たとえば、次のコードでは、2 つの一連のキー score および headshots によって値 1 がインデックス付けされます。

stingray.Unit.set_data(player, "score", "headshots", 1)
...
local shots = stingray.Unit.get_data(player, "score", "headshots")