LlTeleportAgent/ja

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

要約

関数: 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 (削除、取り外し、取り込み) されない限り権限が失われません。
  • この関数でテレポートすることができるのは、オブジェクトのオーナーだけです。
  • 立て続けにテレポートすることができないように制限がかかっています。 15秒の間に10回テレポート
  • llAttachToAvatarTemp で装着されたオブジェクトの中のスクリプトでは、この関数は動作しません。
  • 座っているアバターをこの関数を使ってテレポートさせることはできません。最初に llUnSit する必要があります。

サンプル

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

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