LlSetAgentEnvironment

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

Template:Needs Translation/


函数名
Function: llSetAgentEnvironment( key agent_id, float transition, list params );
参数: key agent_id –该地区代理商的钥匙。代理必须在该地区,必须参与到体验中。

• float transition – 转换到新设置的秒数。

• list params – 要从当前环境检索的参数列表。详见附录。

返回值:此函数为体验中的单个代理设置环境值。对环境的更改一直持续到代理移动到一个新的区域,或者对一个空列表的代理调用llSetAgentEnvironment。在参数中传递一个空列表将删除应用于该代理的所有环境设置(作为体验的一部分)
注意事项
有效参数列表与llGetEnvironment可用的参数列表不同。

代理的查看器可以选择忽略此命令。

在查看器上本地设置的环境将覆盖从该函数设置的任何环境。

示例
float gTransitionTime = 3.0;
list gListEnvironmentParams = [
    SKY_CLOUD_TEXTURE, TEXTURE_PLYWOOD,
    SKY_GAMMA, 10.0,
    WATER_NORMAL_SCALE, <5.0, 5.0, 5.0>
];
 
default
{
    touch_start(integer total_number)
    {
        key person = llDetectedKey(0);
        if (llGetAgentSize(person) != ZERO_VECTOR)
        {
            llRequestExperiencePermissions(person, "");
        }
        else
        {
            llInstantMessage(person, "You need to be in the same region to change environment");
        }
    }
 
    experience_permissions(key agent_id)
    {
        integer envTest = llSetAgentEnvironment(agent_id, gTransitionTime, gListEnvironmentParams);
        if (envTest == 1)
        {
            llRegionSayTo(agent_id, 0, "Applying environment for " + (string)agent_id);
        }
        else
        {
            llRegionSayTo(agent_id, 0, "Cannot apply environment for " + (string)agent_id + " due to reason id: " + (string)envTest);
        }
    }
 
    experience_permissions_denied(key agent_id, integer reason)
    {
        llRegionSayTo(agent_id, 0, "Denied experience permissions for " + (string)agent_id + " due to reason id: " + (string)reason);
    }
}
相关函数
llReplaceAgentEnvironment

llGetEnvironment

相关事件

附录:(表格)