LlSetDamage

来自人工智能助力教育知识百科
Mkx讨论 | 贡献2020年8月22日 (六) 03:31的版本 (创建页面,内容为“{{LSL Header|ml=*}}{{LSLC|Keywords}}{{LSLC|Flow Control}}{{LSLC|}} {{函数详情 |函数名 = Function: llSetDamage( float damage ); |参数= 参数:• float…”)
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)
跳转至: 导航搜索

Template:Needs Translation/


函数名
Function: llSetDamage( float damage );
参数:• float damage – range: 0.0 (no damage) ~ 100.0 (instant kill)
返回值:设置当该对象击中avatar时所造成的伤害。
注意事项
如果伤害大于或等于100.0,该对象会立即杀死一个完全健康的化身。

如果损害小于或等于零,则不会造成损害,该对象也不会死亡,碰撞或land_collision事件将被排队处理。

如果一个激活了伤害的物体击中了一个激活了物理的物体,而这个物体正坐在一个虚拟人物身上,那么虚拟人物就会像被直接击中一样受到伤害

 Specification
 当物体与虚拟化身碰撞时,虚拟化身会受到伤害…
 对象不能是phantom或llVolumeDetect(TRUE)
 化身必须在“安全(无伤害)”被禁用的土地上。
   然而,该对象不需要在伤害激活土地上或甚至部分超过。
 当这些前提条件得到满足时,化身就会受到伤害,对象就会在不调用碰撞事件的情况下死亡。
示例
//Simple autokiller bullet:
// This will instantly "kill" on collision if contact is made with avatar on damage enabled land.
 
default
{
    on_rez(integer param) // Becomes active when rezzed.
    {
        llSetDamage(100.0); // Set the damage to maximum.
        llSensor("", "", AGENT, 96.0, PI); // Sweep a 96 meter sphere searching for agents.
    }
    sensor(integer num) // If an agent is detected...
    {
        llSetStatus(STATUS_PHYSICS, TRUE); // Enable physics to allow physical movement.
        llSetTimerEvent(10.0); // Set a 10 second timer.
        llMoveToTarget(llDetectedPos(0), 0.5); // Move to the detected position.
    }
    no_sensor() // If no agents are detected...
    {
        llDie(); // Auto destruct.
    }
    timer() // If we missed our target...
    {
        llDie(); // Auto destruct.
    }
}
相关函数
相关事件