llRequestSimulatorData
key llRequestSimulatorData(string simulator, integer data)
引数simulatorに指定した名前のSIMの情報の取得要求を出す。
SIM名は大文字・小文字を区別せずに指定可能だが、似たような名前のSIMが他にあると、間違ったSIMの情報を返してくることがあるらしい。なので正確に指定するべきである。
SIM名は大文字・小文字を区別せずに指定可能だが、似たような名前のSIMが他にあると、間違ったSIMの情報を返してくることがあるらしい。なので正確に指定するべきである。
情報が取得できるとdataserver?イベントが発生する。
その際、llRequestSimulatorData関数の戻り値が識別キーとして通知されるので、戻り値は忘れないよう控えておくこと。
その際、llRequestSimulatorData関数の戻り値が識別キーとして通知されるので、戻り値は忘れないよう控えておくこと。
要求する情報は引数dataで指定する。
dataには以下の値を指定できる。
dataには以下の値を指定できる。
定数名 | 値 | 説明 |
DATA_SIM_POS | 5 | SIMのグローバル座標をvector表現で返す(要cast) |
DATA_SIM_STATUS | 6 | SIMの状態を返す。状態については以下に詳述 |
DATA_SIM_RATING | 7 | SIMのレートを返す。"PG"/"MATURE"/"UNKNOWN"のいずれか |
DATA_SIM_STATUSの戻り値は以下の通り。
戻り値 | 意味 |
"up" | 正常に稼働中 |
"down" | オフライン中 |
"starting" | 起動処理中 |
"stopping" | 停止処理中 |
"crashed" | ぶち壊れとるがな |
"unknown" | わからんがな/または指定したSIM名が存在しない |
存在しないSIMを指定した場合、DATA_SIM_POSとDATA_SIM_RATINGは無警告で失敗する。
つまりいつまで待ってもdataserver?イベントが発生しないことになる。
従ってSIMの存在確認が取れてない場合はタイムアウト処理を別途用意しておいたほうが良い。
つまりいつまで待ってもdataserver?イベントが発生しないことになる。
従ってSIMの存在確認が取れてない場合はタイムアウト処理を別途用意しておいたほうが良い。
DATA_SIM_POSはより簡単な方法で取得できる場合がある。
例えば現在スクリプトが稼動しているSIMのグローバル座標を取りたいなら、llGetRegionCorner関数が使える。
スクリプトが稼動しているSIMとは別のSIMの座標を調べる際にはこのllRequestSimulatorData関数を使う必要がある。
例えば現在スクリプトが稼動しているSIMのグローバル座標を取りたいなら、llGetRegionCorner関数が使える。
スクリプトが稼動しているSIMとは別のSIMの座標を調べる際にはこのllRequestSimulatorData関数を使う必要がある。