LlStopSound/ja

From Second Life Wiki
< LlStopSound
Revision as of 22:26, 7 October 2023 by Misaki Vanilla (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Summary

Summary: llStopSound, llLinkStopSound

現在再生している付随したサウンドを停止します。

llStopSound

Function: llStopSound( );
0.0 Forced Delay
10.0 Energy

llLinkStopSound

Function: llLinkStopSound( integer link );
0.0 Forced Delay
10.0 Energy
• integer link リンク 番号 (0: リンクなし, 1: ルートプリム, >1: 子プリム) または LINK_* フラグ
フラグ 説明
LINK_ROOT 1 リンクセットの中のルートプリムに送ります
LINK_SET -1 全プリムに送ります
LINK_ALL_OTHERS -2 自分以外の全プリムに送ります
フラグ 説明
LINK_ALL_CHILDREN -3 (ルートプリム以外の全ての)子プリムに送ります
LINK_THIS -4 スクリプトの入った自プリムに送ります

Caveats

  • 特定のサウンドだけ停止することはできません。
  • リンクセットの中では、llLinkStopSound/ja を使って音を停止してください

Examples

default
{
    state_entry()
    {
        llLoopSound("string soundname if in object inventory or UUID", 1.0);
    }
    touch_start(integer total_number)
    {
        llStopSound();//As if by magic the sound stops!!
    }
}

Notes

リンク番号

オブジェクトを構成するそれぞれのプリムにはアドレスがあります。それがリンク番号です。オブジェクトの特定のプリムにアクセスするには、そのプリムのリンク番号を知らなければなりません。リンク番号はプリムに振られますが、オブジェクトに座っているアバターにも振られます。

  • オブジェクトが単一のプリムで構成されていて、アバターが座っていないとき、(ルート)プリムのリンク番号は 0 です。
  • しかし、オブジェクトが複数のプリムで構成されていたり、オブジェクトに座っているアバターがいたりすると、ルートプリムのリンク番号は 1 となります。

アバターがオブジェクトに座ると、リンクセットの末尾に追加され、いちばん大きなリンク番号が振られることになります。さらに、アバターがオブジェクトに座っている場合、アバターを立たせないと、プリムのリンク・リンク解除ができません。

プリムやアバターの数え方

オブジェクトのプリムや、プリムに座っているアバターの数を調べるのに、2つの関数があります。

  • llGetNumberOfPrims() - プリムと座っているアバターの数を返します。
  • llGetObjectPrimCount(llGetKey()) - オブジェクトのプリムの数だけを返しますが、アタッチメントとなっている場合は 0 を返します。
integer GetPrimCount() { //常にプリムの数だけを返します。
    if(llGetAttached())//装着されているか?
        return llGetNumberOfPrims();//アバターとプリムの数を返しますが、アタッチメントの上には座れないのでこれでいいです。
    return llGetObjectPrimCount(llGetKey());//プリムの数だけを返しますが、アタッチメントの場合ここは通りません。
}

See Also

Functions

•  llGetLinkNumber スクリプトが入っているプリムのリンク番号を取得します。
•  llGetLinkNumberOfSides/ja Returns the number of faces of the linked prim.
•  llSound/ja この関数は非推奨なので、代わりに llPlaySound を使ってください。
•  llPlaySound/ja
•  llPlaySoundSlave/ja
•  llLoopSound/ja
•  llLoopSoundMaster/ja
•  llLoopSoundSlave/ja

Deep Notes

Signature

function void llStopSound();
function void llLinkStopSound( integer link );