2007年07月14日
リファレンス【GetM-GetO】
llGetM・・・からllGetO・・・の関数リファレンスです。
llGetMass
llGetNextEmail
llGetNotecardLine
llGetNumberOfNotecardLines
llGetNumberOfPrims
llGetNumberOfSides
llGetObjectDesc
llGetObjectMass
llGetObjectName
llGetObjectPermMask
llGetObjectPrimCount
llGetOmega
llGetOwner
llGetOwnerKey
llGetMass
float llGetMass()
オブジェクトの質量を得る。
リンクされたオブジェクトのルートで実行した場合はオブジェクト全体の質量を返す。
子primで実行した場合、そのprimの重さを返す。
また、アタッチメントで実行した場合はアバターの体重を得ることができる。
他のオブジェクトの質量を調べるにはllGetObjectMass関数を使う。
なお、これらMass系関数で返される質量の単位はLindogram(リンドグラム:Lg)と慣例的に呼ばれることがあるらしいが、あまり耳にしない。
llGetNextEmail
llGetNextEmail(string address, string subject)
郵便受けに溜まっている次のメールを取得するよう指示を出す。
メールがあった場合はemailイベントが発生し、そのメールは郵便受けから取り出される(削除される)。
この関数の詳細な使い方についてはEmailの送受信の記事を参照。
llGetNotecardLine
key llGetNotecardLine(string name, integer line)
オブジェクトのコンテンツ内にあるノートカードnameのline行目を読み取るよう要求を出し、問い合わせ番号(key型)を返す。
要求の結果はdataserverイベントにて受け取ることができる。
この関数の詳細な使い方についてはノートを使おう(初級スクリプト第十二回)の記事を参照。
llGetNumberOfNotecardLines
key llGetNumberOfNotecardLines(string name)
nameに指定した名前のノートカードの行数を調べるよう要求を出し、問い合わせ番号(key型)を返す。
要求の結果はdataserverイベントにて受け取ることができる。
指定したノートカードはオブジェクトのコンテンツ内になければならない。
dataserverイベントでは調べた結果がstring型の引数で渡されてくるが、これをinteger型にキャストすれば行数として扱うことができる。
以下の例はノートカード"hogehoge"の行数を調べる。
ノートカードの読取についてはノートを使おう(初級スクリプト第十二回)の記事を参照。
llGetNumberOfPrims
integer llGetNumberOfPrims()
スクリプトを実行中のオブジェクト(自分自身)のprimの数を返す。
オブジェクトにアバターが座っていた場合は、1アバター=1primとしてカウントされる。
llGetNumberOfSides
integer llGetNumberOfSides()
スクリプトが含まれているprimの面数を返す。
例えばデフォルト状態のキューブであれば6を返すが、パスカットやホロウ(くり抜き)で変形している場合は6以上の面数を返す場合がある。
ホロウの形状によっては見かけ上4面増えるように見えるが、あくまでも1つの面としてカウントされる。
パスカットは2つの面である(パスカット開始面と終了面の2つ)。
また、パスカットやテーパーによる変形で面が消失する場合もある。
例えばキューブにおいてテーパーの値を1や-1にすると四角錐となり、面数は5になる。
llGetObjectDesc
string llGetObjectDesc()
オブジェクトまたはprimの説明(ディスクリプション)を返す。
ディスクリプションとはbuild画面のprim名を編集する欄の下にある説明欄の内容である。
この関数はスクリプトが含まれているprimのディスクリプションを返す。
スクリプトがルートprimに入っている場合はオブジェクトのディスクリプションを返す。
ディスクリプションをスクリプトから書き換えるにはllSetObjectDesc関数を使用する。
llGetObjectMass
float llGetObjectMass(key id)
idに指定されたUUIDのオブジェクトまたはアバターの質量を得る。
同一SIM内に存在する対象のみ有効。
SIM内に存在しないUUIDを指定した場合は0.0が返る。
自分自身の質量を調べるにはllGetMass関数を使う。
llGetObjectName
string llGetObjectName()
オブジェクトまたはprimの名前を返す。
primの名前を返すのは、子primにおいて使用された場合である。
ルートprimで使用された場合はオブジェクト名を返す。
オブジェクトの名前をスクリプトから変更するにはllSetObjectName関数を使う。
llGetObjectPermMask
integer llGetObjectPermMask(integer mask)
オブジェクトの権限を取得する。
引数maskには調べたい権限の対象者を指定する。
戻り値はビットフィールドになっているので、以下の定数と&演算を行って権限をチェックする。
以下の例は次のオーナーがCopy権限を持っているかどうかを調べる。
llGetObjectPrimCount
integer llGetObjectPrimCount(key id)
idに指定したUUIDのオブジェクトのprim数を返す。
調査対象のオブジェクトは同一SIM内になければならない。
llGetOmega
vector llGetOmega()
現在の回転速度(ラジアン毎秒)を得る。
戻り値はグローバル座標系に対する回転速度である。
llGetOwner
key llGetOwner()
オブジェクトオーナーのUUIDを返す。
しばしば「オーナーのみが操作可能」な機能を実装する際に利用される。
オーナーがタッチした場合のみ動作する例:
llGetOwnerKey
key llGetOwnerKey(key id)
idに指定したUUIDのオブジェクトのオーナーを返す。
調査対象のオブジェクトは同一SIM内になければならない。
llGetNextEmail
llGetNotecardLine
llGetNumberOfNotecardLines
llGetNumberOfPrims
llGetNumberOfSides
llGetObjectDesc
llGetObjectMass
llGetObjectName
llGetObjectPermMask
llGetObjectPrimCount
llGetOmega
llGetOwner
llGetOwnerKey
llGetMass
float llGetMass()
オブジェクトの質量を得る。
リンクされたオブジェクトのルートで実行した場合はオブジェクト全体の質量を返す。
子primで実行した場合、そのprimの重さを返す。
また、アタッチメントで実行した場合はアバターの体重を得ることができる。
他のオブジェクトの質量を調べるにはllGetObjectMass関数を使う。
なお、これらMass系関数で返される質量の単位はLindogram(リンドグラム:Lg)と慣例的に呼ばれることがあるらしいが、あまり耳にしない。
llGetNextEmail
llGetNextEmail(string address, string subject)
郵便受けに溜まっている次のメールを取得するよう指示を出す。
メールがあった場合はemailイベントが発生し、そのメールは郵便受けから取り出される(削除される)。
この関数の詳細な使い方についてはEmailの送受信の記事を参照。
llGetNotecardLine
key llGetNotecardLine(string name, integer line)
オブジェクトのコンテンツ内にあるノートカードnameのline行目を読み取るよう要求を出し、問い合わせ番号(key型)を返す。
要求の結果はdataserverイベントにて受け取ることができる。
この関数の詳細な使い方についてはノートを使おう(初級スクリプト第十二回)の記事を参照。
llGetNumberOfNotecardLines
key llGetNumberOfNotecardLines(string name)
nameに指定した名前のノートカードの行数を調べるよう要求を出し、問い合わせ番号(key型)を返す。
要求の結果はdataserverイベントにて受け取ることができる。
指定したノートカードはオブジェクトのコンテンツ内になければならない。
dataserverイベントでは調べた結果がstring型の引数で渡されてくるが、これをinteger型にキャストすれば行数として扱うことができる。
以下の例はノートカード"hogehoge"の行数を調べる。
default {
state_entry() {
llGetNumberOfNotecardLines("hogehoge");
}
dataserver(key queryid, string data) {
integer lines = (integer)data;
llSay(0, "This notecard has " + (string)lines + " lines.");
}
}
ノートカードの読取についてはノートを使おう(初級スクリプト第十二回)の記事を参照。
llGetNumberOfPrims
integer llGetNumberOfPrims()
スクリプトを実行中のオブジェクト(自分自身)のprimの数を返す。
オブジェクトにアバターが座っていた場合は、1アバター=1primとしてカウントされる。
llGetNumberOfSides
integer llGetNumberOfSides()
スクリプトが含まれているprimの面数を返す。
例えばデフォルト状態のキューブであれば6を返すが、パスカットやホロウ(くり抜き)で変形している場合は6以上の面数を返す場合がある。
ホロウの形状によっては見かけ上4面増えるように見えるが、あくまでも1つの面としてカウントされる。
パスカットは2つの面である(パスカット開始面と終了面の2つ)。
また、パスカットやテーパーによる変形で面が消失する場合もある。
例えばキューブにおいてテーパーの値を1や-1にすると四角錐となり、面数は5になる。
llGetObjectDesc
string llGetObjectDesc()
オブジェクトまたはprimの説明(ディスクリプション)を返す。
ディスクリプションとはbuild画面のprim名を編集する欄の下にある説明欄の内容である。
この関数はスクリプトが含まれているprimのディスクリプションを返す。
スクリプトがルートprimに入っている場合はオブジェクトのディスクリプションを返す。
ディスクリプションをスクリプトから書き換えるにはllSetObjectDesc関数を使用する。
llGetObjectMass
float llGetObjectMass(key id)
idに指定されたUUIDのオブジェクトまたはアバターの質量を得る。
同一SIM内に存在する対象のみ有効。
SIM内に存在しないUUIDを指定した場合は0.0が返る。
自分自身の質量を調べるにはllGetMass関数を使う。
llGetObjectName
string llGetObjectName()
オブジェクトまたはprimの名前を返す。
primの名前を返すのは、子primにおいて使用された場合である。
ルートprimで使用された場合はオブジェクト名を返す。
オブジェクトの名前をスクリプトから変更するにはllSetObjectName関数を使う。
llGetObjectPermMask
integer llGetObjectPermMask(integer mask)
オブジェクトの権限を取得する。
引数maskには調べたい権限の対象者を指定する。
定数 | 値 | 説明 |
MASK_BASE | 0 | 基本(現在のオーナーの権限に等しい) |
MASK_OWNER | 1 | 現在のオーナーの権限 |
MASK_GROUP | 2 | グループの権限 |
MASK_EVERYONE | 3 | その他の人々の権限 |
MASK_NEXT | 4 | 次のオーナーの権限 |
戻り値はビットフィールドになっているので、以下の定数と&演算を行って権限をチェックする。
定数 | 値(16進数) | 値(整数値) | 説明 |
PERM_ALL | 0x7FFFFFFF | 2147483647 | Move/Modify/Copy/Transfer(フルパーミッション) |
PERM_COPY | 0x00008000 | 32768 | Copy可能 |
PERM_MODIFY | 0x00004000 | 16384 | Modify可能 |
PERM_MOVE | 0x00080000 | 524288 | Move可能 |
PERM_TRANSFER | 0x00002000 | 8192 | Transfer可能 |
以下の例は次のオーナーがCopy権限を持っているかどうかを調べる。
default {
state_entry(){
integer perm = llGetObjectPermMask(MASK_NEXT);
if (perm & PERM_COPY){
llSay(0, "Next owner can COPY.");
}else{
llSay(0, "Next owner can't COPY.");
}
}
}
llGetObjectPrimCount
integer llGetObjectPrimCount(key id)
idに指定したUUIDのオブジェクトのprim数を返す。
調査対象のオブジェクトは同一SIM内になければならない。
llGetOmega
vector llGetOmega()
現在の回転速度(ラジアン毎秒)を得る。
戻り値はグローバル座標系に対する回転速度である。
llGetOwner
key llGetOwner()
オブジェクトオーナーのUUIDを返す。
しばしば「オーナーのみが操作可能」な機能を実装する際に利用される。
オーナーがタッチした場合のみ動作する例:
default{
touch_start(integer detected){
if (llDetectedKey(0) == llGetOwner()){
llSay(0,"You are owner.");
}
}
}
llGetOwnerKey
key llGetOwnerKey(key id)
idに指定したUUIDのオブジェクトのオーナーを返す。
調査対象のオブジェクトは同一SIM内になければならない。
タグ :GET系関数
Posted by Miz at 12:15│Comments(2)
│リファレンス
この記事へのトラックバック
SL参入者でしたらご存知の方も多いと思いますが、LSLスクリプトの習得でしたら
SLで楽器ショップとS
LSLスクリプトで困っているあなた・・イヤ同胞にお勧め【Rinsui SL+ Making Blog】at 2007年07月14日 17:56
この記事へのコメント
llGetNextEmail
llGetNextEmail(string address, string subject)
郵便受けに溜まっている次のメールを取得するよう支持を出す。
の「支持」→「指示」でしょうか?
つまらない指摘ですみません
llGetNextEmail(string address, string subject)
郵便受けに溜まっている次のメールを取得するよう支持を出す。
の「支持」→「指示」でしょうか?
つまらない指摘ですみません
Posted by nyagos kidd at 2007年07月18日 12:48
>nyagos kiddさん
おお、その通りです。間違っておりますね。
さっそく直しておきます。
ご指摘感謝です。
おお、その通りです。間違っておりますね。
さっそく直しておきます。
ご指摘感謝です。
Posted by Miz at 2007年07月18日 14:59