Difference between revisions of "LlSameGroup/ja"

From Second Life Wiki
Jump to navigation Jump to search
m (Undo revision 849162 by Mako Nozaki (Talk))
 
(2 intermediate revisions by 2 users not shown)
Line 1: Line 1:
{{LSL Function/ja
{{LSL_Function/uuid/ja|id|sim=*}}{{LSL Function/group/ja}}{{LSL Function/ja
|func=llSameGroup
|func=llSameGroup
|sort=SameGroup
|sort=SameGroup
|func_id=219|func_sleep=0.0|func_energy=10.0
|func_id=219|func_sleep=0.0|func_energy=10.0
|return_type=integer
|return_type=integer
|p1_type=key
|return_subtype=boolean
|p1_name=agent
|p1_type=key|p1_name=id
|p1_desc=同じSimでなければなりません
|func_desc
|func_desc
|func_footnote=もしくは、オブジェクトが'''agent'''のアクティブグループに譲渡されている場合も[[TRUE/ja|true]]を返します。
|func_footnote=
|return_text='''agent'''のアクティブグループと同じ場合は[[TRUE/ja|1]]、その他の場合は[[FALSE/ja|0]]
|return_text=スクリプトが含まれるプリムと{{LSLP|id}}のグループが同じであれば {{LSLG/ja|TRUE}} 、そうでなければ {{LSLG/ja|FALSE}} の真偽値
|spec
|spec=
|caveats
スクリプトが含まれるプリムのグループは...
*プリムに設定されているグループ
*プリムが譲渡されたグループ
*プリムが所有しているグループ
*グループ情報が設定されていない場合、これに使用されるgroup-uuidは[[NULL_KEY]]です。
 
{{LSLP|id}}のグループは...
* {{LSLP|id}}がプリム(リージョンに認識されている)の場合...
**そしてそれは添付ファイルであり、所有者のアクティブなグループです*
**プリムが設定されているグループ
**プリムが譲渡されたグループ
**プリムが所有しているグループ
**グループ情報が設定されていない場合、これに使用されるgroup-uuidは[[NULL_KEY]]です。
* {{LSLP|id}}がアバター(地域で知られている)の場合...
**アバターのアクティブグループ。
**グループ情報が設定されていない場合、これに使用されるgroup-uuidは[[NULL_KEY]]です。
*それ以外の場合は、{{LSLP|id}}をgroup-uuidとして扱います。
**これは、「スクリプトのprimは{{LSLP|id}}と同じグループにありますか?」を実行する代わりに、「スクリプトのprimのgroup-uuidは{{LSLP|id}}に等しいですか?」になることを意味します。
注:グループ、プリム、またはアバターが同じuuidを共有することはありません。
 
In pseudocode:
<source lang="lsl2">integer llSameGroup(key uuid){
    key group = getGroupKey(llGetKey());
    if(uuid == group)
        return TRUE;
    if(getGroupKey(uuid) == group)
        return TRUE;
    return FALSE;
}</source>
|caveats=*オブジェクトにグループ設定がされておらず (つまり "(none)") 、かつ、キーで指定されたアバターがどのグループもアクティブにしていないか、関数が {{LSLG/ja|NULL_KEY}} で呼び出されたかのいずれかであっても、 {{LSLG/ja|TRUE}} が返ります。
|constants
|constants
|examples=<lsl>//Gives inventory object only to agents with the same active group
|examples=<source lang="lsl2">// 同じグループをアクティブにしているエージェントにのみインベントリオブジェクトを渡します
default
default
{
{
     touch_start(integer total_number)
     touch_start(integer total_number)
     {
     {
         if(llSameGroup(llDetectedKey(0)))//same as llDetectedGroup(0) (with llDetectedGroup, detected does not need to be in the sim)
         integer i;
            llGiveInventory(llDetectedKey(0), llGetInventoryName(INVENTORY_OBJECT,0));
 
        else
        for (i = 0; i < total_number; i++)
            llSay(0, "Wrong active group!");
        {
            if (llSameGroup(llDetectedKey(i))) // llDetectedGroup(i) と同じです。 (llDetectedGroup を使えば、対象が同じ SIM にいる必要はありません)
              llGiveInventory(llDetectedKey(i), llGetInventoryName(INVENTORY_OBJECT, 0));
          else
              llSay(0, "Wrong active group!");
        }
     }
     }
}</lsl>
}</source>
|helpers
|helpers
|also_functions={{LSL DefineRow||[[llDetectedGroup/ja|llDetectedGroup]]|{{LSLGC/ja|Detected|detection}}イベントで接続に用いられます}}
|also_functions={{LSL DefineRow||{{LSLG/ja|llDetectedGroup}}|{{LSLGC/ja|Detected|検出系}} イベントと一緒に使用されます}}
|also_tests
|also_tests=
{{LSL DefineRow||[[llSameGroup Test]]}}
|also_events
|also_events
|also_articles
|also_articles

Latest revision as of 01:08, 31 May 2022

要約

関数: 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の関連した項目が参考になるかもしれません。