“LlGetAnimation”的版本间的差异
|  (创建页面,内容为“{{LSL Header|ml=*}}{{LSLC|Keywords}}{{LSLC|Flow Control}}{{LSLC|}}   {{函数详情 |函数名 = Function: string llGetAnimation( key id ) |参数= 参数:key id…”) | |||
| 第4行: | 第4行: | ||
| {{函数详情 | {{函数详情 | ||
| |函数名 = Function: string llGetAnimation( key id ) | |函数名 = Function: string llGetAnimation( key id ) | ||
| − | |参数= 参数:key  | + | |参数= 参数:key id–化身在同一区域的UUID | 
| |返回值= 返回值:返回一个字符串,它是当前正在播放的化身id的运动动画的名称。见下表。 | |返回值= 返回值:返回一个字符串,它是当前正在播放的化身id的运动动画的名称。见下表。 | ||
2021年8月29日 (日) 02:39的最新版本
| 首页 | 函数 | 事件 | 类型 | 操作符 | 常数 | Flow Control | Script Library | Categorized Library | Tutorials | 
| 函数名 | 
|---|
| Function: string llGetAnimation( key id ) | 
| 参数:key id–化身在同一区域的UUID | 
| 返回值:返回一个字符串,它是当前正在播放的化身id的运动动画的名称。见下表。 | 
| 注意事项 | 
|---|
| 注意事项 
 | 
| 示例 | 
|---|
| / A simple animation override example.
// Make the avatar run in mid-air when jumping.
 
key gOwner; // the wearer's key
string gLastAnimation; // last llGetAnimation value seen
 
// User functions
 
Initialize(key id) {
    if (id == NULL_KEY) { // detaching
        llSetTimerEvent(0.0); // stop the timer
    }
    else { // attached, or reset while worn
        llRequestPermissions(id, PERMISSION_TRIGGER_ANIMATION);
        gOwner = id;
    }
}
 
 
// Event handlers
 
default
{
    state_entry() {
        // in case the script was reset while already attached
        if (llGetAttached() != 0) {
            Initialize(llGetOwner());
        }
    }
 
    attach(key id) {
        Initialize(id);
    }
 
    run_time_permissions(integer perm) {
        if (perm & PERMISSION_TRIGGER_ANIMATION) {
            llSetTimerEvent(0.25); // start polling
        }
    }
 
    timer() {
        string newAnimation = llGetAnimation(gOwner);
 
        if (gLastAnimation != newAnimation) { // any change?
            if (newAnimation == "Jumping") {
 
                // You can stop the built-in animation if you like, if
                // it might interfere with your own. Be aware that an
                // avatar can become stuck, and some llGetAgentInfo results
                // can be inaccurate, if you stop built-ins indiscriminately.
                // Always test.
                //
                // llStopAnimation("jump");
 
                llStartAnimation("run");
            }
            else if (gLastAnimation == "Jumping")  { // just finished jumping
                // "run" is looped, so we have to stop it when we are done.
                llStopAnimation("run");
            }
 
            gLastAnimation = newAnimation; // store away for  next time
        }
    }
}
 | 
| 相关函数 | 
|---|
| llGetAgentInfo | 
| 相关事件 | 
|---|
| 无 | 
