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

要約

関数: llSetDamage( float damage );

オブジェクトがアバターに命中したときのダメージ量を damage として設定します。

• float damage 範囲: 0.0 (ダメージ 無し) ~ 100.0 (即座に 死亡)

仕様

このオブジェクトがアバターに衝突した際、アバターがダメージを受けるには以下の条件が必要です:

  • オブジェクトが物理属性であり、かつ
  • 命中したアバターの居る土地が "安全(ダメージ無し)" 無効に設定されている

これらの前提が満たされたとき、アバターはダメージを受け、オブジェクトは 衝突 イベントを引き起こさずに 消滅 します。

警告

  • damage が [0, 100] の範囲を外れている場合、命中したアバターは即死します。
  • ダメージ設定無効の土地で衝突した場合、オブジェクトは消滅せず衝突 イベントもしくは land_collision/ja イベントがキューに追加されます。
  • オブジェクトが物理属性を持たない場合、それが物理属性を持った時点でオブジェクトのダメージ設定が有効になります。; it will however not be physical while it is not damage enabled.
  • ダメージを受けることのできるオブジェクトが、アバターが座っている物理属性が有効のオブジェクトに命中した場合、アバターは自身に命中した場合と同様のダメージを受けます。
All Issues ~ Search JIRA for related Bugs

サンプル

// 単純な自動殺人弾: 
// rez されると、一番近くにいるアバターを検知し、
// そこへ移動して殺します。
// (弾がアバターと接触するため)
default {
    on_rez(integer i) {
        llSetTimerEvent(10.0);
        llSensor("", "", AGENT, PI, 96.0);
    }
    timer() { llDie(); }
    sensor(integer num) {
        llSetStatus(STATUS_PHYSICS, TRUE);
        llSetDamage(100.0);
        llMoveToTarget(llDetectedPos(0), 1.0);
    }
}

特記事項

Search JIRA for related Issues

Signature

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