LlTeleportAgent/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.

要約

関数: llTeleportAgent( key avatar, string landmark, vector position, vector look_at );

オブジェクトのインベントリに格納された landmark に対する avatar のテレポートをリクエストします。ランドマークがない場合(空の文字列が指定された場合)、アバターは現在のリージョンの position で指定されたローカル座標にテレポートされます。いずれの場合も、アバターは look_at のローカル座標で指定された場所を向くようになります。

• key avatar 同一 地域 にいるアバターの UUID (テレポートするアバター。 オーナー である必要があります。
• string landmark プリムの インベントリ の中にあるlandmark
• vector position ランドマークがない場合、アバターのテレポート先のリージョン内座標
• vector look_at 到着したときにアバターが向く先のリージョン内座標

実行するには、llRequestPermissions による PERMISSION_TELEPORT 権限がavatarから与えられなければなりません。

警告

  • landmark がプリムの中で見つからない場合、またはこれがlandmarkでない場合、エラーが DEBUG_CHANNEL 上で叫ばれます。
  • 権限の自動付与に頼らないようにしましょう。常に run_time_permissions イベントを使用しましょう。
  • スクリプトに PERMISSION_TELEPORT の権限が不足していると、スクリプトはエラーを DEBUG_CHANNEL で叫び、操作に失敗します (しかしスクリプトは処理を続けます)。
  • PERMISSION_TELEPORTavatar以外の人から許可され、関数が呼び出されると、 DEBUG_CHANNEL でエラーが叫ばれます。
  • いったん PERMISSION_TELEPORT 権限が付与されると、スクリプトの中で (例えば、新しい llRequestPermissions 呼び出しなどにより) 権限をはく奪することができません。スクリプトはオブジェクトが derez (削除、取り外し、取り込み) されない限り権限が失われません。
  • この関数でテレポートすることができるのは、オブジェクトのオーナーだけです。
  • 立て続けにテレポートすることができないように制限がかかっています。
  • llAttachToAvatarTemp で装着されたオブジェクトの中のスクリプトでは、この関数は動作しません。
  • 座っているアバターをこの関数を使ってテレポートさせることはできません。最初に llUnSit する必要があります。
All Issues ~ Search JIRA for related Bugs

サンプル

オブジェクトのインベントリにランドマークがない場合

key  teleportee;

default
{
    state_entry()
    {
        llSay(0, "タッチするとテレポートします");
    }

    touch_start(integer total_num)
    {
        teleportee = llDetectedKey(0);
        llRequestPermissions(teleportee, PERMISSION_TELEPORT);
    }
    
    run_time_permissions(integer perm)
    {
        if(PERMISSION_TELEPORT & perm)
        {
            llTeleportAgent(teleportee, "", <13.0, 38.0, 23.5>, <13.0, 12.0, 23.5>);
        }
    }
}

オブジェクトにあるランドマークを使う場合

key  teleportee;

default
{
    state_entry()
    {
        llSay(0, "タッチするとテレポートします");
    }

    touch_start(integer total_num)
    {
        teleportee = llDetectedKey(0);
        llRequestPermissions(teleportee, PERMISSION_TELEPORT);
    }
    
    run_time_permissions(integer perm)
    {
        if(PERMISSION_TELEPORT & perm)
        {
            llTeleportAgent(teleportee, "Experience Tools 1", <0.0, 0.0, 0.0>, <0.0, 0.0, 0.0>);
        }
    }
}

関連項目

イベント

•  run_time_permissions 権限取得イベント

関数

•  llGetPermissions 付与されている権限を取得します
•  llGetPermissionsKey 権限を許可したエージェントを取得します
•  llRequestPermissions 権限を要求します
•  llTeleportAgentGlobalCoords エージェントをグローバル座標にテレポートします

記事

•  権限/スクリプト

特記事項

Search JIRA for related Issues

Signature

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