LlSameGroup/ja

From Second Life Wiki
Jump to navigation Jump to search

要約

関数: integer llSameGroup( key id );

スクリプトが含まれるプリムとidのグループが同じであれば TRUE 、そうでなければ FALSE の真偽値を integer で返します。

• key id 同じ 地域 にある アバター または プリムUUID

仕様

スクリプトが含まれるプリムのグループは...

  • プリムに設定されているグループ
  • プリムが譲渡されたグループ
  • プリムが所有しているグループ
  • グループ情報が設定されていない場合、これに使用されるgroup-uuidはNULL_KEYです。

idのグループは...

  • idがプリム(リージョンに認識されている)の場合...
    • そしてそれは添付ファイルであり、所有者のアクティブなグループです*
    • プリムが設定されているグループ
    • プリムが譲渡されたグループ
    • プリムが所有しているグループ
    • グループ情報が設定されていない場合、これに使用されるgroup-uuidはNULL_KEYです。
  • idがアバター(地域で知られている)の場合...
    • アバターのアクティブグループ。
    • グループ情報が設定されていない場合、これに使用されるgroup-uuidはNULL_KEYです。
  • それ以外の場合は、idをgroup-uuidとして扱います。
    • これは、「スクリプトのprimはidと同じグループにありますか?」を実行する代わりに、「スクリプトのprimのgroup-uuidはidに等しいですか?」になることを意味します。

注:グループ、プリム、またはアバターが同じuuidを共有することはありません。

In pseudocode:

integer llSameGroup(key uuid){
    key group = getGroupKey(llGetKey());
    if(uuid == group)
        return TRUE;
    if(getGroupKey(uuid) == group)
        return TRUE;
    return FALSE;
}

警告

  • オブジェクトにグループ設定がされておらず (つまり "(none)") 、かつ、キーで指定されたアバターがどのグループもアクティブにしていないか、関数が NULL_KEY で呼び出されたかのいずれかであっても、 TRUE が返ります。

サンプル

// 同じグループをアクティブにしているエージェントにのみインベントリオブジェクトを渡します
default
{
    touch_start(integer total_number)
    {
        integer i;

        for (i = 0; i < total_number; i++)
        {
            if (llSameGroup(llDetectedKey(i))) // llDetectedGroup(i) と同じです。 (llDetectedGroup を使えば、対象が同じ SIM にいる必要はありません)
              llGiveInventory(llDetectedKey(i), llGetInventoryName(INVENTORY_OBJECT, 0));
           else
              llSay(0, "Wrong active group!");
        }
    }
}

注意点

子プリム

子プリムをルートプリムとは異なるグループにすることが可能です。そのようなオブジェクトを作成するには、最初にリンクを解除し、グループを設定し、再リンクします。オブジェクトを rez すると、オブジェクトのグループがリセットされ、ユーザが現在アクティブにしているグループになります。オブジェクトのグループを変更すると、オブジェクト全体のグループも変更されます。これは単に VWR-5044 の副作用か症状である可能性もあります。

関連項目

関数

•  llDetectedGroup 検出系 イベントと一緒に使用されます

特記事項

All Issues

~ Search JIRA for related Issues
   Attachments only change/inherit the active group when they're "rezzed"

テスト

•  llSameGroup Test

Signature

function integer llSameGroup( key id );
この翻訳は 原文 と比べて古いですか?間違いがありますか?読みにくいですか?みんなで 修正 していきましょう! (手順はこちら)
この項目はあなたにとって参考にならない項目ですか?もしかしたらLSL Wikiの関連した項目が参考になるかもしれません。