LlFleeFrom/ja
Jump to navigation
Jump to search
LSL ポータル | 関数 | イベント | 型 | 演算子 | 定数 | 実行制御 | スクリプトライブラリ | カテゴリ別スクリプトライブラリ | チュートリアル |
要約
関数: llFleeFrom( vector position, float distance, list options );キャラクターに特定のpositionから一定のdistanceを保つように指示します。
• vector | position | – | position in region coordinates 逃げるための位置。 | |
• float | distance | – | positionからの逃げる距離(メートル)。 | |
• list | options | – | 現時点では利用可能なオプションはありません。 |
警告
- llCreateCharacter/jaを使用しないと、スクリプトはコンパイルされません。
- 逃げるpositionはナビメッシュの近くにある必要があります。それ以外の場合、この動作は失敗し、PU_FAILURE_INVALID_GOALをトリガーします。
- 下記の例のようにエージェントやオブジェクトを避けたい場合、llEvade/jaを使用する方がエレガントでシムのリソースを節約できます。
サンプル
vector last_touched_pos;
key last_touched_key;
default
{
state_entry()
{
llCreateCharacter([CHARACTER_DESIRED_SPEED, 50.0]);
}
touch_start(integer total_number)
{
last_touched_key = llDetectedKey(0);
last_touched_pos = llDetectedPos(0);
llFleeFrom(last_touched_pos, 10, []);
llSetTimerEvent(0.2);
}
timer()
{
vector last_touched_pos_now = llList2Vector(llGetObjectDetails(last_touched_key, [OBJECT_POS]), 0);
if ( llVecDist(last_touched_pos, last_touched_pos_now) > 1 )
{
last_touched_pos = last_touched_pos_now;
llFleeFrom(last_touched_pos, 10, []);
}
}
}
注意点
位置ベクトルは、拡張範囲のリージョン座標を使用して現在のリージョンの外部に設定できます。たとえば、現在のリージョンの東にあるリージョンのSEコーナーを避けるには、次のようにします:
llFleeFrom(<0.0, 512.0, 0.0>, 20.0, []);
関連項目
特記事項
この項目はあなたにとって参考にならない項目ですか?もしかしたらLSL Wikiの関連した項目が参考になるかもしれません。