LlReplaceAgentEnvironment/ja
Jump to navigation
Jump to search
LSL ポータル | 関数 | イベント | 型 | 演算子 | 定数 | 実行制御 | スクリプトライブラリ | カテゴリ別スクリプトライブラリ | チュートリアル |
要約
関数: Integer llReplaceAgentEnvironment( key agent_id, float transition, string environment );
llReplaceAgentEnvironment関数は、エージェントが見る現在のリージョンおよびパーセル環境を上書きします。新しい環境は、エージェントが新しいリージョンに移動するか、この関数が特定のエージェントの環境パラメータにNULL_KEYまたは空の文字列を使用して呼び出されるまで持続します。この場合、エクスペリエンスの一環としてこのエージェントに適用されたすべての環境設定が剥奪されます。この関数はエクスペリエンスの一部として実行する必要があります。
Integer で返します。
• key | agent_id | – | リージョン内のエージェントのキー。エージェントはリージョンに存在し、エクスペリエンスに参加している必要があります。 | |
• float | transition | – | 新しい設定に遷移する秒数。 | |
• string | environment | – | オブジェクトのインベントリ内の環境設定の名前または環境のアセットID。 |
値 | 定数 | 説明 |
---|---|---|
1 | エージェントに新しい環境への変更が指示されました。 | |
ENV_NOT_EXPERIENCE | -1 | スクリプトが有効なエクスペリエンスキーを持つエクスペリエンスの一部として実行されていません。 |
ENV_NO_EXPERIENCE_PERMISSION | -2 | エージェントが許可を付与していません。 |
ENV_NO_ENVIRONMENT | -3 | 環境インベントリオブジェクトが見つかりませんでした。 |
ENV_INVALID_AGENT | -4 | 指定されたエージェントを見つけることができません。 |
ENV_NO_EXPERIENCE_LAND | -7 | エクスペリエンスが有効になっていないか、土地で実行できません。 |
ENV_THROTTLE | -8 | スクリプトがスロットルを超えました。 待機してからリクエストを再試行してください。 |
警告
- エージェントのビューアはこのコマンドを無視する可能性があります。
- ビューアでローカルに設定された環境は、この関数から設定された環境を上書きします。
- 環境パラメータとしてUUIDが渡され、そのUUIDが環境設定を指定していない場合、ビューアは静かに指示を無視します。
サンプル
string gEnvironment = "A-12AM"; // Can be asset's name in object's inventory or the asset ID
float gTransitionTime = 3.0;
default
{
touch_start(integer total_number)
{
key person = llDetectedKey(0);
if (llGetAgentSize(person) != ZERO_VECTOR)
{
llRequestExperiencePermissions(person, "");
}
else
{
llInstantMessage(person, "You need to be in the same region to change environment");
}
}
experience_permissions(key agent_id)
{
integer envTest = llReplaceAgentEnvironment(agent_id, gTransitionTime, gEnvironment);
if (envTest == 1)
{
llRegionSayTo(agent_id, 0, "Applying environment for " + (string)agent_id);
}
else
{
llRegionSayTo(agent_id, 0, "Cannot apply environment for " + (string)agent_id + " due to reason id: " + (string)envTest);
}
}
experience_permissions_denied(key agent_id, integer reason)
{
llRegionSayTo(agent_id, 0, "Denied experience permissions for " + (string)agent_id + " due to reason id: " + (string)reason);
}
}
関連項目
特記事項
この項目はあなたにとって参考にならない項目ですか?もしかしたらLSL Wikiの関連した項目が参考になるかもしれません。