LlSameGroup/ja

From Second Life Wiki
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

要約

関数: 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 が返ります。

Important Issues

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

サンプル

// 同じグループをアクティブにしているエージェントにのみインベントリオブジェクトを渡します
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の関連した項目が参考になるかもしれません。