LlSetAgentEnvironment
| 首页 | 函数 | 事件 | 类型 | 操作符 | 常数 | Flow Control | Script Library | Categorized Library | Tutorials |
| 函数名 |
|---|
| 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 |
| 相关事件 |
|---|
| 无 |
附录:(表格)