LlSetDamage/ja

From Second Life Wiki
Jump to navigation Jump to search

要約

関数: llSetDamage( float damage );

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

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

仕様

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

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

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

警告

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

サンプル

// 単純な自動殺人弾: 
// 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の関連した項目が参考になるかもしれません。